Re: AppleScript need: Can a file open at all

Tim Murray <[email protected]> Wed, 20 May 2020 17:34:37 -0400
Newsgroups alt.comp.lang.applescript, apple.lists.applescript-users
Organization http://www.AltBinaries.com - Uncensored, Un-logged, Secure.
Message-ID <[email protected]>
On May 16, 2020, Jolly Roger wrote
(in article <[email protected]>):

> On 2020-05-16, Tim Murray<[email protected]>  wrote:
> > I recently made a gross error of formatting a disk that had good data on it.
> > (My MBPro was stolen and when I got another, I ended up formatting my Time
> > Machine disk. Aaarrrgh! Some computer tasks should not be performed with
> > bourbon.) Anyway, I ran some recovery programs and got everything back, but
> > there is one issue.
> >
> > My PDFs are all named File0001.pdf, File0002.pdf, and so on, but there are
> > several hundred. Acrobat and Catalina’s Quick Look and Preview can deal
> > with many of them.
> >
> > What I am looking for is a script to run through a folder and determine if a
> > PDF can be opened or even if Quick Look works . . . I don’t need to
> > actually do anything with it, just see if it can be opened. If it cannot,
> > that’s okay: Trash it so that what remains are PDFs can be opened.
> >
> > In a way I don’t really need this per se, because I successfully retrieved
> > most, if not all, the original files that made the PDFs, such as InDesign,
> > Pages, Illustrator, and so on.
> >
> > So can someone here do that? Thanks.
>
> I've done this PDF document validation in Ruby using the pdf-reader Gem
> before. Here's a simplified example script:
>
> ---
> #!/usr/bin/env ruby
>
> require 'pdf-reader' # gem install 'pdf-reader'
>
> class Reader
> def start
> filepath = ARGV[0]
> unless filepath.nil?
> if File.exist?(filepath)
> begin
> reader = PDF::Reader.new(filepath)
> puts "Document is valid: #{File.basename(filepath)}"
> rescue StandardError =>  exception
> puts "Couldn't open #{File.basename(filepath)}: #{exception.message}"
> end
> else
> STDERR.puts "ERROR: Specified file does not exist: #{filepath}"
> end
> else
> STDERR.puts "ERROR: You must provide the path to a PDF document as the first
> command-line argument."
> end
> end
> end
>
> reader = Reader.new()
> reader.start()
> ---
>
> Usage examples:
>
> ---
> #./pdf_validator.rb ~/Documents/Hardware/Car\ Stereo/Old/KAC818.pdf
> PDF seems valid: KAC818.pdf
>
> # ./pdf_validator.rb some_bad.pdf
> PDF does not contain EOF marker: some_bad.pdf
> ---
>
> You could certainly wrap this in an AppleScript "do shell script"
> command to automate it if you wanted to. But I'd probably just modify
> the script to do exactly what I want and run it on the command line and
> be done with it.

If I knew something about Ruby (other than just what is “is” I would work 
with this, but I don’t. But thanks much.