Frage

Ich habe eine Webseite mit eingebettetem PDF. Mein Code sieht so aus:

<embed
    type="application/pdf"
    src="path_to_pdf_document.pdf"
    id="pdfDocument"
    width="100%"
    height="100%">
</embed>

Ich habe diesen JavaScript -Code für den Druck meines PDF:

function printDocument(documentId) {

    //Wait until PDF is ready to print    
    if (typeof document.getElementById(documentId).print == 'undefined') {

        setTimeout(function(){printDocument(documentId);}, 1000);

    } else {

        var x = document.getElementById(documentId);
        x.print();
    }
}

Wenn dieser Code ausgeführt wird, öffnet das Acrobat-Plug-In das bekannte Druckdialog. Etwas wie das:

PrintDialog

Zwei Fragen:

  • Wie kann man den Weg zur Erkennung verbessern, dass PDF geladen und für den Druck bereit ist?
  • Wie vermeiden Sie es, den Dialog mit dem Druck anzuzeigen?

Ein bisschen mehr Informationen über mein System:

OS: Windows XP

Browser: Internet Explorer 7

PDF -Plugin: Acrobat Reader 9

War es hilfreich?

Lösung

Sie werden nicht in der Lage sein, still mit einfachem alten JavaScript zu drucken. Wie möchten Sie, dass Ihr Drucker 100000000 Seiten von All Black ausdruiert? Keine gute Sache. Wenn Sie still drucken und nur für Internet Explorer funktionieren lassen möchten, gibt es ActiveX -Steuerelemente, die dies tun können. Dies erfordert höhere Sicherheitseinstellungen für Ihre Seite und Ihre Benutzer, um Ihrer Website wirklich zu vertrauen.

Andere Tipps

Dies ist in einer vertrauenswürdigen, intraneten Umgebung möglich.

<object id="pdfDoc" style="position:absolute;z-index:-1;" name="pdfDoc" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="900px" height="100%">
        <param name="SRC" value="yourdoc.pdf" />
    </object>

<input type="button" ... onclick="pdfDoc.printAll();" />

Dadurch wird das Dialogfeld Drucken umgehen und direkt an den Standarddrucker gesendet.

Ich frage mich, ob Sie tatsächlich vor dem Drucken warten müssen - wird der Druckauftrag nicht für Sie erledigt? Und ich hoffe wirklich, dass Ihnen kein moderner Browser (oder auf einer Website) ohne diesen Bestätigungsdialog drucken kann (einige alte Browser haben dies vor langer Zeit dazu getan).

Sie können dies in Firefox tun, indem Sie sich ändern about:config. Hinzufügen print.always_print_silent und setzen es auf true.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top