Ganze Seiten als PNG ausgeben

Ganze Seiten als PNG ausgeben

Ich muss einige PNGs der gesamten Seite ausgeben (eigentlich muss ich die linke und die rechte Seite zusammenfügen, derzeit mache ich das mit ImageMagick). Ich weiß, dass das mit der Standalone-Klasse möglich ist, aber ich muss das mit ganzen Büchern in der Memoiren-Klasse machen (wieDaseins).

Ich könnte dies tun, indem ich das PDF hole und dann einige PDF-Dienstprogramme verwende, aber ich habe mich gefragt, ob es effizientere Möglichkeiten gibt, dies zu tun (da ich dies tausende Male tun werde). Am nächsten komme ich meinem Idealergebnis, wenn ich dvipng verwende und die -T bboxOption verwende, die leider einige Ränder auslässt. Gibt es andere Optionen, die direkt mit der .tex-Datei oder der .dvi-Ausgabe funktionieren?

In einem bestimmten Fall wäre als Quelldatei Folgendes zu verwenden:

\documentclass[smalldemyvopaper,11pt]{memoir}
\usepackage{lipsum} 

\begin{document}
\lipsum[1-5]
\end{document}

Und dann zeigt die Verwendung des Befehls dvipng -T 5.675in,8.5in example.dviein wirklich anderes Bild als erwartet. Der 5.675in,8.5inTeil wurde aus dem Memoiren-Klassendokument übernommenTabelle 1.3Beachten Sie, dass auch der linke Teil geschnitten ist.

Bildbeschreibung hier eingeben

Antwort1

Wenn Sie darauf Zugriff haben, würde ich das pdftoppmDienstprogramm verwenden, das Teil der popplerDienstprogramme zum Bearbeiten von PDF-Dateien ist.

(Ich bin nicht sicher, was Sie damit meinten, dass die linke und die rechte Seite „zusammengeklebt“ seien.)

Wenn ich Ihre Beispieldatei (die ich als nenne testpng.tex) verwende, kann ich

 pdflatex testpng.tex

das die Seiten als PDFs generiert. Dann führe ich

 pdftoppm -png testpng.pdf tpn

(der -pngSchalter fordert die Ausgabe im PNG-Format an, und das tpnArgument legt das Präfix der ausgegebenen PNG-Dateien fest) Dieser Befehl generiert drei PNG-Dateien (da Sie mit drei Seiten in der PDF-Ausgabe begonnen haben) mit den Namen tpn-1.png, tpn-2.png, und tpn-3.png. Die zweite Seite sieht beispielsweise so aus

Bildbeschreibung hier eingeben

die meiner Meinung nach die richtigen Ränder hat. Sie können diemanpageum zu sehen, was es sonst noch kann.


Eine Alternative besteht darin, das Tool zu verwenden dvipng, das, wie der OP anmerkte, schneller läuft. Das vom OP festgestellte Problem besteht darin, dass nach der Angabe der Papiergröße die Ränder falsch angezeigt werden.

Der Grund hierfür ist, dass dvipngdie Ausgaben auf den -TParametern basieren:

  • Wenn -T bboxangegeben ist, gibt dvipng ein Bild aus, das das kleinste Rechteck ist, das enthält
    • DieDVI-Herkunft(das ist standardmäßig der Punkt 1 Zoll horizontal und vertikal von der oberen linken Ecke der Seite)
    • und die ganze Tinte auf der Seite.
  • Wenn -T tightangegeben ist, gibt dvipng ein Bild aus, das das kleinste Rechteck ist, das die gesamte Tinte auf der Seite enthält.
  • Wenn -T <width>,<height>ein Bild ausgegeben wird, das ein Rechteck mit der angegebenen Abmessung ist,dessen Inhalt das Rechteck dieser Größe ist, gemessen im Verhältnis zumDVI-Herkunft(das ist, denken Sie daran, der Punkt 1 Zoll vom oberen und linken Rand des Papiers entfernt).

Um dies zu veranschaulichen, betrachten Sie die folgende TeX-Quelle

\documentclass{book}

\usepackage{geometry}

\geometry{paperwidth=5in, paperheight=7in, inner=0.4in, outer=2in, top=1.2in, bottom=2in}
\usepackage{lipsum} 

\begin{document}
\lipsum[1-5]
\end{document}

Dies hat stark unausgeglichene Ränder. Wenn Sie verwenden dvipng -T5in,7in, sehen Sie auf den ersten beiden Seiten Folgendes:

Seite 1:

Bildbeschreibung hier eingeben

Seite 2:

Bildbeschreibung hier eingeben

Sie sehen, dass ein Teil des Textes auf Seite 1 abgeschnitten ist, da der innere Rand auf 0,4 Zoll eingestellt ist, also weniger als 1 Zoll vom Rand entfernt. Sie können auch messen, wenn Sie herausfinden möchten, dass in beiden Fällen der verbleibende obere Rand genau 0,2 Zoll beträgt, was bedeutet, dass beide Seitenzahlen jetzt verschwinden.

Um die gesamte Seite wie gewünscht zu erhalten, müssen Sie den DVI-Ursprung lediglich horizontal und vertikal um genau 1 Zoll verschieben, sodass er nun mit der oberen linken Ecke der Seite übereinstimmt.Beachten Sie, dass keineRaten oder Schätzenist erforderlich.Hier sind die Ergebnisse für die gleichen beiden Seiten unter Verwendung von dvipng -T5in,7in -O1in,1in; beachten Sie, dass die stark asymmetrischen Ränder berücksichtigt werden und im Gegensatz zu dem, wasDavid hat vorgeschlagen, zum Festlegen des Offset-Parameters ist kein Herumspielen mit den tatsächlichen Rändern des Dokuments erforderlich.

Seite 1:

Bildbeschreibung hier eingeben

Seite 2:

Bildbeschreibung hier eingeben

verwandte Informationen