ich knabbere immer noch am PDF-zu-TXT-Problem.
Ich rufe die via Prototype definierte DLL-Fnc auf: alles klappt wunderbar (kriege den Textanteil einer PDF-Datei ins ClipBoard).
Bei einem indirekten Aufruf via Procedure laufe ich auf einen Invalid Memory Access beim ProcedureReturn
oder "The debugged executable quit unexpectedly."

Kann mir da jemand ´n Tipp geben ?
Code: Alles auswählen
#PDF2Text_Dir="???" <-- Euer Download-SubDir der DLL-Dateien (siehe unten)
EnableExplicit
Prototype.l PDF_SeitenProto(PDF_File$) ;liefert Seiten-Anzahl einer PDF-Datei
Prototype.l PDF2TextProto(PDF_File$, Ziel, Hash, Quick, TXT_File$, Trim, SeitenPre$, PosShow, Seite);,SandUhr,MultiSpace,Sekunden,WortList)
;PDF_File$= vollständiger Dateiname der ZielDatei (incl.Pfad & Extension {PDF})
;Ziel: 1=TextDatei (siehe Option TXT_File$) (=Vorgabe)
; 2=ClipBoard
; 3=ResultString
;Hash: 0=Result ist kein Hashwert (=Vorgabe)
; 1=Result ist md5-HashWert
;Quick:0=liefert sortierte Strings
; 1=liefert Strings ähnlich der PDF-Position (incl. Leerzeichen...) (=Vorgabe)
;TXT_File$: vollständiger Dateiname der ZielDatei (incl.Pfad & Extension {TXT})
;Trim: 0=führende Leerzeichen bleiben erhalten (=Vorgabe)
; 1=führende Leerzeichen werden entfernt
;SeitenPre$: Text vor Seitenangabe (SeitenPre$ SeitenNr / TotalSeiten)
;PosShow: 0=ohne Positionsangabe der Texte
; 1=vor jedem Text: aktuelle Seite, TotalSeiten, ZeilenNr [pixel] und SpaltenNr [pixel] (nur mit Quik=0)
;Seite:0=alle Seiten aus PDF extrahieren
; >0:Nur diese Seite aus PDF extrahieren
Global PDF_Lib = OpenLibrary(#PB_Any, #PDF2Text_Dir+"PDFtext.dll")
Debug "PDF_Lib="+Str(PDF_Lib)
If PDF_Lib
Global ExtraktPDF_Text.PDF2TextProto = GetFunction(PDF_Lib, "GetPDFText")
Global PDF_Seiten.PDF_SeitenProto = GetFunction(PDF_Lib, "GetPDFPageCount")
EndIf
Procedure PDF2Text(PDF_File$, TXT_File$ = "", Seite = 0);Parameter-vereinfachter Aufruf
Protected File, result, Ziel
If TXT_File$ = "" : Ziel = 2 : Else : Ziel = 1 : EndIf ;ClipBoard oder TextDatei
Debug "PDF2Text(" + #DQUOTE$ + PDF_File$ + #DQUOTE$ + ", " + #DQUOTE$ + TXT_File$ + #DQUOTE$ + "): Ziel="+Str(Ziel)
result = ExtraktPDF_Text(PDF_File$, Ziel, 0, 1, TXT_File$ + "", 0, "Seite ", 0, Seite);,0,0,0,0)
Debug "result=" + Str(result)
ProcedureReturn result
EndProcedure
DisableExplicit
PDF$ = #PDF2Text_Dir+"PDFtext.dll.pdf"
TXT$ = #PDF2Text_Dir+"PDFtext.dll.txt"
;Vorprüfung
Seiten = PDF_Seiten(PDF$)
If Seiten=9001
Debug "Datei nicht vorhanden: "+PDF$
End
EndIf
Debug PDF$ + " enthält " + Str(Seiten) + " Seiten"
;direkter Aufruf der Prototype-Funktion
res = ExtraktPDF_Text(PDF$, 2, 0, 1, TXT$, 0, "Seite ", 0, 4)
Debug "Result=" + Str(res)
Debug GetClipboardText()
;indirekter Aufruf der Prototype-Funktion
res = PDF2Text(PDF$, "", 4)
Debug "Result=" + Str(res)
Debug GetClipboardText()
https://www.file-upload.net/download-13 ... t.dll.html
https://www.file-upload.net/download-13 ... l.pdf.html
Danke im Vorraus

sibru