Nous avons une imprimante à notre bureau qui imprime les fichiers PDF à partir d'une clé USB. Il imprime la plupart des fichiers, mais il a des problèmes avec certains, en particulier ceux générés avec Latex. Certains fichiers PDF refusent tout simplement d'imprimer, certains fichiers PDF s'impriment avec une police de type messagerie et d'autres, très bien, à l'exception des équations.
Je cherche un moyen de "distiller" les PDF dans un format sûr pour imprimer. Soit en simplifiant / normalisant le PDF au point que n'importe quel moteur de rendu le rendra correctement, soit en faisant simplement de chaque page une image raster de 600 dpi dans le PDF. (Je pourrais diviser le PDF en images raster individuelles et les combiner manuellement, mais je veux quelque chose de scriptable.)
La taille du fichier de sortie n'a pas d'importance, tant qu'il est sûr d'imprimer, a un format de papier A4 (ou l'original) et une résolution de 300 ~ 600 dpi.
Réponses:
Après avoir essayé sans succès certaines options pour rendre les polices sous forme de contours (y compris cette question et pstoedit), j'ai trouvé un moyen de convertir facilement le PDF en forme tramée à l'aide d'ImageMagick:
Cela crée un PDF rendu à 600 dpi, avec les antialias désactivés (inutile à cette résolution).
Les fichiers de sortie sont énormes (~ 30 Mo pour un document de 8 pages) et extrêmement lents à imprimer, mais devraient fonctionner tant que l'imprimante dispose de suffisamment de mémoire pour rendre le contenu.
la source
convert
cela ne préserve pas le contenu des formulaires que vous pourriez avoir remplis. (Je voulais pixelliser un PDF afin de m'assurer que le contenu du formulaire était identique partout, en particulier qu'il sera affiché par chaque visionneur PDF en premier lieu.) Afin de préserver le contenu du formulaire, utilisezevince
(ou autre application que vous avez utilisée pour remplir le formulaire) pour imprimer le document "dans un fichier" - ceci est un autre PDF où le contenu du formulaire est devenu une partie du texte normal. Ensuite, vous pouvez toujours pixelliser ce nouveau PDF, selon vos besoins.+antialias
) plutôt que de le désactiver (-antialias
).+antialias
désactive l'anticrénelage: imagemagick.org/script/command-line-options.php?#antialiasD'après mon expérience, utiliser imagemagick n'est pas stable avec des résolutions élevées et / ou de gros fichiers. De nombreuses imprimantes peuvent atteindre 1 200 ppp et plus, de sorte que le fichier tramé doit avoir une résolution similaire. Une meilleure solution consiste à utiliser pdf2djvu qui est plus rapide, plus robuste et crée même des fichiers avec une taille qui rivalise souvent avec le PDF d'origine à 1200 ou 2400 dpi. Ces fichiers peuvent être visualisés et imprimés en utilisant okular ou evince.
Exemple:
la source
Je pense que ma façon préférée de le faire est:
Utilisez pdftoppm pour convertir le fichier PDF en une série d'images.
Utilisez img2pdf pour créer un fichier pdf à partir de ces images.
La bonne nouvelle est que vous pouvez créer un script bash pour automatiser l'ensemble du processus pour vous.
Voici un script bash qui distillera tous les fichiers pdf d'un répertoire et conservera les originaux dans un nouveau répertoire "originals".
Crédits: img2pdf answer & pdftoppm answer & bash script help: 1 & 2
(Note latérale) Vous pouvez installer img2pdf en utilisant:
la source
Une autre alternative consiste à convertir en images via quelque chose comme
pdfimages
À partir de la page de manuel, "Pdfimages enregistre les images d'un fichier PDF (Portable Document Format) en tant que fichiers Portable Pixmap (PPM), Portable Bitmap (PBM) ou JPEG. Pdfimages lit le fichier PDF en format PDF, numérise une ou plusieurs pages, et écrit un fichier PPM, PBM ou JPEG pour chaque image, image-root-nnn.xxx, où nnn est le numéro de l'image et xxx est le type d'image (.ppm, .pbm, .jpg). "
Utilisez ensuite pdftk pour reconvertir en PDF https://www.pdflabs.com/docs/pdftk-cli-examples/
Enfin, imprimez ce fichier. De toute évidence, la question clé est de savoir comment l'écrire.
Vous pouvez automatiser cela via une simple page Web pour les utilisateurs. Enfin, ils impriment le fichier converti et vous devriez avoir une impression plus performante et fonctionnelle?
la source