Extra leere Seite beim Konvertieren von HTML nach PDF mit abcPDF

8

Ich habe einen HTML-Bericht, wobei jede Druckseite von einem <div class="page"> enthalten ist. Die Seitenklasse ist definiert als

%Vor%

Nachdem ich einige Änderungen an meinem Berichtsinhalt vorgenommen habe, wenn ich abcPDF anrufe, um den Bericht in PDF zu konvertieren, bekomme ich plötzlich eine leere Seite nach jeder echten Berichtsseite eingefügt. Ich möchte die Änderungen, die ich gerade vorgenommen habe, nicht zurücknehmen, um dieses Problem zu beheben. Ich hoffe also, dass jemand weiß, warum die zusätzlichen Seiten eingefügt werden.

    
ProfK 04.03.2010, 13:23
quelle

7 Antworten

7

Ich habe das gleiche genaue Problem erfahren. Die leere Seite ist wegen der page-break-after: always; im CSS. Nicht nur ABCpdf, sondern auch das gedruckte wird eine zusätzliche Seite ausspucken. Also habe ich den folgenden Code verwendet, um die letzte Seite zu entfernen: MyDoc.Delete (MyDoc.Page);

Dies führt jedoch zu einer anderen Art von Problem. Auf dem Entwicklungsserver, der IE 8 hat, bekomme ich eine extra leere Seite und bei der Produktion, wo ich IE6 habe, bekomme ich keine extra leere Seite. Also habe ich dem Support-Team von websupergoo eine E-Mail geschickt, um mir eine Möglichkeit zu zeigen, nach einer leeren Seite zu suchen. Die Idee besteht darin, eine PDF zu durchlaufen und alle leeren Seiten zu identifizieren und sie mit der obigen Logik zu löschen.

Und ich spreche Jakkwyldes Meinung nach. WebSupergoo Leute sind sehr hilfreich und reagieren schnell. Ich hatte ein anderes Problem mit ABCpdf, um unter 64 Bit zu arbeiten und hatte fast einen Tag damit verbracht, es herauszufinden. Sie stellten mir mehrere Szenarien zur Verfügung, die ich ausprobieren konnte. Ihre Unterstützung war direkt auf das Geld und ich habe meine App in wenigen Minuten zum Laufen gebracht.

    
Kush 15.03.2010, 23:24
quelle
2

Es lohnt sich, die Gültigkeit Ihres HTML-Markups zu überprüfen, wenn Sie die Methode AddImageUrl verwenden. Instanzen, in denen die gerenderte PDF-Datei nicht wie erwartet aussieht, können aus fehlerhaften Markup-, busted-Tags usw. resultieren.

Was es wert ist, WebSuperGoo hat eine ausgezeichnete Unterstützung und reagiert hervorragend, wenn Sie auf Anomalien stoßen. Häufig können sie eine Arbeit raten oder Alternativen zu Ihrer Implementierung bereitstellen, wenn Sie ihnen Ihren Quellcode senden.

    
Jakkwylde 11.03.2010 03:18
quelle
2
%Vor%     
Novice in.NET 07.09.2012 18:46
quelle
1

Ich fand abcPDF seltsam und unberechenbar. Davon abgesehen, kann die Kombination aus Seitengröße und Seitenumbrüche die Ursache sein. Verringern Sie die Seitenhöhe und / oder entfernen Sie den Seitenumbruch.

    
quelle
0

Kush ist richtig, dass "Ich habe das gleiche genaue Problem erlebt. Die leere Seite ist wegen der Seitenumbruch-nach: immer; in der CSS. Nicht nur ABCpdf, sondern auch die gedruckte wird eine zusätzliche Seite ausspucken. "

Wenn ein div "page-break-after: always" hat, wird der IE automatisch immer eine neue Seite starten, und wenn nichts hinzugefügt wird, wird nur leer gedruckt. Firefox nicht.

abcpdf verwendet die IE8s-Rendering-Engine und erstellt als solche eine leere Seite. Für die Zwecke des OP sollte nur eine explizite Höhe das Problem lösen, und die Suchmaschine fügt die Seitenumbrüche für Sie ein.

Ich versuche, ein ähnliches Problem zu lösen, bei dem ich die Höhe nicht explizit festlegen kann, da der Inhalt manchmal zwei Seiten braucht. (Jede Seite entspricht einer Person, und jede Person sollte beim Drucken auf einer neuen Seite beginnen). Ich habe auch abcpdf gemailt, um zu sehen, ob sie einen Hack-Fix haben, um die leere Seite zu finden, aber war neugierig, ob jemand das zugrunde liegende Problem beheben kann und css hack IE8, damit die letzte Seite nicht leer gedruckt wird. Ich schätze, das ist nicht möglich, aber ich wollte sicherstellen, dass ich nicht etwas Offensichtliches verpasse.

    
ECELonghorn 30.04.2010 19:38
quelle
0

Die AddImageURL() -Methode von ABCPDF ist eine lose Bind-Methode, die html innerhalb des erforderlichen Bereichs, der eine neue leere Seite verursacht, nicht festlegt.

Versuchen Sie, AddImageHTML() Methode zu verwenden, um Ihren gewünschten HTML in PDF zu konvertieren.

%Vor%

Es wird immer genaue Ergebnisse liefern.

    
Nabeel 16.07.2012 11:09
quelle
0

Um Seitenumbrüche auf der letzten Seite zu vermeiden, habe ich so etwas gemacht und es hat funktioniert.

Ich habe sichergestellt, dass die letzte Seite nicht den Seitenumbruch hat: immer kann dies mit jedem Templating- oder Frontend-Framework wie angularJS gemacht werden, aber für dieses Beispiel verwende ich Blade-Templating (aber kein PHP werde tun ...)

%Vor%

und dann habe ich das in meinem Stylesheet

%Vor%     
NiRR 06.01.2015 15:25
quelle

Tags und Links