PDF Tools

Overview

Contains multiple Smart Services and Functions for interacting with PDF Documents.

Key Features & Functionality

Smart Services:

  • Merge PDF - Merges multiple PDF documents into a single document.
  • Extract PDF Pages - Extracts a range of pages from an existing PDF into a new PDF.
  • Fill PDF - Populates the fields of a PDF Form and optionally flattens it disallow further changes.
  • Create PDF Content - Allows text to be added to a PDF with control over the style, position, and angle. An existing PDF can be updated or a new one created from scratch.
  • Convert PDF to Image - Creates an array of images or a multi-page tiff from a PDF.
  • Compress PDF - Compresses the images in the PDF to make it smaller.
  • Un-protect and Copy PDF - Using the document password, create an un-protected copy of a protected PDF.
  • Convert Image to PDF - Creates a PDF starting from one or many images. It also supports multi-page tiff images.
  • Encrypt PDF - Encrypts an existing PDF with a password,
  • Split PDF Pages In Half - Supports spitting individual pdf pages horizontally or vertically with an overlap
  • Rotate PDF - rotate entire pdf by 90, 180, or 270 degrees
  • Convert Txt to PDF - Convert a text to pdf with a choice of font type and size

Functions:

  • Get PDF Metadata - Retrieves metadata on the PDF: page count, title, author, security, encryption, etc.
  • Get PDF Text - Retrieves the text content from a PDF.
  • Get PDF Form Fields - Retrieves the populated form field values of an unflattened PDF.
  • Get PDF Signature Fields - Retrieves the populated signature field values of an unflattened PDF.
  • Get PDF Bookmarks - Retrieves the list of bookmarks and associated page number in the PDF

Anonymous
  • I've tried to use the Create PDF smart service to convert a DocX file to a PDF, but this results in the following error when I provide a source document in the contents field:

    [An error occured while trying to verify the Contents input: class java.lang.Long cannot be cast to class [Ljava.lang.Object; (java.lang.Long and [Ljava.lang.Object; are in module java.base of loader 'bootstrap')]

    The Contents fields accepts "Any type", but there's nothing that I can provide that will enable this to work. I know there's a Source Document field, but this is optional, where as Contents is not.

    Is anyone else having this error, or were you able to get this to work without problems?

  • Hi,

    It would be good to add a functionallity that transforms a base64 text string to PDF document.

    Also, Merge PDF outputs a 1.4 PDF version for result. How can I configure it in a way that the output is a 1.7 PDF?

  • v3.2.0 Release Notes
    • Adding txt to pdf smart service
  • v3.1.1 Release Notes
    • Get PDF Metadata now retrieves the first page’s dimensions (width and height in PDF units).
    • The getpdfmetadata function now includes two new fields: pageHeight and pageWidth, users will need to delete the CDT and redeploy the plugin for the changes to take effect.
  • v3.1.0 Release Notes
    • Added new pdf chunking smart service
  • HI have you found a solution to this requirement? We are receiving mixed results where some types of PDF's are read-only after generation, but the most recent templates we have uploaded are still editable in Adobe after merging/flatten.  

  • v3.0.0 Release Notes
    • Added new rotate pdf smart service
  • v2.9.1 Release Notes
    • Improved support of TIFF files (e.g. multi-page TIFF files with LZW compression, 16-bit samples and Horizontal Differencing Predictor, and multi-page TIFF files with JPEG compression).
  • This is caused by a known limitation in our plugin management software when the plugin is updated, it is solved by restarting the site.

  • Hello,

    i've the following exception with the 2.9.0 version on an appian  24.4.600.0

    Caused by: java.lang.ClassNotFoundException: Unable to load class 'javax.imageio.stream.ImageInputStream' because the bundle wiring for pdftools is no longer valid.
    ... 259 more
    2025-06-27 14:45:37,182 [https-jsse-nio-8443-exec-9] ERROR com.atlassian.plugins.rest.common.error.jersey.ThrowableExceptionMapper - Uncaught exception thrown by REST service: javax/imageio/stream/ImageInputStream
    java.lang.NoClassDefFoundError: javax/imageio/stream/ImageInputStream
    at com.github.jaiimageio.impl.plugins.bmp.BMPImageReaderSpi.canDe

    Could you please advice ?

    Tanks in advance