Text aus PDF extrahieren

StDt

Aktives Mitglied
Thread Starter
Dabei seit
24.04.2005
Beiträge
1.223
Reaktionspunkte
39
Der Adobe Reader bietet die Möglichkeit, dass eine PDF-Datei als Text gespeichert wird. (Datei --> Als Text speichern)

Das würde ich gerne Automatisieren.

Es müsste ja eigentlich auch mit der Vorschau funktionieren. So ungefähr:
  • PDF-Datei mit Vorschau öffnen
  • Alles markieren und kopieren
  • in eine Text-Datei einfügen
  • Datei speichern.

Wie macht man das mit dem Automator bzw. mit AppleScript?
 
Leider sind weder der Adobe-Reader noch Preview skriptfähig (danke Apple! ;) )
Du kannst aber mit Hilfe von System Events die Tastatureingabe in Preview "nachäffen":
PHP:
tell application "Preview"
	activate
	tell application "System Events"
		keystroke "2" using command down -- Texttool auswählen
		keystroke "a" using command down -- gesammten Text selektieren
		keystroke "c" using command down -- in die Ablage kopieren
	end tell
end tell
set kopierterText to the clipboard
Wie Du jetzt den in kopierterText gespeicherten Text in z.B. TextEdit importierst, dazu findest Du eine Menge Beispiele in diesem Forum.

Good scripting
Farid
 
Ja! Das letzte Stück könnte in etwa so aussehen:

Code:
tell application "TextEdit"
	if (exists document 1) and (text of document 1 is "") then
		set text of document 1 to kopierterText
	else
		make new document at beginning with properties {text:kopierterText}
	end if
	activate
end tell
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: incal
Nun bitte noch das "funktionierende" ganze...
Incal
 
Ja, es funktioniert nicht, weil die Abfolge Befehl-A > Befehl-C zu schnell war, deshalb sollte man eine Sekunde Verzögerung einbauen. Hier also das Ganze nochmal:

Code:
set restoreclipboard to the clipboard

tell application "Preview"
	activate
	tell application "System Events"
		
		keystroke "2" using command down -- Texttool auswählen 
		keystroke "a" using command down -- gesamten Text selektieren 
		delay 1
		keystroke "c" using command down -- in die Ablage kopieren 
	end tell
end tell

set kopierterText to the clipboard

tell application "TextEdit"
	if (exists document 1) and (text of document 1 is "") then
		set text of document 1 to kopierterText
	else
		make new document at beginning with properties {text:kopierterText}
	end if
	activate
end tell

set the clipboard to restoreclipboard

Ach ja, die erste und die letzte Zeile versuchen jetzt die Zwischenablage wiederherzustellen.
 
Zuletzt bearbeitet:
Zurück
Oben Unten