GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren von PDF in CMYK (mit Erkennung von CMYK)

Ok, hier ist zumindest etwas...

Ursprünglich brauche ich dies, um sicherzustellen, dass meine PDF-Dateien in CMYK sind und den Text als "einfaches Schwarz" C:0, M:0, Y:0, K:100 haben - da hatte ich Probleme mit Druckern, wo sie sich über meine Latex-PDFs beschwerten, die "sattes Schwarz" für Text enthielten (die daher mehr kosteten). Und ich entscheide mich normalerweise für identify da es das einzige Tool zu sein scheint, das PDFs und Farben analysieren kann (und es auch relativ leicht zu merken ist).

Nun, ich habe den Tech-Tipp gelesen:Verwenden von Ghostscript zum Konvertieren und Kombinieren von Dateien | Linux-Journal; wobei die Verwendung von tiffsep empfohlen wird Gerät von gs Trennungen zu erhalten. Und das erfüllt für mich die gleiche Rolle wie identify; Ich kann nur:

$ 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

... und dann kann ich einfach mit den Links-/Rechtspfeilen durch die Separationsbilder "iterieren" - und es ist sofort ersichtlich, ob es sich um "einfaches Schwarz" oder "sattes Schwarz" handelt.

Das zeigt also, egal was identify zeigt, die test.pdf ab pdflatex hat tatsächlich 'einfaches Schwarz' als Textfarbe, wie es sein soll (die anderen Farbauszüge sind leer) - macht jedoch so etwas wie:

# 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

... wird zeigen, dass der bestimmte out_pdfa.pdf hat tatsächlich 'sattes Schwarz' - d.h. Tinte für Text geht über alle vier Separationen! (identify zeigt dieses auch als RGB an).

Ich hoffe also, dass diese gs/tiffsep Technik ist zuverlässiger als identify :)

Anmerkung:Ich verwende Ubuntu Natty, das GhostScript 9.01 ausliefert - aber das hat einen bösen Fehler mit tiffsep :Bug 691857 – tiffsep stürzt in Version 9 ab (fehlendes lab.icc). Das wurde für 9.02 behoben - und 9.02 wurde als Ghostscript in Oneiric veröffentlicht. Um 9.02 unter Natty zu verwenden, folgte ich How to update a single package using apt-get? - Ubuntu-Foren:

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

Beachten Sie, dass mit der fehlerhaften Version 9.01 sogar dieser Befehl fehlschlagen würde:

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

.. und mit 9.02 muss sICCProfilesDir nicht angegeben werden explizit.


sdaau, der Befehl, den Sie zum Konvertieren Ihrer PDF-Datei in CMYK verwendet haben, war nicht korrekt. Versuchen Sie es stattdessen mit diesem:

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

Aktualisieren

Wenn die Farbkonvertierung nicht wie gewünscht funktioniert und eine Meldung wie "Farbraum kann nicht in Grau konvertiert werden, Strategie wird auf LeaveColorUnchanged zurückgesetzt" angezeigt wird dann...

  1. Ihr Ghostscript ist wahrscheinlich ein neueres Release aus der Versionsreihe 9.x , und
  2. Ihr Quell-PDF verwendet wahrscheinlich ein eingebettetes ICC-Farbprofil

Fügen Sie in diesem Fall -dOverrideICC hinzu auf die Befehlszeile und prüfen Sie, ob sich das Ergebnis wie gewünscht ändert.

Aktualisierung 2

Um JPEG-Artefakte zu vermeiden, die in den Bildern erscheinen (wo vorher keine waren), fügen Sie hinzu:

-dEncodeColorImages=false

in die Kommandozeile.

(Dies gilt für fast alle GS PDF->PDF Verarbeitung, nicht nur für diesen Fall. Da GS standardmäßig eine völlig neue Datei mit neu konstruierten Objekten und einer neuen Dateistruktur erstellt, wenn es aufgefordert wird, eine PDF-Ausgabe zu erzeugen, verwendet es nicht einfach die vorherigen Objekte als ein "dummerer" PDF-Prozessor wie pdftk macht {pdftk hat aber andere Vorteile, missverstehe meine Aussage nicht!} . GS wendet standardmäßig die JPEG-Komprimierung an – sehen Sie sich die aktuelle Ps2pdf-Dokumentation an und suchen Sie nach "ColorImageFilter" um mehr Details zu erfahren...)


Ich habe ein nicht damit zusammenhängendes Problem, aber ich kämpfe derzeit auch mit CMYK-PDFs.

Ich habe dieses kleine Skript hier geschrieben (es heißt 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"

und meine PDFX_def.ps enthält Folgendes (ich habe das ICC-Profil entfernt und FOGRA39 definiert, das sollte OK sein):

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

Identifizieren Sie dann korrekt den CMYK-Farbraum.Vorher:

[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

nach:

[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

Dies ist auf 64-Bit-Gentoo mit gs 9.04Vielleicht hilft das?

Das Quell-PDF stammt aus dem Inkscape-PDF-Export, die Farben wurden auf die in ECI ISO Coated v2 abgedeckten Farben beschränkt. Ich verwende dies als Workaround für den fehlenden CMYK-Export von Inkscape und die fehlende druckvorstufenfähige PDF/X-Ausgabe ...


Linux
  1. Komprimieren Sie PDF-Dateien unter Linux mit Densify

  2. PDF nach Lesezeichen aufteilen?

  3. PDF-Dateien optimieren (mit Ghostscript oder anderen)

  4. PDF-Dateien mit numerischer Sortierung zusammenführen

  5. Wie konvertiert man ein PDF in JPG mit der Befehlszeile unter Linux?

Erstellen Sie mit pdftk Lesezeichen für Ihre PDF-Datei

4 Möglichkeiten, wie Sie ein PDF mit dem Befehl pdftk-java bearbeiten können

Bearbeiten Sie PDF-Dateien unter Ubuntu Linux mit dem Master PDF Editor

PDF-Viewer mit auswählbarem Text?

Kommentare mit PDF drucken?

Sie müssen mehrere PDF-Dateien zu einer einzigen PDF-Datei mit Inhaltsverzeichnisabschnitten zusammenführen