ImageMagick: taille incorrecte lors de la conversion de PDF en JPG

3

Je souhaite appliquer certaines améliorations (modification de la luminosité, du contraste, etc.) à un fichier PDF afin de le rendre plus lisible. J'ai donc choisi ImageMagick et pdftk. J'ai utilisé la commande suivante pour diviser le fichier PDF en plusieurs fichiers PDF d'une seule page afin de pouvoir utiliser ImageMagick un fichier à la fois.

pdftk a.pdf burst output %04d.pdf

En ce moment, tout va bien. Je prends un de ces fichiers (par exemple, 0038.pdf) pour faire mes tests. Par exemple, pour ajuster le contraste, j'ai utilisé cette commande:

convert 0038.pdf -quality 100 -density 300 -brightness-contrast 0x10% out.pdf

Mais voici le résultat:

ORIGINAL

Pdf original

CONVERTI

Pdf converti

J'ai essayé de changer la valeur de la qualité, la densité, la taille, le redimensionnement, la géométrie et le pdf de sortie a une taille / résolution différente, mais est toujours illisible. J'ai donc compris que le problème se situait en amont de la conversion. Il semble que la taille et la résolution du pdf d’entrée soient lues de façon erronée convert.

Enfait, quand je viens de taper cette commande:

convert -verbose 0038.pdf out.pdf

Je reçois:

/tmp/magick-9894W9c_JPl1I7QV1 PNG 380x482 380x482+0+0 8-bit sRGB 128KB 0.010u 0:00.010
0038.pdf PNG 380x482 380x482+0+0 16-bit sRGB 128KB 0.000u 0:00.000
0038.pdf=>out.pdf PNG 380x482 380x482+0+0 16-bit sRGB 125KB 0.050u 0:00.049
[ghostscript library] -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72"  "-sOutputFile=/tmp/magick-9894W9c_JPl1I7QV%d" "-f/tmp/magick-9894s1cR4gD9oYuz" "-f/tmp/magick-9894KMmuVq0n9U8c"

Comme vous pouvez le constater, la taille est de 380 x 482, mais je sais que la taille réelle est de 1653 x 2338 pixels.

Ce sont les métadonnées de 0038.pdf (lire avec exiftool)

 ExifToolVersion = 9.70
  FileName = 0038.pdf
  Directory = .
  FileSize = 429577
  FileModifyDate = 1414935360
  FileAccessDate = 1414935693
  FileInodeChangeDate = 1414935693
  FilePermissions = 33188
  FileType = PDF
  MIMEType = application/pdf
  PDFVersion = 1.4
  Linearized = false
PDF dictionary (1 of 1) with 4 entries:
  0)  Info (SubDirectory) -->
  + [Info directory with 5 entries]
  | 0)  ModifyDate = (D:20141101192012Z)
  | 1)  CreateDate = (D:20141101192012Z)
  | 2)  Title = 0038
  | 3)  Creator = (pdftk 2.02 - www.pdftk.com)
  | 4)  Producer = (itext-paulo-155 \(itextpdf.sf.net-lowagie.com\))
  1)  ID = [<e5af52575d23dc1a2aca80f7453fa203>,<4cc6d7fb99aca8c755033ca2973b713c>]
  2)  Root (SubDirectory) -->
  + [Root directory with 3 entries]
  | 0)  Metadata (SubDirectory) -->
  | + [Metadata directory with 3 entries]
  | | 0)  Subtype = /XML
  | | 1)  Type = /Metadata
  | | 2)  Length = 3008
  | | + [XMP directory, 3008 bytes]
  | | | XMPToolkit = Image::ExifTool 9.70
  | | | Title = 0038
  | | | Artist = A
  | 1)  Type = /Catalog
  | 2)  Pages (SubDirectory) -->
  | + [Pages directory with 3 entries]
  | | 0)  Kids (SubDirectory) -->
  | | + [Kids directory with 7 entries]
  | | | 0)  Resources (SubDirectory) -->
  | | | + [Resources directory with 2 entries]
  | | | | 0)  ProcSet = [/PDF,/Text,/ImageB,/ImageC,/ImageI]
  | | | | 1)  XObject (SubDirectory) -->
  | | | | + [XObject directory with 1 entries]
  | | | | | 0)  JI19a (SubDirectory) -->
  | | | | | + [JI19a directory with 9 entries]
  | | | | | | 0)  Subtype = /Image
  | | | | | | 1)  Name = /JI19a
  | | | | | | 2)  Type = /XObject
  | | | | | | 3)  Width = 1653
  | | | | | | 4)  Filter = /DCTDecode
  | | | | | | 5)  Height = 2338
  | | | | | | 6)  BitsPerComponent = 8
  | | | | | | 7)  Length = 425229
  | | | | | | 8)  ColorSpace = /DeviceGray
  | | | 1)  Rotate = 90
  | | | 2)  Parent = ref(1 0 R)
  | | | 3)  Contents (SubDirectory) -->
  | | | + [Contents directory with 1 entries]
  | | | | 0)  Length = 57
  | | | 4)  Type = /Page
  | | | 5)  MediaBox = [22,440,504,820]
  | | | 6)  CropBox = [22,440,504,820]
  | | 1)  Type = /Pages
  | | 2)  PageCount = 1
  3)  Size = 10

Des idées?

supergiox
la source
1
Pouvez-vous ajouter / joindre un exemple de fichier PDF?
ozbek

Réponses:

6

Le problème se pose car ImageMagick ne peut pas déterminer la résolution du fichier PDF d'entrée et utilise donc la résolution par défaut de 72x72dpi, comme indiqué dans le convert -verbose 0038.pdf out.pdfrésultat:

[ghostscript library] -q -dQUIET (...) "-r72x72" (...)

Vous avez appliqué l'option correcte -density 300, mais en tant qu'option de sortie , c'est-à-dire après le nom du fichier d'entrée. En effet, la plupart des options convertsont des options de sortie , mais man convertsait que

(...) un nombre limité de paramètres est input-option. Ils comprennent: -antialias, -caption, -density, -define, -encoding, -font, -pointsize, -size et -texture, ainsi que toutes les options diverses.

Donc, la convertcommande correcte devrait être:

convert -density 300 0038.pdf -brightness-contrast 0x10% out.pdf

Enfin, deux remarques:

  • Je voudrais utiliser une compression sans perte comme -compress LZW; l' -qualityoption est pour la compression JPEG / MIFF / PNG uniquement.

  • -brightness-contrastne fonctionnera probablement pas sur les documents en noir et blanc et n’affectera pas l’affichage à l’affichage anti-aliasé de certains lecteurs PDF pour ce type de fichiers. (Généralement pour les articles de journaux numérisés.)

mpy
la source