GNU/Linux >> Linux Esercitazione >  >> Linux

Conversione da PDF a CMYK (con identificazione che riconosce CMYK)

Ok, ecco qualcosa, almeno...

Inizialmente, ho bisogno di questo come un modo per assicurarmi che i miei file PDF siano in CMYK e abbiano il testo come "semplice nero" C:0, M:0, Y:0, K:100 - poiché ho avuto problemi con le stampanti in precedenza, dove si lamentavano dei miei PDF Latex contenenti "nero intenso" per il testo (che quindi costano di più). E di solito scelgo identify poiché sembra essere l'unico strumento in grado di analizzare PDF e colori (ed è anche relativamente facile da ricordare).

Bene, ho letto il consiglio tecnico:utilizzo di Ghostscript per convertire e combinare file | Diario di Linux; dove si consiglia di utilizzare il tiffsep dispositivo di gs ottenere separazioni. E questo per me svolge lo stesso ruolo di identify; Posso solo fare:

$ 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

... e poi posso semplicemente "iterare" attraverso le immagini di separazione usando la freccia sinistra/destra - ed è immediatamente ovvio se è "nero semplice" o "nero intenso".

Quindi questo dimostra che, indipendentemente da cosa identify mostra, il test.pdf da pdflatex in realtà ha "nero normale" come colore del testo, come dovrebbe (le altre separazioni sono vuote) - tuttavia, facendo qualcosa del genere:

# 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

... rivelerà che il particolare out_pdfa.pdf in realtà ha "ricco nero" - cioè l'inchiostro per il testo va su tutte e quattro le separazioni! (identify mostra anche questo come RGB).

Quindi, spero che questo gs/tiffsep tecnica è più affidabile di identify :)

Nota:sto usando Ubuntu Natty, che fornisce GhostScript 9.01 - tuttavia, quello ha un brutto bug con tiffsep :Bug 691857 – tiffsep si arresta in modo anomalo nella versione 9 (lab.icc mancante). Questo è stato risolto per 9.02 - e 9.02 è stato rilasciato come ghostscript in onirico. Per usare 9.02 sotto Natty, ho seguito come aggiornare un singolo pacchetto usando apt-get? - Forum di 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

Nota che con la versione 9.01 difettosa, anche questo comando fallirebbe:

$ 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 ...

.. e con 9.02, non è necessario specificare sICCProfilesDir esplicitamente.


sdaau, il comando che hai usato per provare a convertire il tuo PDF in CMYK non era corretto. Prova invece questo:

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

Aggiorna

Se la conversione del colore non funziona come desiderato e se viene visualizzato un messaggio come "Impossibile convertire lo spazio colore in grigio, ripristino della strategia su LeaveColorUnchanged" poi...

  1. il tuo Ghostscript è probabilmente una versione più recente della serie di versioni 9.x , e
  2. probabilmente il tuo PDF di origine utilizza un profilo colore ICC incorporato

In questo caso aggiungi -dOverrideICC alla riga di comando e vedere se cambia il risultato come desiderato.

Aggiornamento 2

Per evitare che nelle immagini appaiano artefatti JPEG (dove prima non ce n'erano), aggiungi:

-dEncodeColorImages=false

nella riga di comando.

(Questo vale per quasi tutti i PDF->PDF di GS elaborazione, non solo per questo caso. Poiché GS per impostazione predefinita crea un file completamente nuovo con oggetti di nuova costruzione e una nuova struttura di file quando gli viene chiesto di produrre l'output PDF, non riutilizza semplicemente gli oggetti precedenti, poiché un processore PDF più "stupido" come pdftk fa {pdftk ha altri vantaggi però, non fraintendere la mia affermazione!} . GS applica la compressione JPEG per impostazione predefinita:consulta la documentazione Ps2pdf corrente e cerca "ColorImageFilter" per conoscere maggiori dettagli...)


Ho un problema non correlato, ma al momento sto anche lottando con i PDF CMYK.

Ho scritto questo piccolo script qui (si chiama 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"

e il mio PDFX_def.ps contiene quanto segue (ho rimosso il profilo ICC e definito FOGRA39, dovrebbe essere OK):

%!
% $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

Identifica quindi riporta correttamente lo spazio colore CMYK.Prima:

[email protected] ~/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

dopo:

[email protected] ~/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


[email protected] ~/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

Questo è su Gentoo a 64 bit con gs 9.04Forse questo aiuta?

Il PDF di origine deriva dall'esportazione pdf di inkscape, i colori erano limitati a quelli coperti da ECI ISO rivestito v2. Lo uso come soluzione alternativa per la mancanza di esportazione CMYK di inkscape e l'assenza di output PDF/X pronto per la prestampa...


Linux
  1. Riduci le dimensioni del PDF con questo trucco da riga di comando

  2. Patchare un binario con Dd?

  3. Unisci file pdf con ordinamento numerico

  4. Come convertire un PDF in JPG con la riga di comando in Linux?

  5. Come estrarre il testo con OCR da un PDF su Linux?

Crea segnalibri per il tuo PDF con pdftk

4 modi per modificare un PDF con il comando pdftk-java

Modifica file PDF su Ubuntu Linux con Master PDF Editor

Visualizzatore PDF con testo selezionabile?

Stampa commenti con PDF?

Necessità di unire più pdf in un unico PDF con sezioni Sommario