Startseite › Foren › Deutsches LiveCode-Forum › shell() geht nicht wie erwartet
Schlagwörter: Shell pdftotext
- Dieses Thema hat 6 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 11 Monaten von Klaus Major.
-
AutorBeiträge
-
-
Januar 12, 2020 um 19:47 Uhr #18170
Guten Tag,
ich möchte per LiveCode auf einem Mac den Text aus einem .pdf als .txt extrahieren.
Dazu habe ich die xpdf-tools-mac-4.02 installiert und kann nun im Terminal mit z.B.
„pdftotext /Users/hillen/Desktop/inter.pdf“
ein inter.txt auf dem Desktop entstehen lassen. Wunderbar!Danach hab ich das in LiveCode versucht und geschrieben:
put "/users/hillen/Desktop/inter.pdf" into fn put "pdftotext " & fn into Kommando if there is not a file fn then answer "File nicht vorhanden!" exit to top end if get shell(quote & Kommando & quote) answer it & return & return & the result
Die Konvertierung geht nicht und die Antwort lautet:
/bin/sh: line 1: pdftotext /users ……pdf: No such file or directory
und das Result ist 127.
Ich weiß nun nicht weiter. Kann jemand hier helfen?
Vielen Dank,
Richard. -
Januar 12, 2020 um 20:02 Uhr #18172
zur Ergänzung:
Im Terminal liefert der Aufruf von pdftotext ohne Argument einen Überblick der Kommandooptionen, in livecode liefert get shell(„pdftotext“) als Answer „command not found“.
Richard.
-
Januar 12, 2020 um 21:03 Uhr #18173
Hallo Ricschart,
willkommen im Forum!
Ich bin kein SHELL Experte, aber versuche es mal ohne QUOTE:
... get shell(Kommando) ...
Gruß
Klaus
-
Januar 12, 2020 um 21:32 Uhr #18178
Hallo Klaus,
Danke für den Vorschlag.
Das ergibt dann „Command not found“.
Noch eine Beobachtung dazu:
Mit shell() per Livecode funktionieren Kommandos wie ls und liefern das erwartete Ergebnis wie im Terminal.
Der einfach Aufruf get shell(„pdftotext“) sollte die Man-Seite liefern; geht aber nur im Terminal und liefert in Livecode „command not found“
Grüße von Richard.
-
Januar 13, 2020 um 00:14 Uhr #18179
Hi Richard,
man muss, soweit ich weiß, der SHELL den Pfad zur neuen EXECUTABLE irgendwie noch mitteilen, wenn Sie verstehen, was ich meine. 🙂
Aber wie das zu bewerkstelligen ist, kann ich leider nicht sagen.
Gruß
Klaus
-
Januar 13, 2020 um 21:42 Uhr #18187
Hallo Klaus,
Deine Erinnerung war richtig. Ich habe mein anfängliches Script modifiziert und es läuft! Danke!put "/users/hillen/Desktop/inter.pdf" into fn put "/usr/local/bin/pdftotext " & fn into Kommando if there is not a file fn then answer "File nicht vorhanden!" exit to top end if get shell(quote & Kommando & quote) answer it & return & return & the result
-
Januar 14, 2020 um 13:16 Uhr #18192
Ja, der absolute Pfad sollte natürlich auch funktionieren.
Aber ich meinte das, was Hermann (-hh) vor einem Moment auf der Mailingliste gepostet hatte:##You could add on startup /usr/local/bin ##to the LC environment variable $PATH: on startUp local ulb="/usr/local/bin" set itemdel to ":" if ulb is not among the items of $PATH then put ":"&ulb after $PATH end startUp
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.