Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

PDFKit.Combine

Creates a new PDF file with all the given PDF files/references.

Component Version macOS Windows Linux Server iOS SDK
PDFKit 2.3 ✅ Yes ❌ No ❌ No ✅ Yes, on macOS ✅ Yes
MBS( "PDFKit.Combine"; Name; PDFs... )   More

Parameters

Parameter Description Example
Name A text with the file name to include with the PDF. "test.pdf"
PDFs... Several PDF references.
A container value with the PDF content from a media field.
Or a text with an URL.
Or a PDF reference from PDFKit.Open.
The function will fail if one of those is an image file.

Result

Returns the PDF container value.

Description

Creates a new PDF file with all the given PDF files/references.
You can pass container values, URLs or PDF references. You can pass one PDF reference to save to a new PDF.
Please note the difference between PDFKit.Combine and PDFKit.CombineRef. Combine returns a new container value with the new PDF. CombineRef returns the new PDF reference for further processing.
If on combining one of the PDF parameters is not a valid PDF, the function returns an error. You can use PDFKit.SetIgnoreCombineErrors to disable that and ignore all PDFs which fail to open. For example if you write code which takes 4 container values and not all of them contain PDF files.

Starting with version 6.0, the PDFs parameters can also be lists of paths or reference numbers.

PDFKit does not guarantee preservation of the original PDF version. In practice it often rewrites the document as PDF 1.3/1.4 style content and may flatten or discard features it cannot represent in its writer.
Typical things that can be lost when a PDF 1.5/1.6/1.7 document is rewritten include:
  • Transparency groups
  • Optional content layers
  • Object streams (introduced in PDF 1.5)
  • XFA forms
  • Certain annotations
  • Embedded multimedia
  • Advanced compression structures
  • Some vendor-specific extensions
As a result, a PDF that displays correctly when opened can become incomplete after being re-saved through PDFKit.
You may use DynaPDF functions if you need anything from the above.

This function takes variable number of parameters. Pass as much parameters as needed separated by the semicolon in FileMaker.
Please repeat PDFs parameter as often as you need.

Examples

Combine two PDF files form two media fields into a new PDF

MBS("PDFKit.Combine"; "test.pdf"; mytable::test1; mytable::test2)

Merge PDFs:

#Start with blank list
Set Variable [$list; Value:""]
#Load PDF from container
Go to Record/Request/Page [First]
Set Variable [$destPage; Value:1]
Loop
    Set Variable [$r; Value:MBS("PDFKit.OpenContainer"; Merge PDFs::InputPDF)]
    If [MBS("IsError") = 0]
Set Variable [$list; Value:$list & $r & ¶]
    End If
    Go to Record/Request/Page [Next; Exit after last]
End Loop
Set Field [Merge PDFs::FinalPDF; MBS("PDFKit.Combine"; "merge.pdf"; $list)]
Set Variable [$r; Value:MBS("PDFKit.Release"; $list)]

Merge PDFs with various paths:

# native path to PDF
Set Variable [ $path1 ; Value: "/Users/cs/Desktop/test/file1.pdf" ]

# or file URL is fine
Set Variable [ $path2 ; Value: "file:///Users/cs/Desktop/test/file2.pdf" ]

# FileMaker style path needs conversion
Set Variable [ $path3 ; Value: "/Macintosh HD/Users/cs/Desktop/test/file3.pdf" ]
Set Variable [ $path3 ; Value: MBS("Path.FileMakerPathToNativePath"; $path3) ]

# merge them to one PDF
Set Variable [ $NewPDF ; Value: MBS( "PDFKit.Combine"; "output.pdf"; $path1; $path2; $path3 ) ]

# write it to disk
Set Variable [ $OutputPpath ; Value: "/Users/cs/Desktop/test/output.pdf" ]
Set Variable [ $r ; Value: MBS("Container.WriteFile"; $NewPDF; $OutputPpath) ]

# and open it!
Set Variable [ $r ; Value: MBS("Files.LaunchFile"; $OutputPpath) ]

See also

Release notes

  • Version 16.3
    • Improved PDFKit.Combine to copy metadata values from first document to the new document.
  • Version 12.2
  • Version 11.5
  • Version 11.4
  • Version 11.3

Example Databases

Blog Entries

This function is free to use.

Created 18th August 2014, last changed 12nd June 2026


PDFKit.AppendPages - PDFKit.CombineRef


MarkDown version: PDFKitCombine.md