Basierend auf den Kommentaren unten funktioniert es in modernen Browsern nicht mehr.
Diese Frage zeigt einen Ansatz, der für Sie hilfreich sein könnte: Stummes Drucken einer eingebetteten PDF-Datei
Es verwendet das <embed>
Tag, um das PDF in das Dokument einzubetten:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%" />
Anschließend rufen Sie die .print()
Methode für das Element in Javascript auf, wenn die PDF-Datei geladen wird:
function printDocument(documentId) {
var doc = document.getElementById(documentId);
//Wait until PDF is ready to print
if (typeof doc.print === 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
doc.print();
}
}
Sie können die Einbettung in einem versteckten Iframe platzieren und von dort aus drucken, um eine nahtlose Erfahrung zu erzielen.
Hier ist eine Funktion zum Drucken einer PDF-Datei aus einem Iframe.
Sie müssen nur die URL der PDF an die Funktion übergeben. Sobald das PDF geladen ist, wird ein Iframe erstellt und der Druck ausgelöst.
Beachten Sie, dass die Funktion den Iframe nicht zerstört. Stattdessen wird es bei jedem Aufruf der Funktion wiederverwendet. Es ist schwierig, den Iframe zu zerstören, da er benötigt wird, bis der Druckvorgang abgeschlossen ist und die Druckmethode keine Rückrufunterstützung bietet (soweit ich weiß).
quelle
setTimeout
funktioniert die Druckfunktion manchmal nicht. Keine Ahnung warum und hoffe jemand wird es herausfinden.onafterprint
. Ich bin ein wenig besorgt darüber, dass die Wiederverwendung eines Iframes zu Rennbedingungen führen kann, bei denen jemand schnell auf zwei Schaltflächen klickt und das zweite PDF zweimal druckt, da die Iframe-URL bereits vor dem Erscheinen des ersten Druckdialogs ausgetauscht wurde.Laden Sie die Print.js von http://printjs.crabbly.com/ herunter.
quelle
https://github.com/mozilla/pdf.js/
für eine Live-Demo http://mozilla.github.io/pdf.js/
Es ist wahrscheinlich das, was Sie wollen, aber ich kann den Sinn davon nicht erkennen, da moderne Browser solche Funktionen enthalten. Außerdem läuft es auf Geräten mit geringem Stromverbrauch wie Mobilgeräten, die übrigens über eigene optimierte Plugins und Apps verfügen, furchtbar langsam .
quelle
Ich habe diese Funktion verwendet, um den PDF-Stream vom Server herunterzuladen.
quelle
Browserübergreifende Lösung zum Drucken von PDF-Dateien aus base64-Zeichenfolgen:
.
BONUS - Blob-Datei in neuem Tab für IE11 öffnen
Wenn Sie in der Lage sind, die base64-Zeichenfolge auf dem Server vorzuverarbeiten, können Sie sie unter einer URL verfügbar machen und den Link in
printJS
:) verwendenquelle