Web archive to PDF
Summary: Converts the selected Web archives to PDFs.
Requires: EagleFiler
Install Location: ~/Library/Scripts/Applications/EagleFiler/
Last Modified: 2019-10-02
Description
Select one or more records and run this script. EagleFiler will move the selected Web archives to the trash and replace them with PDF files. The PDFs will have the same metadata as the original Web archives. (Note text will be preserved, but not note images and formatting.)
Installation Instructions · Download in Compiled Format · Download in Text Format
Script
on
run
tell
application
"EagleFiler"
set
_selection
to
selected records
of
browser window
1
repeat
with
_record
in
_selection
if
_record's
filename
ends with
".webarchive"
then
set
_pdfRecord
to
my
convertWebArchiveToPDF(
_record)
set
_trash
to
trash
of
_record's
library document
set
_record's
container
to
_trash
end
if
end
repeat
end
tell
end
run
on
convertWebArchiveToPDF(
_webArchiveRecord)
tell
application
"EagleFiler"
set
_webArchiveFile
to
_webArchiveRecord's
file
set
_webArchivePath
to
_webArchiveFile's
POSIX path
set
_pdfPath
to
my
tempPDFPathForRecord(
_webArchiveRecord)
my
runWeb2PDF(
_webArchivePath,
_pdfPath)
set
_files
to
{
_pdfPath
as
POSIX file
}
set
_newRecords
to
import
files
_files
with
deleting afterwards
set
_pdfRecord
to
item
1
of
_newRecords
my
copyMetadata(
_webArchiveRecord,
_pdfRecord)
return
_pdfRecord
end
tell
end
convertWebArchiveToPDF
on
runWeb2PDF(
_webArchivePath,
_pdfPath)
set
_web2pdf
to
my
findWeb2PDF()
set
_script
to
_web2pdf's
quoted form & " print "
set
_script
to
_script &
_webArchivePath's
quoted form & " "
set
_script
to
_script &
_pdfPath's
quoted form & " id"
do shell script
_script
end
runWeb2PDF
on
copyMetadata(
_source,
_dest)
tell
application
"EagleFiler"
set
source URL
of
_dest
to
_source's
source URL
set
container
of
_dest
to
_source's
container
set
note text
of
_dest
to
_source's
note text
set
_tags
to
_source's
assigned tags
set
assigned tags
of
_dest
to
_tags
set
title
of
_dest
to
_source's
title
set
from name
of
_dest
to
_source's
from name
set
label index
of
_dest
to
_source's
label index
set
creation date
of
_dest
to
_source's
creation date
set
modification date
of
_dest
to
_source's
modification date
end
tell
end
copyMetadata
on
tempPDFPathForRecord(
_record)
set
_pdfName
to
my
pdfNameForRecord(
_record)
set
_tempFolder
to
do shell script
"mktemp -d -t 'EFWebArchiveToPDF'"
return
_tempFolder & "/" &
_pdfName
end
tempPDFPathForRecord
on
pdfNameForRecord(
_record)
tell
application
"EagleFiler"
set
_name
to
_record's
filename
set
_extensionLength
to
length
of
".webarchive"
set
_base
to
characters
1
thru
-
_extensionLength
of
_name
return
_base & "pdf"
end
tell
end
pdfNameForRecord
on
findWeb2PDF()
set
_bundle
to
(
path to
application
"EagleFiler")'s
POSIX path
set
_framework
to
_bundle & "Contents/Frameworks/WashFramework.framework"
return
_framework & "/Versions/Current/efweb2pdf"
end
findWeb2PDF