-- Given a discussion paper in PDF format, insert the cover pages and generate a gzipped version. -- ALWAYS RUN THIS ON A COPY OF THE ORIGINAL FILE! -- -- Assumptions: -- ¥ both the paper itself and the cover are in PDF form -- ¥ the paper is named "xxxx.pdf" (THIS WILL BE OVERWRITTEN) -- ¥ the cover is named "xxxx-cover.pdf" -- -- For example, if the paper has the file name dp2000-10.pdf, the cover is assumed to be -- in dp2000-10-cover.pdf. Note that the final file will OVERWRITE the original, so don't use -- this script on the only copy! -- -- Generally you will just drop the source file on the script and go have coffee. global quitAcrobat global reportString on open fileList my setup() repeat with theFile in fileList my process(theFile) end repeat my cleanup() end open on run set theFile to choose file with prompt "Choose source file:" my process(theFile) end run on setup() set reportString to "" tell application "System Events" to set quitAcrobat to not (exists process "Acrobat 5.0") end setup on cleanup() activate display dialog reportString buttons {"OK"} default button "OK" if quitAcrobat then tell application "Waiareka HD:Applications:Adobe Acrobat 5.0:Acrobat 5.0" to quit end cleanup on process(paperFile) set baseName to text 1 thru -5 of (paperFile as string) set coverFile to baseName & "-cover.pdf" set compressedFile to (paperFile as string) & ".gz" tell application "Waiareka HD:Applications:Adobe Acrobat 5.0:Acrobat 5.0" open alias coverFile with invisible set coverDoc to a reference to document 1 open paperFile with invisible set paperDoc to a reference to document 2 insert pages paperDoc after 0 from coverDoc starting with 1 number of pages 2 close paperDoc saving yes with linearize close coverDoc saving no end tell do shell script "gzip -cf '" & (POSIX path of paperFile) & "' > '" & Â (POSIX path of compressedFile) & "'" set theSize to (do shell script "ls -l '" & (POSIX path of compressedFile) & Â "' | cut -d' ' -f8") as number tell application "Finder" to set theName to (displayed name of item compressedFile) if (reportString "") then set reportString to reportString & return set reportString to reportString & theName & " is " if (theSize > 1048576) then set reportString to reportString & ((round (theSize / 1048576) rounding to nearest) / 10) & "MB." else set reportString to reportString & (round (theSize / 1024) rounding up) & "KB." end if end process