Html2pdf mit toc-, color- und Unicode-Unterstützung konvertieren?

1952
Adobe

Gibt es eine Möglichkeit, große HTML-Dateien (die übrigens mit Sphinx erzeugt werden) in PDF mit Farbe, Inhaltsverzeichnis (TOC) und Unicode-Unterstützung zu konvertieren?

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

Es gibt ein rst2pdfSphinx-Plugin - derzeit bricht es jedoch das mathematische Rendering und kann auch nicht mit Codezeilen verzerrt werden.

Es gibt eine Möglichkeit, in xetexin zu exportieren sphinx- aber es kann keine Codeblöcke mit Zeilenumbruch einschließen und auch keine svgBilder unterstützen.

Bearbeiten :

Ich habe versucht zu verwenden 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 bin festgefahren ...

1
Bearbeiten Sie Ihren LaTeX-Code und fügen Sie am Anfang diese Zeile ein: `\ usepackage [utf8] ` terdon vor 11 Jahren 0
Code wird jedoch nicht umbrochen. In Latex können Sie nur Code umhüllen, wenn Sie `Listings 'verwenden. Aber ich habe Code, der von Pygments eingefärbt ist - und in Listen kann ich nicht erkennen, dass diese Farbgebung analysiert wird. Adobe vor 11 Jahren 0

3 Antworten auf die Frage

1
terdon

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

Sie können auch versuchen, die Datei in einer Office-Suite zu öffnen und als PDF-Datei zu exportieren. Ich weiß, dass Wort und Libreoffice dies unterstützen. Dies ist die einzige Option, die ich kenne, wenn Sie Windows verwenden.

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

$ mogrify -format png *.svg 
LibreOffice verformt Bilder und rendert keine Mathematik. LaTeX unterstützt kein UTF und kann keinen Code umbrechen (wie ich in der Frage verweise). Adobe vor 11 Jahren 0
@Adobe, LaTeX [tut] (http://vemod.net/how-to-use-utf-8-encoding-with-latex) unterstützt utf8. Ich weiß nicht, in welcher Umgebung LaTeX für Ihre Codeblöcke verwendet wird, aber Sie sollten in der Lage sein, sie mit einem Minimum an Bearbeitungsaufwand einzuwickeln. Sie haben nicht gesagt, welches Betriebssystem Sie verwenden, zumindest unter Linux können Sie anstelle eines Druckers "to pdf" drucken, sodass Sie dies direkt über Ihren Browser tun können. terdon vor 11 Jahren 0
Aber gibt es eine Möglichkeit, wie ich mit toc ein PDF erhalten kann - beim Drucken als PDF? Ich verwende Kubuntu Linux, aber ich kann jedes Betriebssystem verwenden, wenn - es gibt eine Lösung. Sphinx verwendet die Verbatim LaTeX-Umgebung in Code-Blöcken, und es ist absolut unmöglich, diese Zeilen umzuwandeln. Adobe vor 11 Jahren 0
Es hängt davon ab, wie Ihr Toc eingerichtet ist. Gibt dir Latex einen toc? Wie für Codeblöcke können Sie wörtlich durch ein einfaches Float ersetzen und die Schriftart im Float ändern. Über den Rahmen Ihrer Frage hinaus. Versuchen Sie, das HTML-Dokument zu drucken, und wählen Sie "Drucken als PDF" als Drucker. terdon vor 11 Jahren 0
Meine index.html hat keinen toc (es kann keinen haben - weil es keine Seiten gibt). Ich möchte ein Buch mit toc aus einer einzigen großen HTML-Datei erhalten. Simpe print to pdf erzeugt kein toc. Adobe vor 11 Jahren 0
1
Rich Homolka

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

Es hat keine TOC-Unterstützung, irren, ich denke, das tut es.

Es wird im Wesentlichen als PDF gerendert.

Die Versionen 0.10.0 und höher haben eine toc-Unterstützung: `wkhtmltopdf toc my.html my.pdf`. Ich sehe, dass die Firefox-Erweiterung, die ich ausprobiert habe, genau diese Lib verwendet. Adobe vor 11 Jahren 0
@ Adobe cool, ich habe vielleicht eine ältere Version verwendet, die kein TOC hatte, ich hoffe das funktioniert für Sie. Rich Homolka vor 11 Jahren 0
Momentan versuche ich herauszufinden, wie man die Breite des Inhalts einstellt. Trotz toc hat richtige weite mein körper nicht. Vielleicht ist es irgendwo in meiner CSS eingestellt ... Adobe vor 11 Jahren 0
Ja, gelöst mit 'body `zusätzlich zu css. Den Befehl verwende ich: `./wkhtmltopdf-0.10.0-amd64 --enable-javascript --javascript-delay 5000 --no-stop-slow-scripts --no-background toc index.html 1.pdf` Adobe vor 11 Jahren 1
0
Adobe

Seiten als PDF drucken Firefox Addon macht ein toc.