hai alle ich benutze html2pdf, es unterstützt nicht Wort-Break: Break-all CSS irgendeine Idee?
Beispiel
%Vor%Ausgabe pdf nehmen über 30% Breite wie String Länge Größe
Ausgabe pdf: testtestetteststetsteltetstetststteststastetstesteststetstteststestestestets
Ich möchte Ausgabe:
testtestetteststesteststetststests
Nun, das ist kompliziert. Ihr Teststring ist zu lang, aber er besteht nicht aus mehreren Wörtern. Das bedeutet, dass ein Wortbruch nicht funktioniert, weil es keine Wörter gibt, an denen man weitermachen kann. Offensichtlich ist dies nur ein Beispiel. In diesem Fall könnte es sein, dass html2pdf nur relative Breiten und word-break
nicht unterstützt, also könnten Sie versuchen eine absolute Breite und word-break
zu haben.
Das heißt, hier ist etwas, das ich weiß, das funktioniert: wordwrap in PHP. Anstelle von echo $yourvar;
könnten Sie stattdessen echo wordwrap($yourvar, 75, "\n", true)
verwenden, wodurch immer die Zeichenfolge schneidet, auch wenn es nur eine lange Zeichenfolge ist. Es braucht ein wenig Fingerspitzengefühl, um die Anzahl der Zeichen mit der gewünschten Breite zu vergleichen, aber es funktioniert.
Ausgabe:
%Vor% Wenn Sie möchten, dass lange Zeichenfolgen konsistent in einen Begrenzungscontainer eingebunden werden, sollten Sie dies durch erreichen können. null Leerzeichen Leerzeichen ( ​
oder \xe2\x80\x8b
) zwischen jedem Buchstaben der orignial Zeichenfolge . Dies führt dazu, dass jedes Zeichen wie ein eigenes Wort umbrochen wird, ohne dem Endbenutzer die Leerzeichen anzuzeigen. Dies kann zu Problemen bei der Textsuche oder Indizierung des Endprodukts führen, sollte aber die Aufgabe aus ästhetischer Sicht zuverlässig erfüllen.
Also:
%Vor%Wird
%Vor%(zeigt an: "t s s t s s t s t s t s t s t s t t s t s t s t s t s t s t s t s t s t t s t s t s t s t s t s t s t s t s t s ")
Wenn Sie es also umbrechen, wird es genau an die Grenzen seines Containers gebunden. Hier ist eine Geige als Beispiel .
Schreiben Sie einfach ein PHP-Skript, um die Zeichenfolge zu durchlaufen und fügen Sie das Leerzeichen ein:
%Vor% Dies ist eine besonders schöne Lösung, denn im Gegensatz zu wordwrap()
passt es sich automatisch an Schriften mit nicht fester Breite an (was im Grunde genommen 99% der tatsächlich verwendeten Schriften entspricht).
Auch wenn Sie PDF-Dateien suchen müssen, ist dies kein guter Ansatz, aber es wird so aussehen, wie Sie es wollen.
Sie können "\r\n"
zum Drucken von Zeilenvorschubzeichen verwenden. Stellen Sie sicher, dass Sie es mit einem doppelten Anführungszeichen verwenden. Wenn Ihre Zeichenfolge in der Variablen enthalten ist, müssen Sie die Wortzählfunktion verwenden und diese Zeichenfolge anhängen. Sie können auch PHP_EOL
verwenden, um eine Plattformabhängigkeit zu vermeiden.
Ich möchte ein wenig eigene Erfahrung mit HTML2PDF und Tabellen hinzufügen.
Ich habe diese Lösung verwendet, um das PDF zu generieren, das eine Tabelle enthält, die mit einer Lieferbestätigung (Produktliste) gefüllt ist. Eine solche Liste kann bis zu tausend Produkte (Zeilen) enthalten.
Ich habe ein Problem mit der Formatierung und langen Strings in Zellen festgestellt. Das erste Problem war, dass die Tabelle zu weit wurde, auch wenn ich die Breite der Tabelle auf 100% und die Breite der Header Spalten ( <th>
) einstellte (HTML2PDF unterstützt <colgroup>
nicht und konnte global nicht definiert werden ) - einige Spalten waren außerhalb des sichtbaren Bereichs. Ich habe wordwrap()
mit <br />
als Trennzeichen benutzt, um die langen Strings, die so aussahen, als ob sie funktionierten, zu zerlegen. Leider stellte sich heraus, dass, wenn eine so lange Zeichenfolge in der ersten und letzten Zeile vorhanden ist, die ganze Tabelle vorangestellt und angehängt mit einer leeren Seite ist. Kein echter Kerl, aber auch nicht gut. Die endgültige Lösung war (gilt für Tabellen, deren Breite den sichtbaren Bereich erreichen könnte):
wordwrap
verwenden Leerraum oder ​
/ \xe2\x80\x8b
als Trennzeichen Bei kleinen Tabellen, die Sie für 100% der Breite des sichtbaren Bereichs ausbreiten möchten, ist es in Ordnung, die Breite in %
zu verwenden.
Tags und Links php textwrapping word-wrap html2pdf word-break