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
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?
la source
Réponses:
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.pdf
résultat: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 optionsconvert
sont des options de sortie , maisman convert
sait queDonc, la
convert
commande correcte devrait être:Enfin, deux remarques:
Je voudrais utiliser une compression sans perte comme
-compress LZW
; l'-quality
option est pour la compression JPEG / MIFF / PNG uniquement.-brightness-contrast
ne 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.)la source