PDF Utilities

Overview

This plug-in has the following smart services:

  • Header and Footer - To add header and footer in the PDF document.
  • Add Image - To add image to the PDF document.
  • Watermark Text - To add watermark to the text in the PDF document.
  • Rotate Page in PDF - To rotate the page in the PDF document.
  • Merge PDF - To merge the data in the PDF document.
  • Add Page Number in PDF - To add page number in the PDF document.
  • Add Page Number in PDF with Alignment - To add page number with alignment in the PDF document.
  • Add Image To PDF - To add image in the PDF document.
  • Split PDF By Range - To split the PDF by range.
  • Split PDF By Number - To split the PDF by Number
  • Split PDF By Specific Page - To split the PDF by specific page.
Anonymous
  • Hello,

    I'm facing issue using the add image to pdf/insert image in pdf on Appian 24.4 version. Both smart service trows the same error. I'm using version 9.0.4

    Tomcat log shows this entry:

    Exception in thread "ThreadPoolTaskExecutor-7533" java.lang.NoClassDefFoundError: javax/imageio/stream/ImageInputStream at com.github.jaiimageio.impl.plugins.pnm.PNMImageReaderSpi.canDecodeInput(PNMImageReaderSpi.java:101) at java.desktop/javax.imageio.ImageIO$CanDecodeInputFilter.filter(ImageIO.java:573) at java.desktop/javax.imageio.spi.FilterIterator.advance(ServiceRegistry.java:873) at java.desktop/javax.imageio.spi.FilterIterator.<init>(ServiceRegistry.java:867) at java.desktop/javax.imageio.spi.ServiceRegistry.getServiceProviders(ServiceRegistry.java:516) at java.desktop/javax.imageio.ImageIO.getImageReaders(ImageIO.java:654) at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1460) at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1317) at org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.createFromFileByExtension(PDImageXObject.java:271) at org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.createFromFile(PDImageXObject.java:208) at com.vuram.plugins.pdfutilities.InsertImageToPdf.run(InsertImageToPdf.java:143) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:129) at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:129) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:123) at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:30) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:123) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:110) at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:23) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:89) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:72) at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143) at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68) at com.appiancorp.process.engine.ActivityRequest.executeOuter(ActivityRequest.java:41) at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:136) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:125) at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36) at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110) at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.lang.ClassNotFoundException: Unable to load class 'javax.imageio.stream.ImageInputStream' because the bundle wiring for pdftools is no longer valid.
  • With the above example, how would you get the unique page number for each page? I am trying to implement somthing like "Page "&{ac!StartPage+1}&" of "&getnumberofpages(pv!uploadedFile), but I cannot seem to get the unique page figured out.

  • v9.0.4 Release Notes
    • Managed files in Insert Image Smart services.
  • v9.0.3 Release Notes
    • Closed the documents created in Finally block.

  • v9.0.2 Release Notes
    • Minor Bug fixes

  • v9.0.1 Release Notes
    • Fixed Header and Footer visibility issue in ‘Add Header Footer’ Smart service.
  • Hi Oliver,

    Please open a Support case and we can provide you the latest version compatible for 22.1. 

    Thanks,

    Daniel 

  • Hi Vuram team,

    Thank you for making this plugin available, and for the consistent updates - it's a really useful utility!

    I'm working with a team that are on a much older version of Appian and upgrading will take a while. Is it possible to get an older version of the PDF Utilities plugin that was built for 22.1 please (such as 7.1.3)? I'm aware we'll lose the later enhancements you've made and that it's available as-is - we won't expect any support on that version of the plugin.

    All the best,

    Oliver

  • v9.0.0 Release Notes
    • Deprecated Add Header and Footer and Add Watermark Text smart services.
    • Updated Add Header and Footer and Add Watermark Text smart services to support multiple font fallbacks.
    • Updated libraries.

  • Hi  ,

    Good Day!!

    Our plugin now includes this functionality in the Version 8.2.0.

    Thanks & Regards,
    Snehasri S.