-- 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