silent PDF Printing mit Blattauswahl

  • VB.NET
  • .NET 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ahmsag87.

    silent PDF Printing mit Blattauswahl

    Vorwort:
    Falls dieses Thema an einem falschen Ort eingebracht wurde, entschuldige ich mich im Voraus!




    Hallo, ich habe ein mini-Programm geschrieben, das meine Kollegen benutzen wollen um einzelne PDF Dateien zusammen zu fassen und die Größe zu verändern.
    Alle PDFs beinhalten jeweils nur ein einzelnes Blatt. Dies ist so beabsichtigt.
    Mit diesem programm werden die einzelnen Blätter dann zusammengefasst, skaliert und an den Drucker im (richtigen) Blattformat gesendet und ausgedruckt.

    Beispiel:
    A4 => A3
    A0 => A1
    ...

    Alle Blätter mit der gleichen Größe werden automatisch zu einem PDF-Dokument zusammengefasst und zu einem Drucker gesendet.
    Das alles geschieht über iTextSharp (Plugin für vb.net) und SumatraPDFPortable, welcher in einem Unterordner liegt.

    Hier die Frage: Wie kann man dem Drucker gleichzeitig über den leisen Print-Befehl die Blattgröße angeben?
    Der Benutzer konfiguriert die Daten ja schon vor, deswegen wären hier Meldungen fehl am Platz.
    Leider druckt der Netzwerkdrucker (Beispiel vorhandener Blätter: A3/A4) immer die Blätter in A4 (Beispiel) aus, da dies der Standard des Druckers ist.

    ps: falls dies auf einem anderen Weg geht, würde ich mich von SumatraPDF portable auch lösen.



    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gunngir“ ()

    schade, dass keiner geantwortet hat bis jetzt...
    dann muss ich wohl vorerst beim Zusammenfassen der PDFs aufhören und dem User die verschiedenen PDF-Größen selbst zum ausdrucken an die Hand geben,
    dass er selbst einen Drucker inklusive Blattgröße definieren kann.

    Gunngir schrieb:

    Hier die Frage: Wie kann man dem Drucker gleichzeitig über den leisen Print-Befehl die Blattgröße angeben?


    Über den silent print befehl wird das nicht gehen.
    Du könntest den Print Befehl ausführen lassen und als Parammeter mitgeben dass er den Druckdialog aufrufen soll.
    Dort kann dann der Benutzer das Papierformat umstellen.
    Mit dem silent print befehl wird glaube ich immer der standard drucker mit dem standard papierformat benutzt.
    Mit der Übergabe des Druckdialogfeldes kann der Benutzer dann aber beides individuell einstellen.
    Das Problem ist ja auch dass jeder Drucker die Formate in einem anderen Namen haben kann usw. Daher wird keine Papierformatgrößenübergabe möglich sein.
    Beispiel:
    HP Laserjet 1XX Papierformat: A-4
    Brother 2XX Papierformat: A4
    Xerox 3XX Papierformat: German-A-4
    Canon 4XX Papierformat: Kasette1-A4 oder Kasette2-A4
    Dell 5XX Papierformat: A0 (Sonst nichts)
    Und da siehst du schon mal nur ein Problem warum man nicht so einfach ein "Papierformat" mitgeben kann, weil es theoretisch überall anderes heissen kann.

    Aber nun zur Lösung des Problems:
    Zum drucken würde ich Ghostscript benutzen.
    Diesem kann man neben dem Drucker auch das papierformat mitgeben und er druckt es dann auf diesem aus.
    Natürlich muss auch hier manuell geprüft werden ob der Drucker das Format beherscht.
    Das kann der Benutzer dann beim Start festlegen z.B. so:

    A4 Seiten drucken auf
    Drucker: Druckername Format:(Dieses dropdownfeld liest alle Formate ein und mann muss dann A4 hier aussuchen oder automaitsch aktivieren)
    A3 Seiten drucken auf
    Drucker: Druckername Format:(Dieses dropdownfeld liest alle Formate ein und mann muss dann A3 hier aussuchen oder automaitsch aktivieren)
    Alle anderen Seiten druckena uf
    Drucker:PDFCREAATOR Format:Eingangsformat je nach Datei mitgeben (Dazu einfach PDF Format abfragen)

    Gruß

    *Vollzitat reduziert*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()