Html2pdf unterstützt keine Worttrennung: break-all css

7

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





    
srini 06.10.2012, 11:50
quelle

10 Antworten

2

html2pdf unterstützt dieses Wort nicht: break-all css

Ref: Ссылка

    
srini 23.10.2012, 12:20
quelle
11

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.

%Vor%

Ausgabe:

%Vor%     
Berry Langerak 08.10.2012 12:24
quelle
6

probiere das aus;

%Vor%

nicht word-break es ist word-wrap ;

    
avalkab 14.10.2012 20:04
quelle
5

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.

    
Ben D 11.10.2012 22:37
quelle
4

Beim Testen funktioniert das Wort break nicht, weil das Wort break nur zwischen den Wörtern in einem bestimmten Satz funktioniert. Sie können also den Satz mit mehreren Wörtern verwenden und dann mit dem Worttrennschalter versuchen

    
Kalai 12.10.2012 06:17
quelle
4

Sie verwenden nur die Funktion substr in Ihrem Code. Ich gebe ein Beispiel dafür. Setzen Sie zuerst Ihre Ausgabe in Variable.

%Vor%

und so weiter.

    
Prem 12.10.2012 07:08
quelle
3

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.

    
PHP Mentor 08.10.2012 12:55
quelle
0

Sie können diese Methode verwenden.

%Vor%     
Amit Kumar 22.10.2012 07:44
quelle
0

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):

  • legt die festen Breiten der Tabelle und jeder Zeile in Pixeln fest
    • für die A4-Briefgröße Ich verwende eine Gesamtbreite von 550 px mit Standardrändern, aber Sie müssen etwas herumspielen, um die Breite zwischen den Spalten zu verteilen
  • in wordwrap verwenden Leerraum oder &#8203; / \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.

    
shadyyx 12.08.2015 07:21
quelle
-1

Ich denke, diese Funktion ist eine hinkende Lösung.

%Vor%     
Thomas Krcal 24.11.2014 21:00
quelle