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.

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 raw list of bookmarks in the PDF.

Anonymous
Parents
  • This is the feedback I got from Appian support for the issue with deploying the plug-in code. 

    To resolve this issue, you will need to change the plugin code to explicitly reference PdfField?list^1 so that it matches the internally mapped version of the CDT, then recompile the plugin and attach the new .jar to this case. To do this, please identify each @Input and @Output of type "PdfFields" in the plugin code, the update its annotation following the Action section of KB-1097. For example, the error references the smart service "FillPDFPauseOnError," so you will need to make the following update in the file FillPDFPauseOnError.java:

    Old:
    @Input(required = Required.ALWAYS)
    @Name("PdfFields")
    public void setPdfFields(PdfField[] val) {
    this.pdfFields = val;
    }

    New:
    @Input(required = Required.ALWAYS)
    @Name("PdfFields")
    @Type(namespace = "">types.appiancorp.com/ps", name = "PdfField?list^1")
    public void setPdfFields(PdfField[] val) {
    this.pdfFields = val;
    }

      Any plans to update a new version with these changes?  If not, I will plan on making these changes myself on my end.  Thanks!

Comment
  • This is the feedback I got from Appian support for the issue with deploying the plug-in code. 

    To resolve this issue, you will need to change the plugin code to explicitly reference PdfField?list^1 so that it matches the internally mapped version of the CDT, then recompile the plugin and attach the new .jar to this case. To do this, please identify each @Input and @Output of type "PdfFields" in the plugin code, the update its annotation following the Action section of KB-1097. For example, the error references the smart service "FillPDFPauseOnError," so you will need to make the following update in the file FillPDFPauseOnError.java:

    Old:
    @Input(required = Required.ALWAYS)
    @Name("PdfFields")
    public void setPdfFields(PdfField[] val) {
    this.pdfFields = val;
    }

    New:
    @Input(required = Required.ALWAYS)
    @Name("PdfFields")
    @Type(namespace = "">types.appiancorp.com/ps", name = "PdfField?list^1")
    public void setPdfFields(PdfField[] val) {
    this.pdfFields = val;
    }

      Any plans to update a new version with these changes?  If not, I will plan on making these changes myself on my end.  Thanks!

Children
  • Hi Raj,

    We are in exactly the same situation. We are in need of this plugin, but with a version 1 reference for the PdfField cdt.

    Did you manage to resolve this yet? And if so, how?

    can you perhaps share a version of the plugin that references the ^1 of PdfField?

    Thank you