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> </span></span></span><span><span> </span></span><span><span> </span></span><span><span> <h1 id="Hello-Dompdf">Hello Dompdf</h1> </span></span><span><span> </span></span><span><span> </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></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> </span></span></span><span><span> </span></span><span><span> </span></span><span><span> <h1 id="Hello-Dompdf">Hello Dompdf</h1> </span></span><span><span> </span></span><span><span> </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></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!

Zu den wirksamen Methoden zur Verhinderung fester Sitzungsangriffe gehören: 1. Regenerieren Sie die Sitzungs -ID, nachdem sich der Benutzer angemeldet hat; 2. Verwenden Sie einen sicheren Algorithmus für Sitzungs -ID -Generierung; 3.. Implementieren Sie den Timeout -Mechanismus für Sitzungen; 4. Verschlüsseln Sie Sitzungsdaten mithilfe von HTTPS. Diese Maßnahmen können sicherstellen, dass die Anwendung bei festgelegten Sitzungen unzerstörbar ist.

Die implementierende Sitzungsfreie Authentifizierung kann durch die Verwendung von JSONWEBTOKENS (JWT), einem tokenbasierten Authentifizierungssystem, erreicht werden, bei dem alle erforderlichen Informationen im Token ohne serverseitige Sitzungsspeicher gespeichert werden. 1) Verwenden Sie JWT, um Token zu generieren und zu überprüfen, 2) Stellen Sie sicher, dass HTTPS verwendet wird, um zu verhindern, dass Token abgefangen werden.

Zu den Sicherheitsrisiken von PHP -Sitzungen gehören hauptsächlich Sitzungshijacking, Sitzungsfixierung, Sitzungsvorhersage und Sitzungsvergiftung. 1. Session -Entführungen können durch Verwendung von HTTPS und Schutz von Cookies verhindert werden. 2. Die Sitzungsfixierung kann vermieden werden, indem die Sitzungs -ID regeneriert wird, bevor sich der Benutzer einmeldet. 4. Die Sitzungsvergiftung kann durch Überprüfung und Filterungsdaten verhindert werden.

Um eine PHP -Sitzung zu zerstören, müssen Sie zuerst die Sitzung starten, dann die Daten löschen und die Sitzungsdatei zerstören. 1. Verwenden Sie Session_Start (), um die Sitzung zu starten. 2. Verwenden Sie Session_unset (), um die Sitzungsdaten zu löschen. 3. Verwenden Sie schließlich Session_destroy (), um die Sitzungsdatei zu zerstören, um die Datensicherheit und die Ressourcenfreigabe zu gewährleisten.

Wie ändere ich den Standard -Sitzungsweg von PHP? Es kann durch die folgenden Schritte erreicht werden: Verwenden Sie Session_save_path ('/var/www/sessions'); Session_start (); in PHP -Skripten, um den Sitzungsspfad zu setzen. Setzen Sie in der Datei php.ini, um den Sitzungsspfad global zu ändern. Verwenden Sie Memcached oder Redis, um Sitzungsdaten wie ini_set ('Session.Save_handler', 'memcached') zu speichern; ini_set (

TomodifyDatainaphpSession, startTheSessionwithSession_Start (), dann $ _SessionToSet, modify, orremovevariables.1) startTheSession.2) setOrmodifySessionvariabling $ _Session.3) removeVariables mit ()

Arrays können in PHP -Sitzungen gespeichert werden. 1. Starten Sie die Sitzung und verwenden Sie Session_Start (). 2. Erstellen Sie ein Array und speichern Sie es in $ _Session. 3. Abrufen Sie das Array durch $ _Session ab. 4. Optimieren Sie Sitzungsdaten, um die Leistung zu verbessern.

Die PHP -Sitzungsmüllsammlung wird durch einen Wahrscheinlichkeitsmechanismus ausgelöst, um abgelaufene Sitzungsdaten zu beseitigen. 1) Legen Sie die Auslöserwahrscheinlichkeit und die Sitzungslebenszyklus in der Konfigurationsdatei ein. 2) Sie können Cron-Aufgaben verwenden, um Hochlastanwendungen zu optimieren. 3) Sie müssen die Häufigkeit und Leistung von Müllsammlungen ausgleichen, um Datenverlust zu vermeiden.


Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

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

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Dreamweaver Mac
Visuelle Webentwicklungstools

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
