Html2pdf mit toc-, color- und unicode-unterstützung konvertieren?

1

Gibt es eine Möglichkeit, große HTML-Dateien (die übrigens mit Sphinx erstellt wurden) mit Farbe, Inhaltsverzeichnis (toc) und Unicode-Unterstützung in PDF-Dateien umzuwandeln?

Es gibt htmldoc- aber es unterstützt weder Farbe noch Unicode.

Es gibt ein rst2pdfSphinx-Plugin - aber derzeit funktioniert das Rendern in Mathematik nicht mehr und es können auch keine Word-Warp-Codezeilen erstellt werden.

Es gibt eine Möglichkeit, nach xetexin zu exportieren sphinx- aber es können keine Code-Blöcke mit Zeilenumbruch und auch keine svgBilder unterstützt werden.

Bearbeiten :

Ich habe versucht zu benutzen pandoc:

pandoc index.html --mathjax --toc -o index.pdf

es gibt:

pandoc: Error producing PDF from TeX source.
! LaTeX Error: Command \guillemotright unavailable in encoding OT1.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.55   2012-Sep-11} »

Ich stecke fest ...

Adobe
quelle
Bearbeiten Sie Ihren LaTeX-Code und fügen Sie diese Zeile am Anfang hinzu:\usepackage[utf8]{inputenc}
terdon
Code wird jedoch nicht umgebrochen. In Latex können Sie nur den Code einschließen, den Sie verwenden listings. Aber ich habe Code von Pygmenten gefärbt - und in Auflistungen kann ich es nicht verstehen, diese Färbung zu analysieren.
Adobe

Antworten:

1

Haben Sie versucht, wkhtmltopdf ? Es basiert auf WebKit und hat CSS-Unterstützung, natürlich mit Farben.

Es hat keine TOC-Unterstützung , äh, ich denke schon.

Grundsätzlich wird in PDF gerendert.

Reiche Homolka
quelle
Versionen 0.10.0 und oben haben eine toc Unterstützung: wkhtmltopdf toc my.html my.pdf. Ich sehe, dass die Firefox-Erweiterung, die ich ausprobiert habe, genau diese Bibliothek verwendet.
Adobe
@Adobe cool, ich habe möglicherweise eine ältere Version ohne Inhaltsverzeichnis verwendet, ich hoffe, das funktioniert für Sie.
Rich Homolka
Nun, zurzeit versuche ich herauszufinden, wie die Breite des Inhalts eingestellt werden kann. Trotz toc hat mein Körper nicht die richtige Breite. Vielleicht ist es irgendwo in meinem CSS festgelegt ...
Adobe
1
Ja, es wurde body { width: 150%; }zusätzlich zu CSS gelöst . Der Befehl, den ich benutze:./wkhtmltopdf-0.10.0-amd64 --enable-javascript --javascript-delay 5000 --no-stop-slow-scripts --no-background toc index.html 1.pdf
Adobe
1

Wenn Sie unter Linux oder Mac arbeiten, können Sie html2pdfoder versuchen html2ps foo.html; ps2pdf foo.ps. Keine dieser Methoden ist perfekt, aber sie könnten funktionieren.

Sie können die Datei auch in einer Office-Suite öffnen und als PDF exportieren. Ich weiß, dass sowohl Wort als auch Büro dies unterstützen. Dies ist die einzige Option, die mir bekannt ist, wenn Sie Windows verwenden.

Der beste Weg wäre, die Datei als TeX oder LaTeX zu exportieren und das PDF zu kompilieren. Sie können den LaTeX-Code bearbeiten, um eventuelle Umbruchprobleme zu beheben. Sie können Ihre Bilder auch ganz einfach mit convertImageMagick in PNG konvertieren :

$ mogrify -format png *.svg
terdon
quelle
LibreOffice deformiert Bilder und rendert keine Mathe. LaTeX unterstützt kein UTF und kann keinen Code umbrechen (wie ich in der Frage erwähne).
Adobe
@Adobe, LaTeX tut Unterstützung UTF8. Ich weiß nicht, welche Umgebung LaTeX für Ihre Codeblöcke verwendet, aber Sie sollten in der Lage sein, sie mit einem Minimum an Bearbeitung umzubrechen. Sie haben nicht angegeben, welches Betriebssystem Sie verwenden. Zumindest unter Linux können Sie "als PDF drucken" anstatt als Drucker, sodass Sie dies direkt von Ihrem Browser aus tun können.
Terdon
Aber gibt es eine Möglichkeit, mit toc ein PDF zu erhalten - beim Drucken als PDF? Ich verwende Kubuntu Linux, kann aber jedes Betriebssystem verwenden, wenn es eine Lösung gibt. Sphinx verwendet die LaTeX-Umgebung von Verbatim in Codeblöcken, und es ist absolut unmöglich, diese in Worte zu fassen.
Adobe
Es hängt davon ab, wie Ihr toc eingerichtet ist. Gibt dir Latex ein Toc? Bei Codeblöcken können Sie wörtlich durch einen einfachen Gleitkomma ersetzen und die Schriftart im Gleitkomma ändern. Den Rahmen Ihrer Frage jedoch sprengen. Versuchen Sie, das HTML-Dokument zu drucken, und wählen Sie als Drucker "Als PDF drucken".
Terdon
Meine index.html hat kein toc (es kann kein toc geben - weil es keine Seiten gibt). Ich möchte ein Buch mit toc aus einer einzigen großen HTML-Datei erhalten. Simpe-Druck zu pdf produziert kein toc.
Adobe