Kann FullCalendar die gedruckte PDF-Datei?
Ich habe versucht, drucken FullCalendar.js gerendert Kalender in PDF, jedoch keine der verfügbaren Generatoren zu funktionieren scheint:
- Aspose PDF nicht erlauben, JavaScript -, und gerade nur nicht unterstützt absolut positionierte Elemente
- PrinceXML, bekannte Probleme, wo es wirft Exceptions TypeError bei der Verarbeitung von JavaScript, die sind nicht reproduzierbar in IE, Chrom oder Firefox.
Mein minimal-repro Beispiel für PrinceXML scheitern ist die Beispiele auf Adam Shaw FullCalendar Website. Auch wenn ich speichern Sie den erzeugten HTML-Code (via $("body").html()
) und übergeben Sie den generierten HTML-Code an PrinceXML, damit umgehen PrinceXML fehlerhafter Umgang mit JavaScript, PrinceXML nicht legen, die absolut positioniert Ereignisse korrekt.
Was sind meine Optionen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre beste Wette ist wahrscheinlich wkhtmltopdf, die verwendet die WebKit als rendering-engine. Das bedeutet, Sie können frei verwenden Sie CSS/Javascript. Möglicherweise müssen Sie schauen in der
javascript-delay
option.Habe ich verwendet wkhtmltopdf erfolgreich in Ruby on Rails, aber es scheint, dass Sie verwenden .NET. Eine schnelle Suche zeigt einige mögliche wkhtmltopdf-wrapper-Bibliotheken für .NET:
Möchten Sie vielleicht werfen Sie einen Blick auf diese Antwort für einige alternative Lösungen.
Meine Mitarbeiter fanden eine einfachere Lösung.
Als es stellt sich heraus, liefen wir in Probleme mit Pechkin und wkhtmltopdf in test-Umgebungen. Plus, ist es erforderlich uns die Einrichtung eines zusätzlichen App-Pool einfach zu handhaben, drucken im PDF-Format.
Verwenden html2canvas.js Bibliothek
Konvertieren Sie die Leinwand auf base64. Ich empfehle Fred Palmer base64.js
Senden base64-kodierten Wert zu server
Erstellen, web-service, dass Anrufe auf Ihre PDF-Konverter-Bibliothek. Wir verwenden Aspose, und alles was wir tun ist, fügen Sie das Bild, um eine Aspose PDF-Objekt.
GEWINN!
Diese Lösung ist unglaublich glatt, seit es nutzt die eigene rendering-engine um das PDF-Dokument generiert. Dies bedeutet WYSIWYG (What you See Is What you Get), also, wenn der Kalender gut aussieht, wenn der Nutzer es benutzt wird, es sollte drucken Sie die gleiche genaue Art und Weise! GELD.