![]() |
PDFtoText auf Mac ausführen
Ich versuche seit Tagen, die 64Bit Mac-Version von pdftotext auf einem Mac als command line laufen zu lassen.
Der Code dazu sollte ja eigentlich so sein:
Code:
Aber egal welche Variationen ich probiere, es klappt nicht.
{$IFDEF MACOS}
_system(PAnsiChar('open '+'"'+AnsiString(FilePath)+'"')); {$ENDIF MACOS} Hier ein paar meiner Versuche:
Code:
function TForm1.GetPDFtoText(Datei: string): boolean;
var success: boolean; begin success := false; {$IFDEF MACOS} if FileExists('/Applications/[Appname]/pdftotext') then begin {... bis hierher komme ich. Ich habe festgestellt, das den exakten Pfad den IncludeTrailingPathDelimiter(Extractfiledir(Paramstr(0))) + 'pdftotext' zurück gibt auf einem Mac offenbar nicht verarbeitet wird.} try _system(PAnsiChar('open "' + AnsiString('/Applications/[Appname]/pdftotext ' + Datei + '"'))); _system(PAnsiChar('open ' + AnsiString('/Applications/[Appname]/pdftotext ' + Datei))); _system(PAnsiChar(AnsiString('open "/Applications/[Appname]/pdftotext ' + Datei+'"'))); _system(PAnsiChar(AnsiString('open /Applications/[Appname]/pdftotext ' + Datei))); _system(PAnsiChar('open -a"' + AnsiString('/Applications/[Appname]/pdftotext ' + Datei + '"'))); _system(PAnsiChar('open -a' + AnsiString('/Applications/[Appname]/pdftotext ' + Datei))); _system(PAnsiChar('$ open "' + AnsiString('/Applications/[Appname]/pdftotext ' + Datei + '"'))); _system(PAnsiChar('$ open ' + AnsiString('/Applications/[Appname]/pdftotext ' + Datei))); ... usw, usw. Habe es auch ohne AnsiString() versucht. Die "-a" und "$" open Parameter habe ich in beim googeln gefunden. success := true; except end; end {$ENDIF MACOS} else showmessage('PdfToText im Programmverzeichnis nicht gefunden!'); Result := success end; Hat jemand eine zündende Idee oder es selber schon mal gemacht? |
AW: PDFtoText auf Mac ausführen
Wenn AnsiString(), dann um alles, also PAnsiChar(AnsiString(...)), sonst macht das alles eh keinen Sinn.
Gibt es denn kein _system mit PChar/PWideChar? Sicher, dass OPEN überhaupt der richtige Befehlt ist? ![]() Sieht für mich fast so aus, als wenn Open ohne -a alles öffnet, also dein "Programm" womöglich nicht ausführt, sondern versuht es als Pfad zu öffnen. Bzw., kann man bei -a den kompletten Programm-Pfad angeben, oder nur so eine "Kurz"-Kennung? Aber per se scheint es ohne -a oder -b nicht zu gehn, jedenfalls nicht beim OPEN. ![]() PS: Warum erst weg mit dem Trenner und dann wieder rein? IncludeTrailingPathDelimiter(ExtractFileDir(Paramstr(0))) = ExtractFilePath(Paramstr(0)) |
AW: PDFtoText auf Mac ausführen
Arigato Himitsu!
da es mir aber auch mit Deinen Hinweisen nicht gelungen ist, habe ich mich für den Einsatz einer Komponente entschieden. Vielleicht hast du Recht damit, dass der open Befehl nur öffnen und nicht ausführen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz