Das hat mich von gestern gepisst, und ich bin nur aus Ideen.Kann nicht vollständigen HTML in die PDF schreiben
Ich versuche, eine PDF-Datei mit einer Unterklasse pdfkit.PDFKit
(nennen wir es MyPDFKit
) zu schreiben: es funktioniert gut (ich subclassed es nur die Möglichkeit, hinzufügen von xvfb-run
in den args verwenden). Ich gebe an, dass kein Problem der Klasse ist.
Ich habe versucht, einige HTML in PDF zu konvertieren. Die Vorlage sieht wie folgt aus:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- Simplified for reading. -->
<style type="text/css">..</style>
</head>
<body>
<!-- Simplified for reading. -->
{% for obj in objs %}
<div>
<div>
<p>{{ obj.name }}</p>
</div>
<p>{{ obj.age }}</p>
</div>
{% endfor %}
</body>
</html>
Mit diesen Vorlage und objs
in der Nähe von 400 Fällen, wobei der Ausgang des HTML ist in der Nähe von 5k Linien.
Das Problem kommt, wenn Sie versuchen, das in die Datei zu übertragen. Es könnte in einem dieser beiden Orte sein:
MyPDFKit.to_pdf(..)
(genannt vonMyPDFKit.from_string(..)
) 'sstdout
eine Grenze Größe hat, und ein Teil der Zeichenfolge abschneidet (Quellcode der Funktion ist here).f.write(..)
ist derjenige, der die Zeichenfolge im Pass abschneidet.
Kann ein Problem der Vorlage oder die Objekte Daten nicht, weil ich PDFs korrekt erstellen kann, wenn nur eine bestimmte Auswahl an dann bekommen (mehr als 350 Elemente im selben Rendering führen zu dem Problem aufgrund der HTML-Zeilenanzahl). Zum Beispiel funktioniert objs[:315]
gut, aber objs[:350]
nicht.
Ich habe versucht, die Puffergröße auf -1, die unbegrenzt ist, aber auch nicht funktionieren. Hat jemand dieses Problem schon einmal gehabt?