Probleme mit automatisiertem Drucken

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Probleme mit automatisiertem Drucken

    Hallo Zusammen,

    ich hoffe Ihr könnt mir helfen, nachdem ich nun 3 Arbeitstage Internetsuche hinter mir habe, ohne großen Erfolg.

    Also die Applikation an der ich momentan arbeite, soll eine beliebige Anzahl an Dateien (doc, xls, pdf) über einen PDF Drucker speichern (Jaws PDF Creator).

    Also stell ich diesen Drucker als Standarddrucker ein und nehme noch weitere Einstellungen vor.

    VB.NET-Quellcode

    1. PrintDoc.PrintController = New System.Drawing.Printing.StandardPrintController()
    2. PrintDoc.DocumentName = pFile.Name
    3. PrintDoc.PrinterSettings.PrinterName = ComboBox2.SelectedItem
    4. PrintDoc.PrinterSettings.PrintToFile = TruePrintDoc.PrinterSettings.PrintFileName = "C:\..."

    Angeblich soll wenn der PrintFileName gesetzt ist, der Dialog zur Abfrage des Speicherpfades durch den Befehl Print() nicht erscheinen und somit das Drucken komplett ohne Usereingabe von statten gehen.
    Dies funktioniert allerdings nicht!
    Ich hoffe Ihr könnt mir helfen.
    Vielen Dank schon mal im vorraus.
    LG
    Mirimaus091
    .Net.Printing ist fürs Drucken von daten bestimmt, die in VB verarbeitet werden.
    eine .Doc - Datei wird aber in Word verarbeitet, und allein Word kann die korrekt ausdrucken.
    dasselbe gilt für Excel

    also wirste den Ausdruck glaub nur per Word-VBA bzw. Exel-VBA hinkriegen.
    warum du auch pdf an einen pdf-Drucker schicken willst, damit er daraus pdf-Dateien erstellt, ist mir unklar.

    Aber ich kenn mich mit drucken nicht wirklich gut aus.
    Probier mal dies:

    VB.NET-Quellcode

    1. Dim prc As New Process
    2. prc.StartInfo.FileName = "c:\bla\.bla.doc"
    3. prc.StartInfo.Verb = "print"
    4. prc.Start()
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank für eure Antworten.
    Ich stand wohl wirklich ein wenig aufm Schlauch ;)

    Wenn ich jetzt die Lösung von RodFromGermany verwende öffnet sich Word
    und nichts weiter passiert.
    Vielleicht habt ihr ja noch nen paar Ideen was ich ändern muss :)

    Vielen Dank schon mal im Vorraus.
    Tschuldigung, hab eine wichtige Zeile vergessen.
    Dies ist mein Code, der läuft:

    VB.NET-Quellcode

    1. Private Sub Print(ByVal Doc As String)
    2. Debug.Assert(System.IO.File.Exists(Doc))
    3. Dim p As New Process
    4. p.StartInfo.FileName = Doc
    5. p.StartInfo.Verb = "Print"
    6. p.StartInfo.CreateNoWindow = True
    7. p.Start()
    8. p.WaitForInputIdle(1000)
    9. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das iat ein Problem, das völlig unabhängig ist vom Drucken an sich.
    Hat Word & Co bzw. Dein PDF-Drucker da eine Einstellmöglichkeit?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    PrintToFile funktioniert leider auch nicht.

    Ich habe nun herausgefunden, dass der von mir verwendete Drucker seine Settings in der Registry speichert. Somit kann ich diese auslesen und hoffentlich bald auch ändern ^^ Anschließend hat er dann den richtigen Pfad für den Speicherort :)

    Bernd schrieb:

    Was bewirkt eigentlich diese Zeile ?

    Die Pause war erforderlich, da ich 3 Einzeldokumente nacheinander in eine PDF drucken will.
    Geht aber nicht richtig, so dass ich dies nun mit Button steuere.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!