Les plats clés
- DOMPDF est une bibliothèque PHP qui peut convertir les styles de balisage HTML et CSS en document PDF, ce qui le rend utile pour les applications Web qui doivent prendre en charge le téléchargement des données au format PDF.
- Pour utiliser DOMPDF, il doit être installé via GitHub ou Composer, et il nécessite PHP> = 5.0 avec les extensions MBSTring et DOM activées. Le balisage HTML peut être chargé sous forme de cha?ne ou à partir d'un fichier ou d'URL, puis rendu dans un PDF.
- DOMPDF fournit une gamme d'options de configuration pour adapter le PDF à des besoins spécifiques, tels que la taille du papier, l'orientation de la page et le codage des caractères. Il permet également une utilisation avancée, tel que la sauvegarde du PDF généré sur le disque, ou l'ajout d'en-têtes ou de pied de page.
- Bien que DOMPDF soit un outil puissant, il a certaines limites, comme être intolérants à un HTML mal formé et n'ayant un support limité pour CSS3. Il est recommandé de revoir la documentation et le code source de la bibliothèque pour une compréhension complète de ses capacités et de ses problèmes potentiels.
Pour commencer
DOMPDF est disponible sur GitHub et peut être installé à l'aide du compositeur. Obtenir une installation basée sur des compositeurs correctement correctement est encore un peu délicat, donc je recommande simplement d'utiliser GIT pour installer DOMPDF. La bibliothèque nécessite PHP> = 5.0 avec les extensions MBSTring et DOM activées. Il a également besoin de quelques polices, qui sont généralement disponibles sur la plupart des machines. Accédez à partout où vous souhaitez mettre la bibliothèque et exécuter:git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateAvec DOMPDF téléchargé, écrivons un court exemple qui générera un PDF simple.
<span><span><?php </span></span><span><span>set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf"); </span></span><span> </span><span><span>require_once "dompdf_config.inc.php"; </span></span><span> </span><span><span>$dompdf = new DOMPDF(); </span></span><span> </span><span><span>$html = <span><span><<<'ENDHTML'</span> </span></span></span><span><span><html> </span></span><span><span> <body> </span></span><span><span> <h1>Hello Dompdf</h1> </span></span><span><span> </body> </span></span><span><span></html> </span></span><span><span><span>ENDHTML<span>;</span></span> </span></span><span> </span><span><span>$dompdf->load_html($html); </span></span><span><span>$dompdf->render(); </span></span><span> </span><span><span>$dompdf->stream("hello.pdf");</span></span>Pour utiliser la bibliothèque dans un projet, nous appuyons d'abord dans DOMPDF_CONFIG.INC.PHP qui contient la majeure partie de la configuration DOMPDF. Il charge également un Autoloader et un fichier de configuration personnalisé dans lequel nous pouvons remplacer les paramètres de configuration par défaut. Le balisage HTML est donné en tant que cha?ne à la méthode LOAD_HTML (). Alternativement, nous pouvons charger un balisage à partir d'un fichier ou d'une URL à l'aide de la méthode LOAD_HTML_FILE (). Il accepte un nom de fichier ou l'URL d'une page Web comme argument. La méthode render () rend le HTML en PDF et nous sommes prêts à vider le fichier PDF. Stream () envoie le PDF résultant en tant que pièce jointe au navigateur. La méthode Stream () a un deuxième paramètre en option, un tableau d'options:
- Accept-Ranges - Boolean, Endire ?Accept-Ranges? (False par défaut).
- Pièce jointe - Boolean, envoyez un en-tête ?contenu-disposition: pièce jointe? for?ant le navigateur à afficher une invite de sauvegarde (vrai par défaut).
- Compress - booléen, activer la compression de contenu (vrai par défaut).
- DOMPDF_DEFAULT_PAPER_SIZE - Définit la taille du papier par défaut pour le document PDF. Les tailles de papier prises en charge peuvent être trouvées dans include / cpdf_adapter.cls.php (la valeur par défaut est ?Lettre?).
- DOMPDF_TEMP_DIR - Spécifie le répertoire temporaire utilisé par DOMPDF. Assurez-vous que cet emplacement est écrite par le compte du serveur Web.
- DOMPDF_UNICODE_ENABLE - Définit si le PDF utilise des polices Unicode (la valeur par défaut est vraie).
- DOMPDF_ENABLE_REMOTE - Permet l'inclusion d'images ou de styles CSS à partir de sites distants (la valeur par défaut est fausse).
- DEBUG_LAYOUT - Que ce soit pour rendre une bo?te autour de chaque bloc HTML dans le fichier PDF, ce qui est utile pour déboguer la mise en page (la valeur par défaut est fausse).
Utilisation avancée
Parlons maintenant de certaines utilisations avancées de DOMPDF. Peut-être que nous voulons enregistrer le document PDF généré sur le disque au lieu de l'envoyer au navigateur. Voici comment:git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateAu lieu d'appeler Stream () comme dans l'exemple précédent, nous utilisons la sortie () qui renvoie le PDF en tant que cha?ne. Il accepte également un tableau d'options facultatifs, mais la seule option disponible est compresse (la valeur par défaut est vraie). DOMPDF nous permet également d'ajouter un en-tête ou un pied de page au PDF généré en intégrant un script PHP dans le HTML qu'il rend. Mais parce que le traitement du code arbitraire peut poser un risque de sécurité si vous ne faites pas attention, la valeur de configuration qui contr?le cette fonctionnalité est désactivée par défaut. Nous devons d'abord définir l'option DOMPDF_ENABLE_PHP true. Une fois que nous aurons activé l'exécution de PHP en ligne, l'objet PDF sera mis à disposition dans le script, que nous pouvons utiliser pour manipuler la page. Nous pouvons ajouter du texte, des lignes, des images, des rectangles, etc. n'importe où à l'intérieur de la page.
<span><span><?php </span></span><span><span>set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf"); </span></span><span> </span><span><span>require_once "dompdf_config.inc.php"; </span></span><span> </span><span><span>$dompdf = new DOMPDF(); </span></span><span> </span><span><span>$html = <span><span><<<'ENDHTML'</span> </span></span></span><span><span><html> </span></span><span><span> <body> </span></span><span><span> <h1>Hello Dompdf</h1> </span></span><span><span> </body> </span></span><span><span></html> </span></span><span><span><span>ENDHTML<span>;</span></span> </span></span><span> </span><span><span>$dompdf->load_html($html); </span></span><span><span>$dompdf->render(); </span></span><span> </span><span><span>$dompdf->stream("hello.pdf");</span></span>Le script est intégré directement dans le balisage HTML et ouvre d'abord un objet afin que nous puissions affecter le rendu. Tous les dessins seront enregistrés dans cet objet et nous pouvons ajouter cet objet à toutes les pages ou sélectionnées (bien qu'il y ait des limitations). Ensuite, nous récupérons la largeur et la hauteur réelles de la page pour calculer les coordonnées du pied de page que nous avons l'intention d'ajouter. De plus, nous devons fournir un objet de police pendant que nous ajoutons le contenu du texte. Font_metrics :: get_font () nous permet de créer l'objet dont nous avons besoin. Nous prenons également la hauteur de la police donnée à sa taille de police en utilisant get_font_height () pour calculer le positionnement du contenu du pied de page. La méthode get_font_width () renvoie la largeur de notre texte pour la police et la taille données qui sont également utilisées dans nos calculs. La méthode line () tire une ligne du point (x1, y1) à (x2, x2). Notez que la valeur de couleur que nous avons fournie n'est pas une valeur RVB réelle. La classe PDF sous-jacente nécessite des valeurs entre 0 et 1 et nous convertissons donc les valeurs RVB en ces nouvelles valeurs. Pour obtenir une meilleure approximation, vous pouvez le diviser par 255. Nous ajoutons le numéro de page pour chaque page à l'aide de la méthode page_text (), qui accepte une position x et y, le texte à ajouter, un objet de police, une taille de police et une couleur. DOMPDF remplace automatiquement les valeurs de {page_num} et {page_count} dans chaque page, et rend $ pdf à notre disposition. Lorsque le PDF sera rendu, la section de pied de page ressemblera à ceci:
git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateNotez que nous pla?ons le code après avoir appelé $ dOMPDF-> render () car nous modifions essentiellement le PDF rendu.
Conclusion
Dans cet article, nous avons discuté de la fa?on de convertir facilement le HTML en PDF à l'aide de DOMPDF. Bien que DOMPDF soit une excellente bibliothèque, ce n'est pas une solution pare-balles pour générer des documents PDF; Il a certaines limites et problèmes. DOMPDF n'est pas vraiment tolérant à la HTML mal formée, et les grandes tables peuvent facilement vous faire manquer de mémoire. Certaines fonctionnalités CSS de base comme Float ne sont pas complètement prises en charge et il n'y a qu'une prise en charge limitée pour CSS3. Si vous avez besoin de fonctionnalités qui ne sont pas prises en charge par DOMPDF, quelque chose comme WKHTMLTOPDF pourrait être une meilleure solution pour vous. Pourtant, DOMPDF est assez simple et adapté à la majorité des besoins d'exportation PDF. Il est vraiment difficile d'expliquer toutes les fonctionnalités fournies par une bibliothèque dans un article comme celui-ci, alors assurez-vous de consulter la documentation et le code source également pour en savoir plus sur les fonctionnalités sympas comme l'ajout de rappels, en utilisant des polices personnalisées, etc. ?Je suis heureux de vous aider dans mon expertise limitée. N'hésitez pas à laisser vos questions et à partager vos expériences dans la section des commentaires. Image via Fotolia Et si vous avez aimé lire ce post, vous aimerez l'apprentissage; L'endroit pour acquérir de nouvelles compétences et techniques de la ma?trise. Les membres ont un accès instantané à tous les livres électroniques de SitePoint et aux cours en ligne interactifs, comme Jump Start Php. Les commentaires sur cet article sont fermés. Vous avez une question sur PHP? Pourquoi ne pas le demander sur nos forums?Les questions fréquemment posées (FAQ) sur la conversion de HTML en PDF avec DOMPDF
Qu'est-ce que DOMPDF et pourquoi est-il utilisé?
DOMPDF est une bibliothèque PHP qui fournit un moyen simple de convertir HTML en PDF. Il est utilisé car il peut gérer des dispositions HTML complexes, y compris les styles CSS, JavaScript et les images. C'est un outil puissant pour les développeurs qui ont besoin de générer des documents PDF à partir de contenu HTML. Il est facile à utiliser, flexible et peut être intégré à n'importe quelle application PHP.
Comment installer DOMPDF?
DOMPDF peut être installé à l'aide de Composer, un outil de gestion des dépendances pour PHP. Vous pouvez installer Composer, puis exécuter la commande ?Composer nécessite DOMPDF / DOMPDF?. Cela téléchargera et installer la bibliothèque DOMPDF dans votre projet.
Puis-je utiliser CSS avec DOMPDF?
Oui, DOMPDF prend en charge CSS. Vous pouvez utiliser CSS en ligne dans votre HTML, ou vous pouvez créer un lien vers un fichier CSS externe. DOMPDF appliquera les styles lors de la génération du PDF. Cependant, veuillez noter que toutes les propriétés CSS ne sont pas prises en charge.
comment puis-je ajouter des images à mon PDF?
Vous pouvez ajouter des images à votre PDF en incluant une balise `` IMG '' dans votre HTML . L'attribut ?src? doit pointer vers le fichier image. DOMPDF inclura l'image dans le pdf généré.
Puis-je générer un PDF avec plusieurs pages?
Oui, DOMPDF peut générer un PDF avec plusieurs pages. Si votre contenu HTML est suffisamment long pour s'étendre sur plusieurs pages, DOMPDF le divisera automatiquement en pages. Vous pouvez également ajouter manuellement les pauses de page à l'aide de CSS.
Comment définir la taille et l'orientation de la page?
Vous pouvez définir la taille et l'orientation de la page à l'aide de la méthode ?set_paper?. Par exemple, vous pouvez utiliser '$ dombpdf-> set_paper (' a4 ',' paysage ')' pour définir la taille de la page sur A4 et l'orientation vers le paysage.
Puis-je utiliser DOMPDF avec Laravel?
Oui, DOMPDF peut être utilisé avec Laravel. Il existe un package Laravel appelé ?Laravel-Dompdf? qui fournit un moyen facile d'utiliser DOMPDF dans une application Laravel.
Comment puis-je enregistrer le PDF généré dans un fichier?
Vous pouvez enregistrer Le PDF généré à un fichier utilisant la méthode 'Output' et la fonction 'File_Put_Contents'. Par exemple, vous pouvez utiliser 'file_put_contents (' mypdf.pdf ', $ dompdf-> output ())' pour enregistrer le pdf dans un fichier nommé 'mypdf.pdf'.
En réponse dans une application Web?
Oui, vous pouvez envoyer le PDF généré en réponse dans une application Web. Vous pouvez utiliser la méthode ?Stream? pour envoyer le PDF directement au navigateur.
est DOMPDF sécurisé?
DOMPDF est généralement considéré comme sécurisé, mais comme tout logiciel, il peut avoir des vulnérabilités. Il est important de maintenir à jour votre installation DOMPDF et de revoir les directives de sécurité fournies par l'équipe DOMPDF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.

Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20
