PDF Datei ohne Dialog Drucken

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    PDF Datei ohne Dialog Drucken

    Hallo zusammen,

    ich habe aktuell ein Problem. Lasse über Listview PDF Dokument ausfüllen.
    So die möchte ich natüprlich in einer Schleife drucken - erstellung der PDF funktioniert.

    Aber wie zum teufel, kann ich das ohne Dialog drucken`?

    LG
    Ich kann dir nicht ganz folgen. Erstellt du die PDFs indem du PrintDialog/PrintPreviewDialog nutzt und dann mit dem Microsoft PDF Printer die Dateien erstellst? Oder druckst du die PDFs aus?

    Im 1.Fall einfach eine Bibliothek nutzen um die PDFs zu erstellen anstatt sie zu "drucken".
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    @livius91 Ganz ohne geht das mit PDF nicht unmittelbar, es wird stets der Adobe Reader geöffnet und dann gedruckt:

    VB.NET-Quellcode

    1. Dim pr = New Process
    2. pr.StartInfo.FileName = "C:\Temp\test.pdf"
    3. pr.StartInfo.Verb = "Print"
    4. pr.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!
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Ja, so geht das aber. Aber ich hätte mir eher gedacht, dass ich den Drucker genau für diesen PDF Datei evt. Zuordne bzw. zuweise.
    Also Standarddrucker hat irgendwie nicht geklappt. PDF Datei merkt sich zuletzt gesetzte Drucker.

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

    Ich seh das Problem nicht.

    VB.NET-Quellcode

    1. Private Sub CreatePdfFile()
    2. PrintDocument1.PrinterSettings.PrintToFile = True
    3. PrintDocument1.PrinterSettings.PrinterName = PrinterSettings.InstalledPrinters.Cast(Of String).FirstOrDefault(Function(x) x = "Microsoft Print to PDF")
    4. Dim PdfFilePath = IO.Path.Combine(Application.StartupPath, "Test.pdf") 'oder wohin das Teil auch unter welchem Namen auch immer gespeichert werden soll …
    5. PrintDocument1.PrinterSettings.PrintFileName = PdfFilePath
    6. PrintDocument1.Print()
    7. 'und wenn die Datei auch gleich geöffnet werden soll:
    8. For i = 1 To 5
    9. If IO.File.Exists(PdfFilePath) Then Diagnostics.Process.Start(PdfFilePath) : Exit For
    10. Threading.Thread.Sleep(500)
    11. Next
    12. End Sub


    Und wenn man einen echten Standarddrucker eingestellt hat oder ihn in Zeile#3 einstellt, dann braucht man nur noch Zeile#6 und es wird ohne Umschweife ausdgedruckt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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