Hallo 202,
zudem will ich nicht das sich ein druck fenster öffnet da ich später automatisch etwas ausdrucken will.
Willkommen im Club. Bei mir geht's - dienstlich - um den Anwendungsfall eines Batch-Drucks: eine Liste von 100 PDFs, 25 davon ankreuzen, PRINT Klicken und derweil Essen gehen. Nope. Jedes PDF will seinen eigenen Druckdialog bekommen (ich könnte die PDFs natürlich am Server zu einem zusammenmixen, aber dann kriegt mein Serverbetreiber das Herzflattern - das braucht riieeesige Speichermengen, neiiin, geht gaaaar nicht!)
Leider ist automatisches Drucken etwas, das die Browser aktiv verhindern. Grund: Stell Dir vor, du besuchst die Seite example.org und bekommst zur Begrüßung erstmal 20 Seiten Werbung auf den Drucker. Schön mit knallbunten Hintergrundfarben, seitenfüllend. Gelle, das will keiner.
Die Idee, es wie mit den Benachrichtigungen zu halten und den User zu fragen, ob das OK ist (so wie bei Benachrichtigungen etc), und dabei "für diese Seite nicht mehr fragen" anzubieten, scheint man für irrelevant zu halten. Oder es gibt immer noch zu viele Missbrauchsmöglichkeiten. Anwendungsfälle wie deinen und meinen interessieren offenbar keinen Browserhersteller, bzw. wenn Du hier im Forum fragst (hab ich vor sehr vielen Jahren getan), dann wollen dich alle überzeugen, dass ein Browser dies keinesfalls tun dürfe und die Anforderung falsch sei. Ich hab's aufgegeben, sie davon zu überzeugen, dass die Anforderung "Drucken ohne Rückfrage, mit Defaultoptionen" sehr sinnvoll sein kann. Dass die Browseranbieter dafür ein Security-Thema lösen müssen, ist klar. Das Thema einfach abzulehnen, weil die vorhandene Security nicht dazu passt, ist hingegen falsch. Du kannst ja versuchen, bei der WhatWG einen Feature Request gegen den HTML Standard einzutüten. Good Lack!
Aber genau das übersieht man gerne: Nicht immer druckt man mit Defaultoptionen, es muss die Chance geben, auszuwählen, wohin man drucken möchte. Ein fehlender Druckdialog kann störender sein als einer, den man bestätigen muss.
Wie Du den zu druckenden Bereich auswählst, hat Gunnar Dir ja beschrieben. Für ein PDF ist es das nicht, aber du kannst das PDF klein in einen iframe laden. Wenn der iframe vom gleichen Origin (Protokoll, Hostname und Port) wie deine HTML Seite kommt, dann kannst Du über die contentWindow-Eigenschaft des iframe-Objekts an dessen Inhalt heran und dort print auslösen. Wichtig nur: das geht nur als Folge einer Benutzerinteraktion. Beim Seitenaufruf automagisch loszudrucken ist nicht möglich. Aber immerhin kann man drölf oder mehr iframes mit je einem PDF drin ins DOM schieben und dann über einen PRINT Button in einer Schleife jedem iframe das print-Kommando schicken. Leider kommen dann auch drölf oder mehr Druckdialoge hoch, das geht im Browser nicht anders. Aber damit konnte ich meinen Batch-Druck halbwegs erträglich bereitstellen.
Rolf
sumpsi - posui - obstruxi