11
votes

Comment puis-je convertir HTML en PDF à l'aide de Perl?

Je dois convertir des rapports HTML en PDF à l'aide de Perl. Quels sont les meilleurs modules CPAN pour le travail?


2 commentaires

Cela dépend un peu si vous avez besoin de soutien pour CSS. La plupart des solutions ne prennent que la prise en charge de HTML 3,0 très basique et de peu ou pas de CSS.


Essayez wkhtmltopdf - code.google.com/p/wkhtmltopdf C'est une console HTML-> PDF Converter Il prend également en charge les styles CSS.


6 Réponses :


1
votes

J'ai utilisé PDF :: API2 pour créer des rapports PDF avec un grand succès.


1 commentaires

PDF :: API2 est très puissant, mais il nécessite des adresses de niveau de pixel pour la mise en page - pas bon pour le formatage facilement du texte.



1
votes

Cela dépend de ce que vous devez faire exactement, mais je regarderais probablement NOREFERRER"> :: Extraire et PDF :: Modèle .


0 commentaires

7
votes

J'espère PDF :: fromhtml peut être utile.


3 commentaires

est-ce disponible pour Windows ... en cours d'exécution Perl sous Windows


Oui, il fonctionne également sous Windows. Référence: Testeurs CPAN .


Pas de CSS pour vous! CAVEATS: [...] Cela signifie tout HTML utilisant des CSS externes ou en ligne pour la conception et la mise en page, y compris, mais sans s'y limiter: les images, les arrière-plans, les couleurs, les polices, etc. ... ne seront pas converties en PDF. < / i>.



1
votes

pincexml

Cela ne vous répond pas dans le sens de l'utilisation de Perl, mais aussi loin que je sache que le meilleur convertisseur HTML au PDF est disponible.


4 commentaires

J'ai entendu de bonnes choses à ce sujet aussi. Il le documente le document à partir de Perl ( PrinceXML.com/doc/6.0/perl ) Mais cela se résume à "utiliser stdin / sdout".


PrinceXML semble prendre en charge le CSS bien (l'un des auteurs a aidé à rédiger la spécification CSS d'origine), mais cela coûte beaucoup de choses à usage commercial. Ils fournissent également un exemple de fichier CSS pour la pagination des documents HTML / XML et des livres de formatage.


Je travaille au comportement attendu et nous avons une API HTML à PDF appelée DocRaptor qui utilise Prince comme moteur de rendu pour PDFS. Notre service est un bon moyen d'obtenir la qualité de Prince sans effectuer une installation côté serveur. DOCRAPTOR.COM


Nous utilisons PRINCEXML chez mon entreprise pendant un moment, et c'est absolument incroyable. Bien sûr, ce n'est pas gratuit ou pas cher, mais beaucoup moins cher que d'essayer de tout construire vous-même.



2
votes

HTML :: HTMLDOC Utilise la bibliothèque HTMLDOC C sous-jacente qui est construite pour faire juste cette. Et c'est assez rapide aussi.


1 commentaires

En septembre 2011, seule la version de développement (bêta) version 1.9 prend en charge HTML 4.0 et CSS partiellement. Cependant, il semble bien conçu et documenté.



1
votes

PDF :: Webkit

Je pourrais convertir de HTML en PDF avec Perl Avec PDF :: Webkit, qui utilise à son tour wkhtmltopdf . De apt show wkhtmltopdf code>: p>

Utilités de ligne de commande Pour convertir HTML en PDF ou Image à l'aide de WEBKIT WKHTMLTOPDF est un programme de ligne de commande permettant de créer un PDF ou une image à partir d'une URL, d'un fichier HTML local ou de stdin. Il produit un PDF ou une image comme rendu avec le moteur WebKit. P>

Ce programme nécessite un serveur X11 à exécuter. strong> p> BlockQuote>

Par conséquent, cette solution semble inacceptable sur un serveur. Peut-être Weasyprint (construit avec python) ou ATHENAPDF ? Ou Pandoc ? Strike> P>

La dernière version est sans tête (fait Non besoin de x serveur). strong> p>

Installation: p> xxx pré>

Utilisez .deb de site officiel pour obtenir la dernière version. P>

html2pdf.pl strong> p>

<!DOCTYPE html>
<html lang="en">
<head>
  <title>My Title</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>
<body>
  <p class="text-primary">.text-primary</p>
  <p class="text-secondary">.text-secondary</p>
  <p class="text-success">.text-success</p>
  <p class="text-danger">.text-danger</p>
  <p class="text-warning">.text-warning</p>
</body>
</html>


0 commentaires