Конвертировать html2pdf с поддержкой toc, color и unicode?

1895
Adobe

Есть ли способ, которым я могу преобразовать большой HTML-файл (кстати, созданный с помощью sphinx) в PDF с цветом, оглавлением (toc) и поддержкой юникода?

Есть htmldoc- но он не поддерживает ни цвет, ни юникод.

Есть rst2pdfплагин sphinx - но в настоящее время он нарушает математический рендеринг, а также не может деформировать строки кода.

Есть способ экспортировать в xetexin sphinx- но он не может переносить кодовые блоки, а также не поддерживает svgизображения.

Редактировать :

Я пытался использовать pandoc:

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

это дает:

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} » 

Я застрял ...

1
Отредактируйте ваш код LaTeX и добавьте эту строку в начале: `\ usepackage [utf8] ` terdon 11 лет назад 0
Но это не обернет код. В латексе вы можете обернуть код только тем, что используете `lists`. Но у меня есть код, раскрашенный фрагментами - и в листингах я не могу разобрать, что раскраска ... Итак, вы видите - я работал таким образом - латекс не работает на самом деле. Adobe 11 лет назад 0

3 ответа на вопрос

1
terdon

Если вы используете Linux или Mac, вы можете попробовать html2pdfили html2ps foo.html; ps2pdf foo.ps. Ни один из этих методов не идеален, но они могут работать.

Вы также можете попробовать открыть файл в офисном пакете и экспортировать в pdf. Я знаю, что и слово, и libreoffice поддерживают это. Это единственный вариант, который я знаю, если вы используете Windows.

Лучшим способом было бы экспортировать файл в формате TeX или LaTeX и скомпилировать PDF, вы можете отредактировать код LaTeX, чтобы исправить любые проблемы с переносом. Вы также можете легко конвертировать ваши изображения в png, используя convertImageMagick:

$ mogrify -format png *.svg 
LibreOffice искажает изображения и не отображает математику. LaTeX не поддерживает UTF и не может переносить код (как я указал в вопросе). Adobe 11 лет назад 0
@Adobe, LaTeX [делает] (http://vemod.net/how-to-use-utf-8-encoding-with-latex) поддерживает utf8. Я не знаю, какую среду использует LaTeX для ваших блоков кода, но вы должны иметь возможность сделать их оберточными с минимумом редактирования. Вы не сказали, какую ОС вы используете, по крайней мере, в Linux, вы можете «печатать в pdf» вместо принтера, чтобы вы могли делать это прямо из браузера. terdon 11 лет назад 0
Но есть ли способ получить pdf с помощью toc - при печати в pdf? Я использую Kubuntu Linux, но я могу пойти на любую ОС, если - есть решение. Sphinx использует среду Verbatim LaTeX в блоках кода, и их абсолютно невозможно обернуть в слова. Adobe 11 лет назад 0
Это зависит от того, как настроен ваш ток. Латекс дает вам токен? Что касается блоков кода, вы можете заменить дословно простым float и изменить шрифт внутри float. Выходя за рамки вашего вопроса, хотя. Попробуйте распечатать документ html и выбрать «print to pdf» в качестве принтера. terdon 11 лет назад 0
В моем index.html нет токена (он не может быть, потому что нет страниц). Я хочу получить книгу с током из одного большого HTML-файла. Simpe печати в PDF не будет производить ToC. Adobe 11 лет назад 0
1
Rich Homolka

Have you tried wkhtmltopdf? It's based on WebKit, and has CSS support, of course with colors.

It doesn't have TOC support, err, i guess it does.

It's basically rendering to PDF.

Версии 0.10.0 и выше имеют поддержку toc: `wkhtmltopdf toc my.html my.pdf`. Я вижу, что расширение Firefox, которое я пробовал, использует именно эту библиотеку. Adobe 11 лет назад 0
@ Adobe круто, возможно, я использовал более старую версию без TOC, я надеюсь, что это сработает для вас. Rich Homolka 11 лет назад 0
Ну, в настоящее время я пытаюсь выяснить, как установить ширину содержимого. Несмотря на то, что ток имеет правильную ширину, моего тела нет. Возможно, это установлено где-то в моем CSS ... Adobe 11 лет назад 0
Да, решил это с помощью `body `дополнение к css. Я использую команду: `./wkhtmltopdf-0.10.0-amd64 --enable-javascript --javascript-delay 5000 --no-stop-slow-scripts - no-background toc index.html 1.pdf` Adobe 11 лет назад 1
0
Adobe

Print pages to pdf firefox addon does make a toc.

Похожие вопросы