web-dev-qa-db-fra.com

Comment convertir HTML en PDF utiliser pandoc?

De quelles bibliothèques ai-je besoin? Quels paramètres de ligne de commande dois-je transmettre?

J'ai installé wkhtml2pdf et j'ai essayé de lancer:

pandoc reports/7/report.html -t pdf -o reports/7/report.pdf

Ce qui rapporte une erreur de:

To create a pdf with pandoc, use the latex or beamer writer and specify
an output file with .pdf extension (pandoc -t latex -o filename.pdf).
5

pdf n'est pas un format de sortie valide. latex et beamer (pour les diaporamas en latex) sont.

Pour créer un pdf, utilisez -t latex et -o myoutput.pdf. Vous pouvez omettre l'argument -t car un .pdf dans -o est défini par défaut sur latex. Vous pouvez donc utiliser soit:

pandoc reports/7/report.html -t latex -o reports/7/report.pdf

ou:

pandoc reports/7/report.html -o reports/7/report.pdf
5
scoa

Ce qui suit fonctionne pour moi:

pandoc --pdf-engine=xelatex https://www.python.org/dev/peps/pep-0008/ -o pep8.pdf

Vous devez avoir une distribution LaTeX installée telle que TeX Live .

Si vous souhaitez colorer les liens, vous devez ajouter les options linkcolors. Si la page Web contient des caractères CJK, vous devez spécifier les options CJKmainfont. Un exemple est présenté ci-dessous:

pandoc --pdf-engine=xelatex -V colorlinks -V CJKmainfont="KaiTi" https://jdhao.github.io/2019/01/07/windows_tools_for_programmers/ -o programmer_tools.pdf

La police KaiTi prend en charge les caractères chinois. Si vous utilisez d'autres langues, vous pouvez utiliser l'option mainfont pour spécifier une police prenant en charge la langue utilisée par la page Web.

Si la page Web contient des images svg, vous devez également installer rsvg-convert pour convertir correctement la page Web en fichiers PDF (voir la référence ici ).

2
jdhao

De https://pandoc.org/MANUAL.html :

Pandoc peut également utiliser l'un des moteurs HTML/CSS à PDF suivants pour créer un fichier PDF:

Pour ce faire, spécifiez un fichier de sortie avec une extension .pdf, comme auparavant, mais ajoutez le --pdf-engine option ou le contexte, -t html ou -t ms à la ligne de commande ( -t html la valeur par défaut est --pdf-engine = wkhtmltopdf ).

2
Dave Jarvis