Hallo zusammen! Dies ist mein erster Post in diesem Forum, ich habe mich angemeldet weil eure Beiträge mir schon bei einigen Problemen weitergeholfen haben.
Zu meinem Problem: ich möchte automatisch durch Angabe eines Dateipfads zu einem beliebigen Dokument die erste Seite dieses Dokumentes im selben Pfad als .png Bild abspeichern.
Gibt es eine Funktion von VB die dieses ermöglicht und die ich auch nach langem Suchen einfach nicht finden konnte?
Mein bisheriger Ansatz ist sehr unsauber, er öffnet lediglich das Dokument, wartet wenige Sekunden bis es auch bestimmt maximiert geöffnet wurde, macht einen Screenshot und speichert diesen ab.
Problem bei dieser Methode:
Und hier ein Bild, wie falsch mein bisheriger Screenshot aussieht:
Schon einmal vielen Dank für Eure hilfe, ich bin mir sicher ihr hab da schon einen Plan
Liebe Grüße Durb
Zu meinem Problem: ich möchte automatisch durch Angabe eines Dateipfads zu einem beliebigen Dokument die erste Seite dieses Dokumentes im selben Pfad als .png Bild abspeichern.
Gibt es eine Funktion von VB die dieses ermöglicht und die ich auch nach langem Suchen einfach nicht finden konnte?
Mein bisheriger Ansatz ist sehr unsauber, er öffnet lediglich das Dokument, wartet wenige Sekunden bis es auch bestimmt maximiert geöffnet wurde, macht einen Screenshot und speichert diesen ab.
Problem bei dieser Methode:
- Bild hat rechts und links überdimensionale leere Spalten
- es ist nicht garantiert, dass die Seite ganz angezeigt wird
- Bearbeitungsbars der Programme, in denen die Dokumente angezeigt werden, werden im Screenshot mit abgebildet.
VB.NET-Quellcode
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim sInfile As String = System.Configuration.ConfigurationSettings.AppSettings("infile") 'InputFile Dateinamen laden
- Dim sOutfile As String = System.Configuration.ConfigurationSettings.AppSettings("outfile") 'OutputFile Dateinamen laden
- Dim picture As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Width)
- Dim graphics As Graphics = graphics.FromImage(picture)
- Dim process As New Process()
- process.StartInfo.FileName = sInfile
- process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
- process.Start()
- process.WaitForInputIdle()
- System.Threading.Thread.Sleep(2000)
- graphics.CopyFromScreen(0, 0, 0, 0, picture.Size)
- process.CloseMainWindow()
- picture.Save(sOutfile, System.Drawing.Imaging.ImageFormat.Png)
- End Sub
Und hier ein Bild, wie falsch mein bisheriger Screenshot aussieht:
Schon einmal vielen Dank für Eure hilfe, ich bin mir sicher ihr hab da schon einen Plan
Liebe Grüße Durb
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „durb“ ()