valores pasar convertir convertidor conversion colores color linux pdf imagemagick ghostscript cmyk

linux - pasar - pdf to cmyk converter



Conversión de PDF a CMYK(con identificador que reconoce CMYK) (5)

Tengo muchos problemas para obtener la identify de ImageMagick, bueno, identifico un PDF como CMYK.

Básicamente, digamos que estoy test.tex este archivo, test.tex , con pdflatex :

/documentclass[a4paper,12pt]{article} %% https://tex.stackexchange.com/questions/13071 /pdfcompresslevel=0 %% http://compgroups.net/comp.text.tex/Making-a-cmyk-PDF %% ln -s /usr/share/color/icc/sRGB.icm . % /immediate/pdfobj stream attr{/N 4} file{sRGB.icm} % /pdfcatalog{% % /OutputIntents [ << % /Type /OutputIntent % /S/GTS_PDFA1 % /DestOutputProfile /the/pdflastobj/space 0 R % /OutputConditionIdentifier (sRGB IEC61966-2.1) % /Info(sRGB IEC61966-2.1) % >> ] % } %% http://latex-my.blogspot.com/2010/02/cmyk-output-for-commercial-printing.html %% https://tex.stackexchange.com/questions/9961 /usepackage[cmyk]{xcolor} /begin{document} Some text here... /end{document}

Si luego trato de identificar el archivo test.pdf resultante, lo obtengo como RGB, sin importar las opciones que he probado (al menos de acuerdo con los enlaces en la fuente) y, sin embargo, los colores en él se guardarían como CMYK; para la fuente de arriba:

$ grep -ia ''cmyk/|rgb/| k'' test.pdf 0 0 0 1 k 0 0 0 1 K 0 0 0 1 k 0 0 0 1 K 0 0 0 1 k 0 0 0 1 K 0 0 0 1 k 0 0 0 1 K FontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.11-2.2 (TeX Live 2010) kpathsea version 6.0.0) $ identify -verbose ''test.pdf[0]'' ... Type: Palette Endianess: Undefined Colorspace: RGB Depth: 16/8-bit Channel depth: red: 8-bit green: 8-bit blue: 8-bit Channel statistics: Red: ... Green: ... Blue: ... Histogram: 5: (12593,11565,11822) #31312D2D2E2E rgb(49,45,46) 4: (16448,15420,15677) #40403C3C3D3D rgb(64,60,61) 9: (20303,19275,19532) #4F4F4B4B4C4C rgb(79,75,76) 25: (23901,23130,23387) #5D5D5A5A5B5B rgb(93,90,91) ...

Lo mismo ocurre bastante si también /immediate/pdfobj stream ... comentario de esa parte de la /immediate/pdfobj stream ... ; y, sin embargo, si solo hay un color (negro) en el documento, no veo dónde se identify un histograma de valores RGB (aunque, podría decirse que todos ellos están cerca del gris)?

Así que, sin importar esto, entonces pensé que sería mejor que tratara de usar ghostscript para convertir el test.pdf en un nuevo pdf, que sería reconocido como CMYK por su nombre, pero sin suerte, incluso allí:

$ gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=test-gs.pdf -dUseCIEColor -sProcessColorModel=DeviceRGB -dProcessColorModel=/DeviceCMYK -sColorConversionStrategy=/CMYK test.pdf GPL Ghostscript 9.01 (2011-02-07) Copyright (C) 2010 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page 1 $ identify -verbose ''test-gs.pdf[0]'' ... Type: Grayscale Base type: Grayscale Endianess: Undefined Colorspace: RGB Depth: 16/8-bit ...

Entonces, lo único que se identify percibido como un cambio es Type: Grayscale (del Type: Palette anterior Type: Palette ); ¡pero de lo contrario todavía ve un espacio de color RGB!

Junto con esto, tenga en cuenta que la identify es capaz de informar correctamente un CMYK pdf; consulte el ejemplo de un póster CMYK: ajustar el tamaño de la página en PDF al tamaño de la imagen (mapa de bits)? # 17843 - TeX - LaTeX - Stack Exchange para una línea de comando ejemplo de generar un archivo PDF como convert y gs . De hecho, podemos ejecutar:

convert test.pdf -depth 8 -colorspace cmyk -alpha Off test-c.pdf

... y esto dará como resultado un PDF que se identify como CMYK; sin embargo, el PDF también se rasterizará (por defecto a 72 ppp).

EDITAR: Acabo de descubrir que si creo una presentación .odp en OpenOffice, y la exporto a PDF; ese PDF será RGB por defecto, sin embargo, el siguiente comando (de Ghostscript Examples | Production Monkeys ):

# Color PDF to CMYK: gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite / -sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK / -sOutputFile=output.pdf input.pdf

... en realidad producirá un pdf CMYK, reportado como tal por identify (aunque, el negro será rico, no simple - en los cuatro canales); sin embargo, este comando solo funcionará cuando la diapositiva tenga una imagen añadida (aparentemente, es la que activa la conversión de color). Curiosamente, no puedo obtener el mismo efecto de un pdflatex PDF.

Así que supongo que mi pregunta puede formularse de dos maneras:

  • ¿Hay algún método de conversión de línea de comandos en Linux, que convierta un pdf RGB en un pdf CMYK mientras se conservan los vectores, que se reconoce como tal en la identify (y consecuentemente construirá un histograma correcto de colores CMYK)
  • ¿Hay otras herramientas de línea de Linux similares a identify , que reconocerían correctamente el uso de colores CMYK incluso en el test.pdf original de test.pdf ( y posiblemente construir un histograma de color, basado en una página PDF elegida arbitrariamente, como se supone que se identify a )?

Gracias de antemano por cualquier respuesta,
¡Aclamaciones!

Algunas referencias:


Ok, aquí hay algo, al menos ...

Originalmente, necesito esto como una manera de asegurarme de que mis archivos PDF estén en CMYK, y tener el texto como "negro claro" C: 0, M: 0, Y: 0, K: 100, ya que he tenido problemas con impresoras anteriormente, donde se quejaban de mis PDF de Latex que contenían "negro intenso" para texto (que por lo tanto costaba más). Y generalmente busco identify ya que parece ser la única herramienta que puede analizar archivos PDF y colores (y también es relativamente fácil de recordar).

Bueno, leo a través de Tech Tip: Usando Ghostscript para convertir y combinar archivos | Linux Journal ; donde se recomienda usar el dispositivo tiffsep de gs para obtener separaciones. Y esto para mí cumple el mismo rol que identify ; Solo puedo hacer:

$ gs -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -r150x150 -sOutputFile=p%08d.tif test.pdf $ ls p* p00000001.Black.tif p00000001.Magenta.tif p00000001.Yellow.tif p00000001.Cyan.tif p00000001.tif $ eog p00000001.tif

... y luego puedo ''iterar'' a través de las imágenes de separación usando la flecha izquierda / derecha, y es inmediatamente obvio si es ''negro claro'' o ''negro intenso''.

Así que esto muestra que, independientemente de lo que identify muestra, el test.pdf de test.pdf en realidad tiene ''color negro liso'' como color de texto, como se supone que debe (las otras separaciones están en blanco); sin embargo, se puede hacer algo como:

# do a conversion of original PDF $ gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sOutputFile=out_pdfa.pdf test.pdf # do a separation on the converted pdf $ gs -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -r150x150 / -dFirstPage=1 -dLastPage=1 -sOutputFile=p%08d.tif out_pdfa.pdf # view $ eog p00000001.tif

... revelará que el particular out_pdfa.pdf realidad tiene "negro out_pdfa.pdf ", es decir, ¡la tinta del texto out_pdfa.pdf las cuatro separaciones! ( identify también muestra este como RGB, también).

Por lo tanto, espero que esta técnica gs/tiffsep sea ​​más confiable que identify :)

Nota: Estoy usando Ubuntu Natty, que envía GhostScript 9.01; sin embargo, ese tiene un desagradable error con tiffsep : error 691857 - tiffsep se bloquea en la versión 9 (falta lab.icc) . Eso se ha corregido para 9.02 - y 9.02 ha sido lanzado como ghostscript en oneiric . Para usar 9.02 en Natty, seguí cómo actualizar un solo paquete usando apt-get? - Foros de Ubuntu :

sudo nano /etc/apt/sources.list # add deb http://archive.ubuntu.com/ubuntu/ oneiric main restricted sudo apt-get update sudo apt-get install ghostscript # this upgrades only gs and dependencies sudo nano /etc/apt/sources.list # remove/comment oneiric repo sudo apt-get update && sudo apt-get upgrade # should be back to normal here

Tenga en cuenta que con la versión Buggy 9.01, incluso este comando fallará:

$ GS_LIB=/usr/share/ghostscript/9.01/iccprofiles/ gs -sICCProfilesDir=/usr/share/ghostscript/9.01/iccprofiles/ -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -sOutputFile=p%08d.tif out_pdfa.pdf ... sfopen: gs_parse_file_name failed. sfopen: gs_parse_file_name failed. ... gsicc_open_search(): Could not find lab.icc ...

.. y con 9.02, no hay necesidad de especificar sICCProfilesDir explícitamente.


También estoy siendo enloquecido por esto. Probé el ejemplo de @ tbart exactamente, pero solo funciona para algunos pdfs de entrada (que aparentemente ya contienen imágenes, rgb o no?), Y no para otros. Específicamente, tomemos este archivo ps super simple:

%!PS /Times-Roman findfont 30 scalefont setfont 72 680 moveto 0.81 0.72 0 0 setcmykcolor (This is text!) show showpage

Si llamo a esto test1.ps, y luego ejecuto este comando (en windows, gs 9.14):

gswin64c -dEmbedAllFonts=true -dPDFX -dBATCH -dNOPAUSE -dNOOUTERSAVE -sDEVICE=pdfwrite -dProcessColorModel=/DeviceCMYK -sOutputICCProfile=CoatedGRACoL2006.icc -sColorConversionStrategy=CMYK -sColorConversionStrategyForImages=CMYK -sOutputFile=test1.pdf PDFX_def.ps test1.ps

Reemplace gswin64c con gs si está en linux / cygwin.

El CMYK ICC que estoy usando se encuentra en el PDFX_def.ps y en el comando anterior. Puedes obtenerlo desde aquí, pero es solo un ICC aleatorio que moo quiere para sus tarjetas, no parece especial: http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=4075&fileID=3790

El resultado test1.pdf de esto se carga como un pdf CMYK en Illustrator, pero identifique -verbose dice que es sRGB. Si hago lo de tiffsep de @dataau, escribe las separaciones y tienen los valores correctos.

Entonces, no sé.

¿Alguien puede obtener este archivo ps para convertir a un pdf CMYK que identifique reconoce?

Chris

Editar: whoa. Pude haber descubierto esto y lo solucioné. Parece que identificar solo busca un / ColorSpace / DeviceCMYK en el archivo PDF, por lo que si pirateo el PDFX_def.ps para generarlo, identifíquelo como CMYK. Entonces, al examinar los pdfs que funcionaron, descubrí que si tenían esta línea identificada funcionaba, y si no, se marcaban incorrectamente como sRGB.

Al final de PDFX_def.ps, agregue la línea / ColorSpace / DeviceCMYK:

[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark [{OutputIntent_PDFX} << /ColorSpace /DeviceCMYK % convince ImageMagick''s identify that it''s CMYK /Type /OutputIntent % Must be so (the standard requires). /S /GTS_PDFX % Must be so (the standard requires). /OutputCondition (Commercial and specialty printing) % Customize /Info (none) % Customize /OutputConditionIdentifier (CGATS TR 003) % Customize /RegistryName (http://www.color.org) % Must be so (the standard requires). currentdict /ICCProfile known { /DestOutputProfile {icc_PDFX} % Must be so (see above). } if >> /PUT pdfmark [{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark

Auge. Espero que esto no haga nada extraño con la compatibilidad ni nada.


Tengo un problema no relacionado pero también estoy luchando con archivos PDF CMYK actualmente.

Escribí este pequeño guión aquí (se llama pdf2pdfx):

#!/bin/bash gs / -dPDFX / -dBATCH / -dNOPAUSE / -dNOOUTERSAVE / -sDEVICE=pdfwrite / -sColorConversionStrategy=CMYK / -dProcessColorModel=/DeviceCMYK / -dPDFSETTINGS=/prepress / -sOutputFile="${1%%.pdf}_X-3.pdf" / PDFX_def.ps / "$1"

y mi PDFX_def.ps contiene lo siguiente (eliminé el perfil ICC y definí FOGRA39, esto debería estar bien):

%! % $Id$ % This is a sample prefix file for creating a PDF/X-3 document. % Feel free to modify entries marked with "Customize". % This assumes an ICC profile to reside in the file (ISO Coated sb.icc), % unless the user modifies the corresponding line below. systemdict /ProcessColorModel known { systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and } { true } ifelse { (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)= /ProcessColorModel cvx /rangecheck signalerror } if % Define entries to the document Info dictionary : % /ICCProfile (/usr/share/color/icc/ISOcoated_v2_300_eci.icc) def % Customize or remove. [ /GTS_PDFXVersion (PDF/X-3:2002) % Must be so (the standard requires). /Title (Title) % Customize. /Trapped /False % Must be so (Ghostscript doesn''t provide other). /DOCINFO pdfmark % Define an ICC profile : currentdict /ICCProfile known { [/_objdef {icc_PDFX} /type /stream /OBJ pdfmark [{icc_PDFX} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {4} ifelse >> /PUT pdfmark [{icc_PDFX} ICCProfile (r) file /PUT pdfmark } if % Define the output intent dictionary : [/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark [{OutputIntent_PDFX} << /Type /OutputIntent % Must be so (the standard requires). /S /GTS_PDFX % Must be so (the standard requires). /OutputCondition (Commercial and specialty printing) % Customize /Info (none) % Customize /OutputConditionIdentifier (FOGRA39) % Customize /RegistryName (http://www.color.org) % Must be so (the standard requires). currentdict /ICCProfile known { /DestOutputProfile {icc_PDFX} % Must be so (see above). } if >> /PUT pdfmark [{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark

Identificar luego informa correctamente el espacio de color CMYK. Antes de:

tbart@blackknight ~/orpheus/werbung/action $ identify -verbose action_schulungsvideo_v3_print.pdf Image: action_schulungsvideo_v3_print.pdf Format: PDF (Portable Document Format) Class: DirectClass Geometry: 612x859+0+0 Resolution: 72x72 Print size: 8.5x11.9306 Units: Undefined Type: TrueColor Endianess: Undefined Colorspace: RGB Depth: 16/8-bit Channel depth: red: 8-bit green: 8-bit blue: 8-bit Channel statistics: Red: min: 0 (0) max: 65535 (1) mean: 53873.6 (0.822058) standard deviation: 19276.7 (0.294144) kurtosis: 1.854 skewness: -1.82565 Green: min: 0 (0) max: 65535 (1) mean: 55385.6 (0.84513) standard deviation: 19274.6 (0.294112) kurtosis: 2.09868 skewness: -1.91651 Blue: min: 0 (0) max: 65535 (1) mean: 51020 (0.778516) standard deviation: 20077.7 (0.306367) kurtosis: 0.860627 skewness: -1.52344 Image statistics: Overall: min: 0 (0) max: 65535 (1) mean: 53426.4 (0.815235) standard deviation: 19546.7 (0.298263) kurtosis: 1.59453 skewness: -1.75701 Rendering intent: Undefined Interlace: None Background color: white Border color: rgb(223,223,223) Matte color: grey74 Transparent color: black Compose: Over Page geometry: 612x859+0+0 Dispose: Undefined Iterations: 0 Compression: Undefined Orientation: Undefined Properties: date:create: 2011-09-14T15:38:57+02:00 date:modify: 2011-09-14T15:38:57+02:00 pdf:HiResBoundingBox: 612.283x858.898+0+0 pdf:Version: PDF-1.5 signature: 210bfc9cf90e3b9505385f8b2267da1665b5c2de28bb5223311afba01718bbeb Artifacts: verbose: true Tainted: False Filesize: 1.577MBB Number pixels: 526KB Pixels per second: 52.57MB User time: 0.020u Elapsed time: 0:01.009 Version: ImageMagick 6.6.5-6 2011-04-08 Q16 http://www.imagemagick.org

después:

tbart@blackknight ~/orpheus/werbung/action $ pdf2pdfx action_schulungsvideo_v3_print.pdf GPL Ghostscript 9.04 (2011-08-05) Copyright (C) 2011 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page 1 tbart@blackknight ~/orpheus/werbung/action $ identify -verbose action_schulungsvideo_v3_print_X-3.pdf Image: action_schulungsvideo_v3_print_X-3.pdf Format: PDF (Portable Document Format) Class: DirectClass Geometry: 612x859+0+0 Resolution: 72x72 Print size: 8.5x11.9306 Units: Undefined Type: ColorSeparation Base type: ColorSeparation Endianess: Undefined Colorspace: CMYK Depth: 16/8-bit Channel depth: cyan: 8-bit magenta: 8-bit yellow: 8-bit black: 8-bit Channel statistics: Cyan: min: 0 (0) max: 65535 (1) mean: 8331.78 (0.127135) standard deviation: 14902.2 (0.227392) kurtosis: 1.62171 skewness: 1.7799 Magenta: min: 0 (0) max: 62194 (0.94902) mean: 6739.34 (0.102836) standard deviation: 14517.5 (0.221523) kurtosis: 2.08183 skewness: 1.93276 Yellow: min: 0 (0) max: 65535 (1) mean: 13310.1 (0.203098) standard deviation: 17022.5 (0.259746) kurtosis: 0.991135 skewness: 1.45216 Black: min: 0 (0) max: 56540 (0.862745) mean: 7117.47 (0.108606) standard deviation: 16803.7 (0.256408) kurtosis: 3.02752 skewness: 2.16554 Image statistics: Overall: min: 0 (0) max: 65535 (1) mean: 8874.66 (0.135419) standard deviation: 15850.6 (0.241864) kurtosis: 2.17614 skewness: 1.88139 Total ink density: 292% Rendering intent: Undefined Interlace: None Background color: white Border color: cmyk(223,223,223,0) Matte color: grey74 Transparent color: black Compose: Over Page geometry: 612x859+0+0 Dispose: Undefined Iterations: 0 Compression: Undefined Orientation: Undefined Properties: date:create: 2011-09-14T15:39:30+02:00 date:modify: 2011-09-14T15:39:30+02:00 pdf:HiResBoundingBox: 612.28x858.9+0+0 pdf:Version: PDF-1.3 signature: 0416db7487ea147b974ece5748bc4284e82bfc3fb7cd07a4de050421ba112076 Artifacts: verbose: true Tainted: False Filesize: 2.103MBB Number pixels: 526KB Pixels per second: 5.25708PB User time: 0.000u Elapsed time: 0:01.000 Version: ImageMagick 6.6.5-6 2011-04-08 Q16 http://www.imagemagick.org

Esto está en Genbit de 64 bits con gs 9.04 ¿Tal vez eso ayude?

Los PDF fuente provienen de la exportación de Inkscape PDF, los colores se restringieron a los cubiertos en ECI ISO v2 revestido. Utilizo esto como una solución para la falta de exportación CMYK de Inkscape y la falta de salida PDF / X preparada para preimpresión ...


Volver a visitar la conversión CMYK con PDF / X-3 nuevamente cuando tengo otro trabajo de impresión en la cola me hizo descubrir lo siguiente:

Si solo necesita CMYK, evite X-3. No es compatible con la transparencia ( https://en.wikipedia.org/wiki/PDF/X ) y la imagen con tinta cian que obtendrá no es satisfactoria ni se ajustará a ningún estándar. Si tiene alfa, opacidad, los degradados no se convierten a PDF / X-3 si la imprenta no los necesita en absoluto.

Si necesita pdf / X, necesitará rasterizar e ir a X-3. No hay X-4 en Linux / productos de software gratuitos que conozca en la "cadena de herramientas conocida" (imagemagick, inkscape, gimp, etc.)

Sin embargo, sigo luchando con el negro rico definido , por ej. 60% C, 60% M, 40% Y, 100% K - un estándar bastante típico para imprentas aquí. Cada vez que configuro esto en inkscape, desaparecerá tan pronto como se exporte (a RGB, una limitación de cairo)

Aún así, esto es lo que parece acercarme a lo que ellos esperarían:

#!/bin/bash # possibly ps2ps2 for keeping fonts? pdf2ps -sOutputFile=- "$1" | gs / -dPDFX / -dBATCH / -dNOPAUSE / -dNOOUTERSAVE / -dPDFSETTINGS=/prepress / -dCompatibilityLevel=1.4 / -sDEVICE=pdfwrite / -sColorConversionStrategy=CMYK / -sProcessColorModel=DeviceCMYK / -dHaveTransparency=false / -sOutputFile="${1%%.pdf}_X-3.pdf" / PDFX_def.ps / -

Cualquier información sobre una verdadera creación de CMYK para el flujo de trabajo de salida CMYK-PDF todavía son bienvenidos. Scribus no es una solución real, ya que tiene muchos problemas para importar SVG de Inkscape correctamente. Aparte de eso, scribus hace un trabajo decente al crear archivos CMYK-PDF.


sdaau, el comando que usaste para tratar de convertir tu PDF a CMYK no era correcto. Prueba este en su lugar:

gs / -o test-cmyk.pdf / -sDEVICE=pdfwrite / -sProcessColorModel=DeviceCMYK / -sColorConversionStrategy=CMYK / -sColorConversionStrategyForImages=CMYK / test.pdf

Actualizar

Si la conversión de color no funciona como lo desea, y si ve un mensaje como "No se puede convertir el espacio de color en Gris, invirtiendo la estrategia en DejarColorUn cambio", entonces ...

  1. su Ghostscript probablemente sea un lanzamiento más reciente de la serie de versiones 9.x , y
  2. Es probable que su PDF de origen utilice un perfil de color ICC incorporado

En este caso, agregue -dOverrideICC a la línea de comando y vea si cambia el resultado como desee.

Actualización 2

Como comentó @Marein, si desea evitar que los artefactos JPEG aparezcan en las imágenes (donde antes no había ninguno), debería agregar

-dEncodeColorImages=false

en la línea de comando.

(Esto es cierto para casi todo el procesamiento GS PDF-> PDF , no solo para este caso. Debido a que GS crea un archivo completamente nuevo con objetos recién construidos y una nueva estructura de archivos cuando se le pide que produzca salida PDF, no lo hace simplemente reutilice los objetos anteriores, ya que un procesador de PDF más "tonto" como pdftk tiene { pdftk tiene otras ventajas, ¡no malinterprete mi afirmación!} . GS aplica la compresión JPEG de forma predeterminada: mire la documentación actual de Ps2pdf y busque "ColorImageFilter" para conocer más detalles ...)