Here is a script which will recursively OCR documents which have no text, after OCR it will move the original document to an “Original PDF” folder. The modification time of the new OCR’d file is set to the same as the old file.
Thanks,
-jr
-- Recursively OCR all documents in a single folder, placing the original documents in a "Original Documents" group along
-- with the new PDF+Text files.
-- It also maintains the modification date of the original document
-- Created by James A. Russo, Dec 8, 2008
-- Copyright (c) 2008. All rights reserved.
using terms from application "DEVONthink Pro"
on process_group(this_group)
tell application "DEVONthink Pro"
set group_children to children of this_group
repeat with this_item in group_children
if type of this_item is group then
my process_group(this_item)
else
my process_item(this_item)
end if
end repeat
end tell
end process_group
on process_item(this_record)
tell application "DEVONthink Pro"
display dialog ((location of this_record as string))
if (plain text of this_record is "") and (type of this_record is not group) then
try
set converted_record to convert image record this_record
set destination_folder_location to ((location of this_record & "Original PDFs"))
set destination_folder to get record at destination_folder_location
display dialog (destination_folder_location)
if (destination_folder is missing value) then
set destination_folder to create location destination_folder_location
end if
move record this_record to destination_folder
set old_date to modification date of this_record
set the modification date of converted_record to old_date
on error error_message number error_number
display dialog (error_message)
end try
end if
end tell
end process_item
tell application "DEVONthink Pro"
activate
set this_selection to the selection
if (count of this_selection) is not 1 then
error "Please select a single folder"
end if
set selected_group to item 1 of this_selection
if (type of selected_group is not group) then
error "All selected items must be groups"
end if
repeat with this_record in this_selection
my process_group(this_record)
end repeat
end tell
end using terms from
EDIT: This one still needs some debugging…