script - php to pdf github




Convertir HTML+CSS en PDF avec PHP? (20)

1) utilisez MPDF !

a) extraire dans votre yourfolder

b) créez file.php dans votre yourfolder et insérez ce code:

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

c) ouvrez le fichier file.php depuis votre navigateur




2) Utilisez pdfToHtml !

1) extraire pdftohtml.exe dans votre dossier racine:

2) à l'intérieur de ce dossier, dans le fichier anyfile.php , mettez ce code (en supposant, il y a aussi une source example.pdf):

<?php
$source="example.pdf";
$output_fold="FinalFolder";

    if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>

3) entrez FinalFolder , et il y aura les fichiers convertis (autant de pages, comme le PDF source avait ..)

Ok, je me tape la tête contre un mur de briques avec celui-ci.

J'ai un document HTML (pas XHTML) qui rend bien dans Firefox 3 et IE 7. Il utilise CSS assez basique pour le style et rend bien au format HTML.

Je suis maintenant après une façon de le convertir en PDF. J'ai essayé:

  • DOMPDF : il y avait d'énormes problèmes avec les tables. J'ai factorisé mes grandes tables imbriquées et cela m'a aidé (avant de consommer jusqu'à 128M de mémoire puis de mourir - c'est ma limite de mémoire dans php.ini) mais ça fait un désordre complet de tables et ça ne semble pas arriver images. Les tables étaient juste des trucs de base avec des styles de bordure pour ajouter des lignes à différents points;
  • HTML2PDF et HTML2PS : J'ai vraiment eu plus de chance avec ça. Il a rendu certaines des images (toutes les images sont des URL Google Maps) et le formatage de la table était bien meilleur mais il semblait avoir un problème de complexité que je n'ai pas encore compris et qui continue de mourir avec des erreurs node_type () inconnues. Je ne sais pas où aller d'ici; et
  • Htmldoc : cela semble fonctionner Htmldoc sur HTML de base mais n'a presque aucun support pour CSS, donc vous devez tout faire en HTML (je n'avais pas réalisé que c'était encore en 2001 dans Htmldoc-land ...) donc c'est inutile pour moi.

J'ai essayé une application Windows appelée Html2Pdf Pilot qui a effectivement fait un travail assez décent, mais j'ai besoin de quelque chose qui fonctionne au minimum sur Linux et fonctionne idéalement sur demande via PHP sur le serveur Web.

Je ne peux vraiment pas croire que je suis coincé. Est-ce que je manque quelque chose?


API Web

S'il y a des gens qui cherchent toujours ce genre de choses, il y a un site gratuit qui vous permet de convertir le code html et les pages en pdf. Il y a aussi une (très petite) API qui vous permet d'obtenir un fichier pdf depuis l'URL.

Vérifiez-le ici


Bien qu'il existe déjà de nombreuses solutions, je recommande les deux suivantes:

  1. HTM2PDF - offre une API pour convertir HTML en PDF et dispose également d'un SDK PHP, ce qui le rend très facile à implémenter en PHP; Il offre un choix d'emplacements de serveurs en Europe, en Asie et aux États-Unis.
  2. PDFmyURL - offre une API qui fait aussi bien l'URL et le HTML au format PDF, avec à peu près les mêmes fonctionnalités que HTM2PDF, mais qui fonctionne sur un paysage à charge équilibrée et a été un peu plus longue

Ce qui différencie ces deux API de toutes les solutions mentionnées précédemment, c'est que - outre la conversion de HTML en PDF avec CSS et JavaScript - il offre également la gestion des droits PDF, le filigranage et le cryptage. C'est donc une solution tout-en-un pour ceux qui veulent démarrer.

Disclaimer: Je travaille pour Kaiomi, une entreprise qui exploite ces deux sites.


Cela a déjà été mentionné, mais je voudrais juste confirmer que mpdf est le convertisseur html / pdf le plus simple, le plus puissant et le plus gratuit du marché. Le ciel est vraiment la limite. Vous pouvez même générer des fichiers PDF dynamiques de données générées par l'utilisateur.

Par exemple, un client voulait un système de gestion de contenu (CMS) pour pouvoir mettre à jour la liste des morceaux qu'il a joués dans son club. Ce n'était pas un problème, mais il voulait aussi que les utilisateurs puissent télécharger un fichier .pdf de la liste de lecture, et donc ce fichier PDF téléchargeable a dû être mis à jour par les cms aussi. Merci à mpdf, avec quelques boucles simples et des variables intercalées je pourrais faire exactement cela. Quelque chose que je pensais me prendre des semaines m'a littéralement pris des minutes.

Télécharger la page

Super article qui m'a aidé à démarrer.


Commander TCPDF . Il a quelques fonctionnalités HTML au format PDF qui pourraient suffire à ce dont vous avez besoin. C'est aussi gratuit!


Eh bien, si vous voulez trouver une bibliothèque de convertisseur XHTML + CSS en PDF parfaite, oubliez-le. C'est loin d'être possible. Parce que c'est comme trouver un navigateur parfait (moteur de rendu XHTML + CSS). En avons-nous un? IE ou FF?

J'ai eu un certain succès avec DOMPDF. La chose est que vous devez modifier votre code HTML + CSS pour aller avec la façon dont la bibliothèque est censée fonctionner. A part ça, j'ai de très bons résultats.

Voir ci-dessous:

HTML d'origine

Conversion de HTML en PDF


Essayez de saisir la dernière version de dompdf en nocturne - j'utilisais une version plus ancienne qui était un piège de ressources terrible et qui m'a pris une éternité pour rendre mon pdf. Après avoir attrapé une nuit d' here .

Il n'a fallu que quelques secondes pour générer le PDF - ET il était tout aussi bien rendu qu'avec PrinceXML / Docraptor . On dirait qu'ils ont sérieusement optimisé le code dompdf depuis que je l'ai utilisé pour la dernière fois!


Est-ce que la conversion HTML en PDF doit vraiment se produire côté serveur en utilisant PHP?

Je viens de rencontrer jsPDF , une solution côté client utilisant HTML5 / JavaScript. Le code sous licence MIT est également sur GitHub .


J'ai développé une API publique pour construire des fichiers PDF à partir de pages Web. Il a une belle classe de client PHP qui le rend très facile à utiliser. Il utilise wkhtmltopdf pour rendre le PDF dans le nuage.

Pas besoin de quelque chose de spécial dans le HTML. Pas besoin d'URL absolues dans les liens images / css / js. Fonctionne sur localhost (machine de dev) aussi.

Actuellement, le service a des points de terminaison dans 4 régions d'Azur: US Est, US Ouest, EU Nord, Asie du Sud-Est.

C'est rapide car il utilise un protocole propriétaire pour envoyer le contenu de la page Web à l'API pour la conversion au format PDF.

C'est fiable parce que tous les points de terminaison sont équilibrés.

Compte gratuit disponible pour les tests ou une faible utilisation. Détails sur le site web:

https://rotativahq.com


J'ai essayé beaucoup de bibliothèques différentes pour PHP. Toutes les listes j'ai essayé. À mon avis, la bibliothèque TCPDF est la meilleure performance / facilité d'utilisation. Il est très simple à installer et à utiliser, ainsi que de bonnes performances en petite application moyenne. Si vous avez besoin de hautes performances et de très gros documents PDF, utilisez le module Zend_PDF , mais préparez-vous à coder fort!


Je ne pense pas qu'une classe php sera la meilleure pour rendre une page xHtml avec css.

Que se passe-t-il lorsqu'une nouvelle règle css sort? (bientôt css 3.0 ...)

La meilleure façon de rendre une page html est, visiblement, un navigateur. Firefox 3.0 peut nativement 'imprimer' en format pdf, torisugary a développé une extension (impression en ligne de commande) pour l'utiliser. Ici vous le trouverez.

De toute façon, il y a encore beaucoup de problèmes runninr firefox tout comme un convertisseur pdf ...

Pour le moment, je pense que wkhtmltopdf est le meilleur (c'est celui utilisé par le navigateur safari), rapide, rapide, génial. Oui, opensource aussi ... wkhtmltopdf


Je recommande TCPDF ou DOMPDF, c'est cet ordre


Jetez un oeil à wkhtmltopdf . Il est open source, basé sur webkit et gratuit.

Nous avons écrit un petit tutoriel here .

EDIT (2017):

Si c'était pour construire quelque chose aujourd'hui, je ne suivrais plus cette route.
Mais utiliserait http://pdfkit.org/ place.
Il est probablement dépouillé de toutes ses dépendances nodejs, pour s'exécuter dans le navigateur.


Juste pour cogner le fil, j'ai essayé DOMPDF et cela a fonctionné parfaitement. J'ai utilisé DIV et d'autres éléments de niveau bloc pour positionner tout, je l'ai gardé strictement CSS 2.1 et il a bien joué.


Le HTML2PDF et HTML2PS qui a été initialement mentionné dans le post d'ouverture parlait d'un paquet 2009 avec ce lien maintenant brisé

Mais il y a un meilleur HTML2PDF

Il est basé sur TCPDF bien qu'il soit partiellement en français.

Vous pouvez avoir des en-têtes de tableau ou des pieds de page qui se répètent sur les pages et ont des numéros de page et des pages totales. Voir ses exemples . Je l'utilise depuis plus de trois ans et je le recommande.


Peut-être pourriez-vous essayer d'utiliser Tidy avant de remettre le fichier au convertisseur. Si l'un des moteurs de rendu s'interrompt sur un problème HTML (comme une balise non fermée), cela peut l'aider.


Si vous avez accès à la ligne de commande, il est possible d'utiliser PhantomJS pour créer le PDF partir d'une URL (distante ou locale).

Cela fonctionne très bien et c'est une solution gratuite.

Jetez un oeil à cet github.com/ariya/phantomjs/blob/master/examples/rasterize.js script fait pour ce problème exact.


TCPDF fonctionne très bien, pas de dépendances, est gratuit et constamment corrigé. Il a une vitesse raisonnable si le contenu HTML / CSS fourni est bien formaté. Je génère normalement de 50 à 300 Ko d'entrée HTML (y compris CSS) et j'obtiens une sortie PDF en 1 à 3 secondes avec 10 à 15 pages PDF.

Je recommande fortement d'utiliser la bibliothèque tidy comme HTML joli formateur avant d'envoyer quelque chose à TCPDF.


pas PHP , mais une bibliothèque Java , qui fait la chose:

Flying Saucer prend du XML ou du XHTML et y applique des feuilles de style compatibles CSS 2.1, afin de les rendre au format PDF

Il est utilisable depuis PHP via system() ou un appel similaire. Bien qu'il nécessite XML bien formé de l' input .


Bonnes nouvelles! Snappy !!

Snappy est une bibliothèque PHP5 open source très simple , permettant la génération de vignettes, d'instantanés ou de PDF à partir d'une URL ou d'une page html. Et ... il utilise l' excellent wkhtmltopdf basé sur wkhtmltopdf

Prendre plaisir! ^ _ ^





pdf-generation