GNU/Linux >> Tutoriels Linux >  >> Linux

Conversion de PDF en CMJN (avec identification reconnaissant CMJN)

Ok, voici quelque chose, au moins...

À l'origine, j'en ai besoin pour m'assurer que mes fichiers PDF sont en CMJN et que le texte est "noir uni" C:0, M:0, Y:0, K:100 - car j'ai eu des problèmes avec des imprimeurs auparavant, où ils se plaignaient de mes PDF Latex contenant du "noir riche" pour le texte (qui coûtaient donc plus cher). Et je choisis généralement identify car il semble être le seul outil capable d'analyser les PDF et les couleurs (et il est également relativement facile à retenir).

Eh bien, j'ai lu Tech Tip:Utiliser Ghostscript pour convertir et combiner des fichiers | Revue Linux ; où il est recommandé d'utiliser le tiffsep appareil de gs pour obtenir des séparations. Et ceci pour moi remplit le même rôle que identify; Je peux juste faire :

$ 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

... et puis je peux simplement "itérer" à travers les images de séparation en utilisant la flèche gauche/droite - et il est immédiatement évident s'il s'agit d'un "noir uni" ou d'un "noir riche".

Cela montre donc que, quoi qu'il en soit identify montre, le test.pdf à partir de pdflatex a en fait "noir uni" comme couleur de texte, comme il est censé le faire (les autres séparations sont vides) - cependant, faites quelque chose comme :

# 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

... révélera que le particulier out_pdfa.pdf a en fait un "noir riche" - c'est-à-dire que l'encre pour le texte couvre les quatre séparations ! (identify montre également celui-ci comme RVB, aussi).

Donc, j'espère que ce gs/tiffsep technique est plus fiable que identify :)

Remarque :J'utilise Ubuntu Natty, qui embarque GhostScript 9.01 - cependant, celui-ci a un vilain bogue avec tiffsep :Bug 691857 – tiffsep plante dans la version 9 (lab.icc manquant). Cela a été corrigé pour 9.02 - et 9.02 a été publié en tant que ghostscript en onirique. Pour utiliser 9.02 sous Natty, j'ai suivi comment mettre à jour un seul paquet en utilisant apt-get? - Forums 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

Notez qu'avec la version 9.01 boguée, même cette commande échouerait :

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

.. et avec 9.02, il n'est pas nécessaire de spécifier sICCProfilesDir explicitement.


sdaau, la commande que vous avez utilisée pour essayer de convertir votre PDF en CMJN n'était pas correcte. Essayez plutôt celui-ci :

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

Mettre à jour

Si la conversion des couleurs ne fonctionne pas comme vous le souhaitez et si vous voyez un message du type "Impossible de convertir l'espace colorimétrique en gris, stratégie de retour à LeaveColorUnchanged" alors...

  1. votre Ghostscript est probablement une version plus récente de la série de versions 9.x , et
  2. votre PDF source utilise probablement un profil de couleur ICC intégré

Dans ce cas ajouter -dOverrideICC à la ligne de commande et voyez si cela modifie le résultat comme vous le souhaitez.

Mise à jour 2

Pour éviter que des artefacts JPEG n'apparaissent dans les images (là où il n'y en avait pas auparavant), ajoutez :

-dEncodeColorImages=false

dans la ligne de commande.

(Ceci est vrai pour presque tous les GS PDF->PDF traitement, pas seulement pour ce cas. Parce que GS crée par défaut un fichier complètement nouveau avec des objets nouvellement construits et une nouvelle structure de fichier lorsqu'on lui demande de produire une sortie PDF - il ne réutilise pas simplement les objets précédents, en tant que processeur PDF plus "stupide" comme pdftk fait {pdftk a d'autres avantages cependant, ne vous méprenez pas sur ma déclaration ! . GS applique la compression JPEG par défaut -- consultez la documentation Ps2pdf actuelle et recherchez "ColorImageFilter" pour en savoir plus...)


J'ai un problème sans rapport, mais j'ai également du mal avec les PDF CMJN actuellement.

J'ai écrit ce petit script ici (il s'appelle 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"

et mon PDFX_def.ps contient ce qui suit (j'ai supprimé le profil ICC et défini FOGRA39, cela devrait être 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

Identifiez puis rapportez correctement l'espace colorimétrique CMJN.Avant :

[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

après :

[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

C'est sur Gentoo 64 bits avec gs 9.04Peut-être que ça aide ?

Le PDF source provient de l'exportation pdf d'Inkscape, les couleurs étaient limitées à celles couvertes par ECI ISO coated v2.

Linux
  1. Réduisez la taille du PDF avec cette astuce de ligne de commande

  2. Comment convertir HTML en PDF avec HTMLDoc sur Debian 10

  3. Patcher un binaire avec Dd ?

  4. Diviser un PDF par signets ?

  5. Lecteur PDF avec écran partagé pour Linux

Créez des signets pour votre PDF avec pdftk

4 façons de modifier un PDF avec la commande pdftk-java

Modifier des fichiers PDF sur Ubuntu Linux avec Master PDF Editor

Visionneuse PDF avec texte sélectionnable ?

Imprimer des commentaires avec un pdf ?

Besoin de fusionner plusieurs fichiers PDF en un seul PDF avec des sections Table des matières