Die Community zu .NET und Classic VB.
Menü

FAQ 0062: Wie kann ich eine PDF-Datei einlesen oder anzeigen?

 von 

Frage 

Wie kann ich eine PDF-Datei einlesen oder anzeigen?

Antwort  

Im Gegensatz zum Erzeugen bzw. Bearbeiten gestaltet sich das Anzeigen und/oder der Ausdruck von vorhandenen PDF-Dateien relativ einfach.

Hierzu empfiehlt sich die Verwendung des kostenlosen 'Acrobat Reader', der bei seiner Installation ein passendes OCX mitbringt, welches zusammen mit dem Microsoft Internet Explorer arbeitet.
Um den 'Acrobat Reader' in seine Anwendung einzubinden, markiert man unter "Projekt" -> "Komponenten" die "Microsoft Internet Controls" und kann nun ein Webbrowser-Steuerelement auf seinem Formular platzieren. Dieses kann man mit folgendem Code zur Anzeige des PDFs bewegen:

Dim sPath As String

sPath = App.path
If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"

Call WebBrowser1.Navigate2("file://" & sPath & "test.pdf")

Listing 1: PDF-Dateien anzeigen

Die direkte Einbindung des 'Adobe Control for ActiveX' in VB ist zwar möglich, sollte jedoch unterlassen werden, da das Steuerelement seitens Adobe für die Arbeit im Microsoft Internet Explorer konzipiert wurde und nur in diesem stabil läuft. Bei der direkten Verwendung kommt es häufig zu Abstürzen der IDE und teils seltsamen Effekten im fertigen Programm.

Wer den Text aus einem PDFs extrahieren möchte, kommt hingegen nicht an der direkten Einbindung vorbei. Hierbei gilt dann die Faustregel, daß man alle Eigenschaften des Steuerelementes per Code setzt.

Dazu gibt es hier ein einfaches Beispiel.
Alternativ kann man auch den Tipp PDF-Dokument auslesen [Tipp 0527] verwenden.

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.