Windows PDF Functions

Since Microsoft added some PDF functions to their frameworks in Windows 10, we can now implement this to our MBS FileMaker Plugin. That got possible since we dropped Windows 7 and require newer functions for component management in Windows 8. For MBS FileMaker Plugin 13.2, we add the new functions for you to try out:

WinPDF.GeneratePreview
Adds preview to an existing PDF container.
WinPDF.IsPasswordProtected
Whether this document is password-protected.
WinPDF.LoadContainer
Loads a PDF document from data in container.
WinPDF.LoadFile
Loads a PDF document from file synchronously.
WinPDF.PageBox
Queries page dimensions.
WinPDF.PageCount
Gets the number of pages in the Portable Document Format (PDF) document.
WinPDF.PageHeight
Queries page height.
WinPDF.PageImage
Renders a page to an image.
WinPDF.PageImageAtSize
Renders a page to an image.
WinPDF.PagePreferredZoom
Gets the Portable Document Format (PDF) page's preferred magnification factor.
WinPDF.PageRotation
Queries rotation for a page.
WinPDF.PageWidth
Queries page width.
WinPDF.Release
Releases an object reference.

The key feature is to open PDF documents and render preview pictures for individual pages. The functions do not things like merge and split, form controls or creating of new PDF documents. For that, please use our DynaPDF functions.

The WinPDF.LoadContainer function can load a PDF from a container while WinPDF.LoadFile takes a native file path. The loading is synchronously, so this may take a second for bigger documents.

Once the document is loaded, you can query page count with WinPDF.PageCount functions. Then you can loop over the pages and query page size for each page, the preferred zoom levelor the rotation. Dimensions can be queried for all page boxes:

  • Media Box, the size of the paper
  • Art Box, the size of the content, which should not be covered later.
  • Bleed Box, the area to draw to, usually bigger than trim box.
  • Trim Box, where to cut the paper after printing.
  • Crop Box, the area to show or print.

Most of them are optional we usually just use Media Box to show whole page. Or on processing the pages, we may use crop box (if exists) to only show the cropped part.

You can render the page to a picture. The WinPDF.PageImage function returns a container with picture data encoded in either JPEG, PNG, TIFF or BMP. This can be configured with the parameters to request a specific image type or DPI level. If you need a specific width or height, you can use WinPDF.PageImageAtSize function instead.

Finally we have a function called WinPDF.GeneratePreview to add a preview to a PDF container after importing it. The function uses PDFKit on macOS and Windows PDF functions on Windows and is an alias for PDFKit.GeneratePreview function. If you need something cross platform (with Linux), you can use DynaPDF.GeneratePreview function and enjoy better rendering.

Another thing we could make it a comparison of the preview graphics and check how much Microsoft implemented on the more special cases. Like checking for gradients, spot colors, CMYK colors and embedded image formats. PDFKit functions on macOS also has a few limits there, so if you need full coverage, you may want to check out DynaPDF functions.

Please don't hesitate to contact us if you have questions.