Wir haben einen Drucker in unserem Büro, der PDF-Dateien von einem USB-Stick druckt. Es druckt die meisten Dateien in Ordnung, hat jedoch Probleme mit einigen, insbesondere mit Latex generierten. Einige PDFs werden einfach nicht gedruckt, einige PDFs werden mit Kurierschrift gedruckt, andere werden mit Ausnahme von Gleichungen einwandfrei gedruckt.
Ich suche nach einer Möglichkeit, PDFs in ein absolut sicheres Format zum Drucken zu "destillieren". Entweder indem Sie die PDF-Datei so vereinfachen / normalisieren, dass sie von jedem Renderer korrekt gerendert wird, oder indem Sie einfach jede Seite zu einem 600-dpi-Rasterbild in der PDF-Datei machen. (Ich könnte das PDF in einzelne Rasterbilder aufteilen und manuell kombinieren, aber ich möchte etwas Skriptfähiges.)
Die Größe der Ausgabedatei spielt keine Rolle, solange sie sicher gedruckt werden kann. Sie hat ein A4-Papierformat (oder das Original) und eine Auflösung von 300 bis 600 dpi.
Antworten:
Nachdem ich einige Optionen zum Rendern der Schriftarten als Konturen (einschließlich dieser Frage und pstoedit) erfolglos ausprobiert hatte , fand ich eine Möglichkeit, die PDF-Datei mit ImageMagick einfach in eine gerasterte Form zu konvertieren:
Dadurch wird ein PDF mit 600 dpi erstellt, wobei die Antialias deaktiviert sind (bei dieser Auflösung nicht erforderlich).
Die Ausgabedateien sind sehr groß (~ 30 MB für ein 8-seitiges Dokument) und extrem langsam zu drucken. Sie sollten jedoch funktionieren, solange der Drucker über genügend Speicher zum Rendern des Inhalts verfügt.
quelle
convert
der Inhalt von Formularen, die Sie möglicherweise ausgefüllt haben , nicht erhalten bleibt. (Ich wollte ein PDF rastern, um sicherzustellen, dass der Formularinhalt überall gleich aussieht, insbesondere, dass er von jedem PDF-Viewer angezeigt wird.) Um den Formularinhalt beizubehalten, verwenden Sieevince
(oder was auch immer) Anwendung, mit der Sie das Formular ausgefüllt haben), um das Dokument "in eine Datei" zu drucken - dies ist eine weitere PDF-Datei, bei der der Formularinhalt tatsächlich Teil des regulären Textes geworden ist. Dann können Sie diese neue PDF-Datei je nach Ihren Anforderungen noch rastern.+antialias
) und nicht deaktiviert wird (-antialias
).+antialias
deaktiviert Antialiasing: imagemagick.org/script/command-line-options.php?#antialiasDie Verwendung von imagemagick ist meiner Erfahrung nach bei hohen Auflösungen und / oder großen Dateien nicht stabil. Viele Drucker können 1200 dpi und mehr verarbeiten, daher sollte die gerasterte Datei eine ähnliche Auflösung haben. Eine bessere Lösung ist die Verwendung von pdf2djvu, das schneller und robuster ist und sogar Dateien mit einer Größe erstellt, die häufig mit der Original-PDF-Datei mit 1200 oder 2400 dpi mithalten kann. Diese Dateien können mit okular oder evince angezeigt und gedruckt werden.
Beispiel:
quelle
Ich denke, mein derzeit bevorzugter Weg ist:
Verwenden Sie pdftoppm, um die PDF-Datei in eine Reihe von Bildern zu konvertieren.
Verwenden Sie img2pdf, um aus diesen Bildern eine PDF-Datei zu erstellen.
Die gute Nachricht ist, dass Sie ein Bash-Skript erstellen können, um den gesamten Prozess für Sie zu automatisieren.
Hier ist ein Bash-Skript, das alle PDF-Dateien in einem Verzeichnis destilliert und die Originale in einem neuen Verzeichnis "Originale" aufbewahrt.
Credits: img2pdf Antwort & pdftoppm Antwort & Bash Skript Hilfe: 1 & 2
(Randnotiz) Sie können img2pdf installieren mit:
quelle
Eine andere Alternative ist die Konvertierung in Bilder über so etwas wie
pdfimages
Auf der Manpage speichert Pdfimages Bilder aus einer PDF-Datei (Portable Document Format) als Portable Pixmap- (PPM), Portable Bitmap- (PBM) oder JPEG-Dateien. Pdfimages liest die PDF-Datei der PDF-Datei, scannt eine oder mehrere Seiten und schreibt eine PPM-, PBM- oder JPEG-Datei für jedes Bild, image-root-nnn.xxx, wobei nnn die Bildnummer und xxx der Bildtyp (.ppm, .pbm, .jpg) ist. "
Verwenden Sie dann pdftk, um wieder in PDF zu konvertieren. Https://www.pdflabs.com/docs/pdftk-cli-examples/
Drucken Sie abschließend diese Datei. Offensichtlich ist die Schlüsselfrage, wie man dies schreibt.
Sie können dies über eine einfache Webseite für Benutzer automatisieren. Schließlich drucken sie die konvertierte Datei aus und Sie sollten eine höhere Leistung und einen funktionierenden Ausdruck haben?
quelle