Dynamisches HTML in PDF

9

Ich muss in der Lage sein, dynamisches HTML (HTML, das beim Laden von Seiten mit Javascript gerendert wird) in ein PDF zu konvertieren. Ich weiß, dass es viele HTML-zu-PDF-Konverter gibt, aber keine von denen, die ich bisher gefunden habe, mit dynamischem HTML zurechtkommt.

Das angegebene Tool sollte die folgende Seite erfolgreich konvertieren können - Ссылка

Prost Anthony

UPDATE:

Ich brauche die JavaScript-Funktionalität hier nicht ... dh ich muss nicht in der Lage sein, den Bildschirm zu interagieren ... Ich möchte nur, dass das finale Rendering des Bildschirms im PDF festgehalten wird - wie ein Foto nachdem die Seite geladen wurde. Und in dem Beispiel, das ich zur Verfügung gestellt habe, stellt das Javascript nur divs auf dem Bildschirm dar, so dass es nichts damit zu tun hat, solange es die "Seite" zuerst rendern lässt.

    
vdh_ant 25.02.2010, 01:07
quelle

4 Antworten

1

Es kann unmöglich gemacht werden. Die für Skripts in PDF verfügbaren Schnittstellen sind im Vergleich zum vollständigen DOM- und BOM-Zugriff, den Sie in einem Webbrowser genießen, extrem eingeschränkt. Eine solche Interaktion, die Sie in PDF erreichen können, lässt sich nicht ohne weiteres aus der Funktionsweise in einem Browser übersetzen und würde höchstwahrscheinlich Hand-Authoring erfordern.

Ihre Beispielseite hat viele Effekte, die PDF als im Wesentlichen statisches Dokumentlayoutformat einfach nicht reproduzieren kann.

Bearbeiten:

  

Ich möchte nur, dass das finale Rendering des Bildschirms in der PDF-Datei erfasst wird.

Ah, OK, das ist dann ein viel einfacheres und häufigeres Problem.

In diesem Fall müssen Sie einen echten Webbrowser (wie Firefox) oder ein Toolkit verwenden und automatisieren, das die gesamte Logik eines Webbrowsers (wie WebKit) bereitstellt, und dann entweder:

  • Export in PDF, entweder mit integrierten Tools wie 'In Datei drucken' in Firefox (mit Hintergrundbildern / Farben) oder einem der PDF-Export-Add-Ons, oder

  • Machen Sie ein Bild snaptsnot des Browsers (und das Bild in eine PDF-Datei wenn nötig)

Siehe diese Fragen für einige Diskussion von Browser-Snapshot.

    
bobince 25.02.2010, 02:00
quelle
0

Sie könnten eine JavaScript-URI verwenden, um das aktuelle DOM zu alarmieren. zB:

%Vor%

Kopieren Sie den HTML-Code und speichern Sie ihn in einer Datei.
Führen Sie es dann durch den HTML2PDF-Konverter aus.

    
Sean Hogan 25.02.2010 01:42
quelle
0

Die Tatsache, dass JavaScript überhaupt verwendet wird, bedeutet, dass viele Konverter nicht funktionieren. Das JavaScript ist zwar einfach, aber Sie brauchen immer noch einen Interpreter.

Ich habe es nicht selbst verwendet, aber Sie könnten wkhtmltopdf ausprobieren. Es verwendet die Webkit-Rendering-Engine, und ich glaube, dass es vollständige JavaScript-Unterstützung enthält. Sie müssten in der Lage sein, die Software zu installieren und die ausführbare Datei auszuführen, aber ansonsten sollte es ziemlich einfach sein.

    
BrianS 25.02.2010 04:47
quelle
-1

Versuchen Sie xhtml2pdf. Hier ist die Projektseite auf python.org .

    
ghoppe 25.02.2010 01:10
quelle