Key Takeaways
- dompdf ist eine PHP -Bibliothek, die HTML -Markup- und CSS -Stile in ein PDF -Dokument umwandeln kann, was es für Webanwendungen nützlich macht, die das Herunterladen von Daten im PDF -Format unterstützen müssen.
- Um Dompdf zu verwenden, muss es über GitHub oder Komponist installiert werden und ben?tigt Php> = 5.0, wobei die Mbstring- und DOM -Erweiterungen aktiviert sind. HTML -Markup kann als Zeichenfolge oder aus einer Datei oder URL geladen und dann zu einem PDF gerendert werden.
- dompdf bietet einen Bereich von Konfigurationsoptionen, um das PDF auf bestimmte Anforderungen wie Papiergr??e, Seitenorientierung und Zeichencodierung zuzuordnen. Es erm?glicht auch eine fortgeschrittene Verwendung, z. B. das Speichern des generierten PDF auf Scheibe oder Hinzufügen von Headern oder Fu?zeilen.
- W?hrend Dompdf ein leistungsstarkes Werkzeug ist, hat es einige Einschr?nkungen, z. Es wird empfohlen, die Dokumentation und den Quellcode der Bibliothek zu überprüfen, um die F?higkeiten und potenziellen Probleme vollst?ndig zu verstehen.
Erste Schritte
Dompdf ist auf GitHub erh?ltlich und kann mit Composer installiert werden. Eine Komponisten-basierte Installation korrekt zu erhalten, ist zugegebenerma?en noch etwas schwierig. Ich empfehle daher, nur Git für die Installation von Dompdf zu verwenden. Die Bibliothek erfordert Php> = 5.0, wobei die Mbstring- und DOM -Erweiterungen aktiviert sind. Es ben?tigt auch einige Schriftarten, die in den meisten Maschinen im Allgemeinen erh?ltlich sind. Navigieren Sie zu dem, wo Sie die Bibliothek einsetzen und ausführen m?chten:git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateSchreiben wir mit Dompdf, das heruntergeladen wurde, ein kurzes Beispiel, das ein einfaches PDF generiert.
<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>Um die Bibliothek in einem Projekt zu verwenden, ziehen wir zun?chst dompdf_config.inc.php ein, das den gr??ten Teil der Dompdf -Konfiguration enth?lt. Au?erdem wird ein Autoloader und eine benutzerdefinierte Konfigurationsdatei geladen, in der wir Standardkonfigurationsparameter überschreiben k?nnen. HTML -Markup wird als Zeichenfolge für die Methode load_html () angegeben. Alternativ k?nnen wir Markup aus einer Datei oder URL unter Verwendung der Methode load_html_file () laden. Es akzeptiert einen Dateinamen oder die URL einer Webseite als Argument. Die Render () -Methode macht das HTML in PDF und wir sind bereit, die PDF -Datei abzuwerfen. Stream () sendet das resultierende PDF als Anhang an den Browser. Die Stream () -Methode hat einen optionalen zweiten Parameter, ein Array von Optionen:
- Akzeptieren-boolean, senden Sie den Header ?Akzeptieren“ (standardm??ig falsch).
- Anhang-Boolean, Senden Sie die Header ?Inhaltsdisposition: Anhang“, die den Browser dazu zwingt, eine speichernde Eingabeaufforderung anzuzeigen (standardm??ig True).
- Kompress - boolean, Inhaltskomprimierung aktivieren (standardm??ig true).
- dompdf_default_paper_size - Legt die Standardpapiergr??e für das PDF -Dokument fest. Unterstützte Papiergr??en finden Sie in include/cpdf_adapter.cls.php (der Standardwert ist ?Buchstabe“).
- dompdf_temp_dir - Gibt das von Dompdf verwendete tempor?re Verzeichnis an. Stellen Sie sicher, dass dieser Ort vom Webserverkonto beschreibbar ist.
- dompdf_unicode_enabled - Legt fest, ob der PDF Unicode -Schriftarten verwendet (die Standardeinstellung ist wahr).
- dompdf_enable_remote - Aktiviert die Aufnahme von Bildern oder CSS -Stilen von Remote -Websites (Standard ist falsch).
- debug_layout - ob Sie in der PDF -Datei ein Box um jeden HTML -Block rendern, der zum Debuggen des Layouts nützlich ist (Standard ist falsch).
Erweiterte Verwendung
Sprechen wir nun über einige erweiterte Verwendungen von Dompdf. Vielleicht m?chten wir das generierte PDF -Dokument auf Festplatten speichern, anstatt es an den Browser zu senden. So wie: wie:git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateAnstatt Stream () wie im vorherigen Beispiel aufzurufen, verwenden wir output (), wodurch die PDF als Zeichenfolge zurückgegeben wird. Auch akzeptiert ein optionales Options -Array, die einzige verfügbare Option ist jedoch die Komprimierung (die Standardeinstellung ist wahr). Dompdf erm?glicht es uns au?erdem, dem generierten PDF eine Header oder Fu?zeile zu fügen, indem wir ein PHP -Skript in das HTML einbetten, das es rendert. Da die Verarbeitung beliebiger Code jedoch ein Sicherheitsrisiko darstellen kann, wenn Sie nicht vorsichtig sind, ist der Konfigurationswert, der diese Funktionalit?t steuert, standardm??ig ausgeschaltet. Wir müssen zuerst die Option Dompdf_enable_Php true festlegen. Sobald wir die Inline -PHP -Ausführung aktiviert haben, wird das PDF -Objekt im Skript verfügbar gemacht, mit dem wir die Seite manipulieren k?nnen. Wir k?nnen Text, Zeilen, Bilder, Rechtecke usw. überall auf der Seite hinzufügen.
<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>Das Skript ist direkt in das HTML -Markup eingebettet und ?ffnet zun?chst ein Objekt, damit wir das Rendering beeinflussen k?nnen. Alle Zeichnen werden in dieses Objekt aufgezeichnet und wir k?nnen dieses Objekt zu allen oder ausgew?hlten Seiten hinzufügen (obwohl es Einschr?nkungen gibt). Als n?chstes holen wir die tats?chliche Breite und H?he der Seite, um die Koordinaten der Fu?zeile zu berechnen, die wir hinzufügen m?chten. Au?erdem müssen wir ein Schriftobjekt bereitstellen, w?hrend wir Textinhalte hinzufügen. FONT_Metrics :: get_font () k?nnen wir das von uns ben?tigte Objekt erstellen. Wir nehmen auch die H?he der gegebenen Schriftart an der Schriftgr??e mit Get_Font_Height (), um die Positionierung für den Inhalt des Fu?zeilens zu berechnen. Die Methode get_font_width () gibt die Breite unseres Textes für die gegebene Schrift- und Schriftgr??e zurück, die auch in unseren Berechnungen verwendet wird. Die Linie () -Methode zeichnet eine Linie von Punkt (x1, y1) nach (x2, x2). Beachten Sie, dass der von uns bereitgestellte Farbwert kein tats?chlicher RGB -Wert ist. Die zugrunde liegende PDF -Klasse erfordert Werte zwischen 0 und 1, und so konvertieren wir die RGB -Werte in diese neuen Werte. Um eine bessere Ann?herung zu erhalten, k?nnen Sie es durch 255 teilen. Wir fügen die Seitennummer für jede Seite mit der Methode Page_text () hinzu, die eine X- und Y -Position, den zugegebenen Text, ein Schriftobjekt, eine Schriftgr??e und Farbe akzeptiert. Dompdf ersetzt automatisch die Werte für {page_num} und {page_count} auf jeder Seite und stellt uns $ pdf zur Verfügung. Wenn der PDF -Abschnitt der PDF rendert, sieht der Fu?zeilenabschnitt so aus:
git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateBeachten Sie, dass wir den Code platzieren, nachdem wir $ dompdf-> render () aufgerufen haben, da wir den gerenderten PDF im Wesentlichen ?ndern.
Schlussfolgerung
In diesem Artikel haben wir besprochen, wie HTML mit Dompdf problemlos in PDF konvertiert werden kann. Obwohl Dompdf eine gro?artige Bibliothek ist, ist es keine kugelsichere L?sung für die Erzeugung von PDF -Dokumenten. Es hat einige Einschr?nkungen und Probleme. Dompdf ist nicht wirklich tolerant gegenüber schlecht geformten HTML, und gro?e Tische k?nnen leicht den Speicher mehr haben. Einige grundlegende CSS -Funktionen wie Float werden nicht vollst?ndig unterstützt und es gibt nur eine begrenzte Unterstützung für CSS3. Wenn Sie Funktionen ben?tigen, die nicht von Dompdf unterstützt werden, ist m?glicherweise eine bessere L?sung für Sie. Dennoch ist Dompdf ziemlich einfach und für die meisten PDF -Exportanforderungen geeignet. Es ist wirklich schwierig, alle Funktionen einer Bibliothek in Artikel wie diesem zu erkl?ren. Schauen Sie sich also auch die Dokumentation und den Quellcode an, um über coole Funktionen wie das Hinzufügen von Rückrufen, die Verwendung benutzerdefinierter Schriftarten usw. zu erfahren. Ich freue mich, Ihnen in meinem begrenzten Fachwissen zu helfen. Fühlen Sie sich frei, Ihre Fragen zu hinterlassen und Ihre Erfahrungen im Kommentarbereich zu teilen. Bild über Fotolien Und wenn Sie es genossen haben, diesen Beitrag zu lesen, werden Sie Lernable lieben. Der Ort, um frische F?higkeiten und Techniken von den Meistern zu erlernen. Mitglieder erhalten sofortigen Zugriff auf alle eBooks und interaktiven Online -Kurse von SitePoint, wie Sprung Start Php. Kommentare zu diesem Artikel sind geschlossen. Haben Sie eine Frage zu PHP? Warum nicht in unseren Foren fragen?h?ufig gestellte Fragen (FAQs) zum Konvertieren von HTML in PDF mit Dompdf
Was ist dompdf und warum wird es verwendet? Es wird verwendet, weil es komplexe HTML -Layouts, einschlie?lich CSS -Stile, JavaScript und Bilder, verarbeiten kann. Es ist ein leistungsstarkes Tool für Entwickler, die PDF -Dokumente aus HTML -Inhalten generieren müssen. Es ist einfach zu bedienen, flexibel und kann in eine PHP -Anwendung integriert werden. Sie k?nnen den Komponisten installieren und dann den Befehl "Komponist ben?tigen Dompdf/Dompdf" aus. Dadurch wird die Dompdf -Bibliothek in Ihrem Projekt heruntergeladen und installiert.
Kann ich CSS mit Dompdf? Sie k?nnen Inline -CSS in Ihrem HTML verwenden oder zu einer externen CSS -Datei verlinken. Dompdf wird die Stile anwenden, wenn die PDF generiert wird. Bitte beachten Sie jedoch, dass nicht alle CSS -Eigenschaften unterstützt werden. . Das Attribut "SRC" sollte auf die Bilddatei verweisen. Dompdf enth?lt das Bild in das erzeugte PDF.
Kann ich ein PDF mit mehreren Seiten erstellen? Wenn Ihr HTML -Inhalt lang genug ist, um mehrere Seiten zu überspannen, wird Dompdf automatisch in Seiten aufgeteilt. Sie k?nnen auch Seitenunterbrechungen mit CSS manuell hinzufügen. Beispielsweise k?nnen Sie "$ dompdf-> set_paper ('A4', 'Landscape') 'verwenden, um die Seitengr??e auf A4 und die Orientierung an der Landschaft zu setzen.
Kann ich Dompdf mit Laravel verwenden?
Ja, Dompdf kann mit Laravel verwendet werden. Es gibt ein Laravel-Paket namens "Laravel-Dompdf", das eine einfache M?glichkeit bietet, Dompdf in einer Laravel-Anwendung zu verwenden. Die generierte PDF zu einer Datei mit der Methode "Ausgabe" und der Funktion "file_put_contents". Beispielsweise k?nnen Sie 'file_put_contents (' mypdf.pdf ', $ dompdf-> output ()) verwenden, um die PDF in einer Datei mit dem Namen' mypdf.pdf 'zu speichern.
Kann ich das generierte PDF senden Als Antwort in einer Webanwendung?
Ja, Sie k?nnen das generierte PDF als Antwort in einer Webanwendung senden. Sie k?nnen die Methode "Stream" verwenden, um das PDF direkt an den Browser zu senden. Es ist wichtig, Ihre Dompdf -Installation auf dem neuesten Stand zu halten und die vom DompDF -Team bereitgestellten Sicherheitsrichtlinien zu überprüfen.
Das obige ist der detaillierte Inhalt vonPHP Master | HTML mit Dompdf in PDF konvertieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren
