Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pdf auslesen

Pdf auslesen
23.10.2023 18:53:36
Oisse
Hallo zusammen,
ich möchte gerne eine pdf-Datei auslesen. Das funktioniert mit pdftotxt bis auf ein paar Dinge ganz gut.
Hier bitte ich um eure Hilfe weil es momentan an zwei Stellen hakt, bzw. weiß ich nicht wie ich das lösen kann:
Bei der Zeile


If oFSO.FileExists(Replace(oDatei.Path, ".pdf", ".txt")) Then Open Replace(oDatei.Path, ".pdf", ".txt") For Input As #1

sollte die gewandelte pdf datei geöffnet werden.
Wenn ich das Programm automatisch durchlaufen lasse, kommt bei der nächsten Zeile:


Do Until EOF(1)

die Fehlermeldung: Dateiname oder -nummer falsch.
Wenn ich aber wieder auf die obige Zeile gehe und mit F8 starte funktioniert es einwandfrei.
Wo bitte liegt der Fehler, bzw. wie behebe ich ihn.
Mein zweites Anliegen ist:
Ich suche nach einem bestimmten Begriff z. B. "Stunden".
Allerdings stehen die Werte erst zwei oder drei Zeilen weiter drin.
Wie springe ich dann in der txt-Datei mittels vba zwei Zeilen weiter?
Vielen Dank für Eure Hilfe, die ich stets sehr zu schätzen weiß.
Oisse

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pdf auslesen
23.10.2023 19:59:38
Oberschlumpf
Hi,

bei deinem gezeigten "nur-bisschen-Code-Geschnipsel" würd ich es so versuchen:



Dim lstrTxt As String, lstrInhalt As String
If oFSO.FileExists(Replace(oDatei.Path, ".pdf", ".txt")) Then
lstrTxt = Replace(oDatei.Path, ".pdf", ".txt")
Open lstrTxt For Input As #1
Do Until Eof(1)
Line Input As #1, lstrInhalt
If Instr(lstrInhalt, "Stunden") > 0 Then
'hier dein Code, den du machen willst, wenn Stunden in Txt-Datei gefunden
End If
Loop
Close

Ist von mir ungetestet.
Hilfts?
Nein? Dann zeig bitte von Excel- und generierte Txt-Datei Bsp-Dateien per Upload.

Ciao
Thorsten
Anzeige
AW: Pdf auslesen
23.10.2023 23:07:45
onur
Warum nicht so ?


Userbild
AW: Pdf auslesen
24.10.2023 09:56:04
Oisse
Guten Morgen Onur,
und danke für den Hinweis. Ich habe es ausprobiert. Leider kommen keine Daten mit. Die Struktur der Tabelle bzw. des pdf´s wird erkannt. Aber die eingeschriebenen Daten erscheinen nicht. Das ist leider auch der Fall, wenn ich die pdfs mit Word öffnen möchte. Auch hier werden die Daten nicht angezeigt.
Mit pdftotxt erscheinen die Daten in der Textdatei.
Gruß Oisse
AW: Pdf auslesen
24.10.2023 14:50:40
Oisse
Mittlerweile selbst gelöst.
Ich lasse den Code einfach zweimal durchlaufen:


For Each oDatei In oOrdner.Files
'Überprüfen, ob die Datei eine PDF-Datei ist
If Right(oDatei.Name, 4) = ".pdf" Then
'Konvertieren das PDF-Dokument in eine Textdatei
Shell "C:\Users\oisse\Downloads\xpdf-tools-win-4.04\xpdf-tools-win-4.04\bin64\pdftotext.exe " & Chr(34) & oDatei.Path & Chr(34)
'Öffnen der Textdatei und durchsuchen nach dem gewünschten Text
If oFSO.FileExists(Replace(oDatei.Path, ".pdf", ".txt")) Then
lstrTxt = Replace(oDatei.Path, ".pdf", ".txt")
Open lstrTxt For Input As #1
End If
End If
Next oDatei


For Each oDatei In oOrdner.Files
'Überprüfen, ob die Datei eine PDF-Datei ist
If Right(oDatei.Name, 4) = ".pdf" Then
'Konvertieren das PDF-Dokument in eine Textdatei
Shell "C:\Users\oisse\Downloads\xpdf-tools-win-4.04\xpdf-tools-win-4.04\bin64\pdftotext.exe " & Chr(34) & oDatei.Path & Chr(34)
'Debug.Print oDatei
'Öffnen der Textdatei und durchsuchen nach dem gewünschten Text
If oFSO.FileExists(Replace(oDatei.Path, ".pdf", ".txt")) Then
lstrTxt = Replace(oDatei.Path, ".pdf", ".txt")
Open lstrTxt For Input As #1
End If


Do Until EOF(1)
Line Input #1, sText
'restlicher Code

Vielen Dank für´s Beschäftigen mit meinem Problem
Gruß Oisse
Anzeige
AW: Pdf auslesen
23.10.2023 22:32:46
Oisse
Ok. Hier also das erweiterte Code-Schnipsel.
 

For Each oDatei In oOrdner.Files
'Überprüfen, ob die Datei eine PDF-Datei ist
If Right(oDatei.Name, 4) = ".pdf" Then
'Konvertieren das PDF-Dokument in eine Textdatei
Shell "C:\Users\oisse\Downloads\xpdf-tools-win-4.04\xpdf-tools-win-4.04\bin64\pdftotext.exe " & Chr(34) & oDatei.Path & Chr(34)
'Öffnen der Textdatei und durchsuchen nach dem gewünschten Text
If oFSO.FileExists(Replace(oDatei.Path, ".pdf", ".txt")) Then
Open Replace(oDatei.Path, ".pdf", ".txt") For Input As #1
End If

Do Until EOF(1)
Line Input #1, sText

Wie bereits erwähnt tritt der Fehler bei Do Until EOF(1) auf.
Wenn ich den Curser wieder auf die Zeile:
If oFSO.FileExists(Replace(oDatei.Path, ".pdf", ".txt")) Then

setze und manuell die Zeilen weiterschalte funktioniert der weitere Code einwandfrei.
Die Zeilenschaltung habe ich übrigens mittlerweile selbst hinbekommen.
Vielen Dank für deine Mühe.
Anzeige
AW: Pdf auslesen
24.10.2023 06:34:11
Oberschlumpf
Ok, und ich bin raus - denn du hast mind. bei "Nein? Dann..." nicht weitergelesen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige