Optimize PDF Script
If you like to optimize a PDF with DynaPDF in FileMaker, you can use a script like the one below.
It loops over a table with container fields and imports them all in one PDF In memory.
Than it optimizes the PDF and writes it back to a container field.
For your convenience I included the commands to use files, too:
#Initialize DynaPDF if needed
If [$$DynaPDFInited ≠ 1]
Perform Script [“InitDynaPDF”]
End If
#Clear current PDF document
Set Variable [$pdf; Value:MBS("DynaPDF.New")]
#For writing to file instead of container, pass path here:
// Set Variable [$r; Value:MBS("DynaPDF.OpenOutputFile"; $pdf; "/Users/cs/Desktop/test.pdf")]
#Load PDF from container
Go to Record/Request/Page [First]
Set Variable [$destPage; Value:1]
Loop
#Read from file
// Set Variable [$r; Value:MBS("DynaPDF.OpenPDFFromFile"; $pdf; "/Users/cs/Desktop/input.pdf")]
#or container
Set Variable [$r; Value:MBS("DynaPDF.OpenPDFFromContainer"; $pdf; Merge PDFs::InputPDF)]
#Import all pages
Set Variable [$r; Value:MBS("DynaPDF.ImportPDFFile"; $pdf; $destpage)]
If [GetAsNumber($r) >0]
Set Variable [$destPage; Value:$r+1]
End If
Go to Record/Request/Page [Next; Exit after last]
End Loop
#Repair & Optimize PDF
Set Variable [$r; Value:MBS("DynaPDF.Optimize"; $pdf)]
#Save to container
Set Field [Merge PDFs::FinalPDF; MBS("DynaPDF.Save"; $pdf; "Merged.pdf")]
Set Variable [$r; Value:MBS("DynaPDF.Release"; $pdf)]