PDF Viewer in VB 2010

  • VB.NET

Es gibt 39 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    PDF Viewer in VB 2010

    Abend zusammen,

    ich bin noch ziemlich unerfahren mit VB 2010 und bräuchte etwas Hilfe bei meinem ersten Projekt für die Firma.


    Ich würde gerne ein Fenster so programmieren das ich links eine Liste mit PDF-Dokumenten habe und rechts daneben
    ein Fenster wo die PDFs angezeigt werden. Also wie ein Viewer für die PDFs

    Leider habe ich bis dato kein Beispielcode dazu gefunden :( Wäre schön wenn ihr mir helfen könntet.

    Gruß Tobias
    Ich habe mal einen Artikel im codeproject gelesen, aber ich konnte ihn so jetzt nicht wiederfinden, aber einige andere :
    codeproject.com/KB/applications/PDFViewerControl.aspx
    codeproject.com/KB/graphics/giospdfnetlibrary.aspx
    Edit: hab den besagten Artikel gefunden ;) codeproject.com/KB/files/xpdf_csharp.aspx
    klar (vorher noch konvertieren) wenn du willst mach ich das eben.
    Pdfs und sonstige Dateien in eine Liste einfügen:

    VB.NET-Quellcode

    1. or Each file In My.Computer.FileSystem.GetFiles("Pfad des Ordners.")
    2. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    3. Next

    PDF anzeigen kannst du mit dem PDF Controll von Adobe. Wie genau das geht kann ich aber nicht sagen.
    Es geht auch genau so einfach und schöner, wie m9898 schon geschrieben hat kann man wenn man den Adobe Acrobat installiert diesen ganz einfach in die Toolbox integrieren.
    Und mit dem Befehl werden die PDF datein dann geladen:

    VB.NET-Quellcode

    1. AxAcroPDF1.LoadFile(C:\PDF - Datei)


    Habs grad getestet und es funktioniert.

    Adam schrieb:

    ja, aber für sich die Mühe machen, wenn Adobe eh schon Installiert ist ?

    Gute frage. Allerdings gibt es im Adobe Reader nicht die Funktion einer Liste von PDF Dateien. Ich glaube, das der TO damit sicher keinen Adobe Reader 2 machen will, sondern irgendein Programm, das in seiner Firma verwendet werden soll. Und dafür könnte ich mir dann auch die Liste aller PDF Dateien als ziemlich praktisch vorstellen. Deswegen hier jetzt mal das Beispiel, wie das gewünschte insgesamt funktioniert:
    Benötigt werden:
    1 Listbox
    1 PDF Controll
    1 Windows Form ;)

    VB.NET-Quellcode

    1. Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Try
    3. ' Hier werden die PDF Dateien in die Listbox eingefuegt.
    4. For Each file In "Ordner in dem die PDF Dateien sind."
    5. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    6. Next
    7. Catch
    8. 'Hier kannst du reinschreiben, was passieren soll, wenn ein Fehler aufgetreten ist
    9. End Try
    10. End Sub
    11. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
    12. ListBox1.SelectedIndexChanged
    13. 'Wenn ein Item in der Listbox ausgewaelt wurde, dann soll das PDF Dokument geoeffnet werden
    14. Try
    15. AxAcroPDF1.LoadFile(Listbox1.selecteditem)
    16. catch
    17. 'Hier kannst du reinschreiben, was passieren soll, wenn die PDF Datei nicht mehr existiert, oder ein anderer Fehler aufgetreten ist
    18. end Try
    19. End Sub

    Ich habe den Code nicht getestet.



    So gehst du einen Ordner nach Dateien durch ? Try ist in Ordnung, aber bitte in der For-Schleife.

    VB.NET-Quellcode

    1. Imports System.IO
    2. For Each file As String In Directory.GetFiles("path", "*.pdf")
    3. Try
    4. Listbox.Items.Add(file)
    5. Except : End Try
    6. Next
    Also, zuerst musst du Das AxAcroPDF Controll natürlich in die Windows Form einfügen.
    Dazu reicht ein ziemlich übersichtlicher Satz:
    Toolbox(rechtscklick) - Choose Items(Dauert einen moment) - Dann dort in den Auswahlmenüs das AXAcroPDF Controll suchen. Dann nurnoch in die Form einfügen und fertig.
    Ich hatte im anderen Code noch einen kleinen Fehler verzapft, der das Zweite Problem verursacht.
    Hier nochmal ein getesteter Code:

    VB.NET-Quellcode

    1. Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Try
    3. ' Hier werden die PDF Dateien in die Listbox eingefuegt.
    4. For Each file In My.Computer.FileSystem.GetFiles("Ordner in dem die PDF Dateien sind.")
    5. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    6. Next
    7. Catch
    8. 'Hier kannst du reinschreiben, was passieren soll, wenn ein Fehler aufgetreten ist
    9. End Try
    10. End Sub
    11. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
    12. ListBox1.SelectedIndexChanged
    13. 'Wenn ein Item in der Listbox ausgewaelt wurde, dann soll das PDF Dokument geoeffnet werden
    14. Try
    15. AxAcroPDF1.LoadFile(Listbox1.selecteditem)
    16. catch
    17. 'Hier kannst du reinschreiben, was passieren soll, wenn die PDF Datei nicht mehr existiert, oder ein anderer Fehler aufgetreten ist
    18. end Try
    19. End Sub
    xDD du gehst einen String durch (via For Each) und du fügst jedes Zeichen einzeln als Item der Listbox zu. Du musst so wie ich mit GetFiles aus IO.Directory arbeiten. Das er die Dateien ' ', ':' oder 'C' nicht findet ist ja somit klar ;)
    Ah super.

    Danke für die Hilfe . Mußte erstmal das Modul zur Toolbox hinzufügen.
    Jetzt ist der Code fehlerfrei :D .
    Jetzt kann ich die PDFs auswählen aber leider zeigt er mir die noch nicht an. Das Fenster bleibt weiß.
    Muß ich noch etwas Konfigurieren ?
    Oh klar doch.
    Habe ich wohl vergessen anzufügen

    VB.NET-Quellcode

    1. Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Try
    3. For Each file In My.Computer.FileSystem.GetFiles("C:\Fanuc Daten\Fanuc Robotics\Dokumente")
    4. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    5. Next
    6. Catch
    7.  
    8. End Try
    9. End SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    10. Try
    11. AxAcroPDF1.LoadFile(ListBox1.SelectedItem)
    12. Catch
    13. 'Hier kannst du reinschreiben, was passieren soll, wenn die PDF Datei nicht mehr existiert, oder ein anderer Fehler aufgetreten ist
    14. End Try
    15. End SubPrivate
    16. Sub AxAcroPDF1_OnError(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxAcroPDF1.OnError
    17. End Sub
    18. End Class

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