Overview
Contains multiple Smart Services and Functions for interacting with PDF Documents.
Key Features & Functionality
Smart Services:
Functions:
I have a similar issue, but it appears to me that the plugin is no longer allowing PNG files. Error I received was Not a JPEG file. It was working great up until the Appian upgrade to 24.1
We have been using the 'Convert PDF to Image' smart service for a while to convert a PDF into a PNG with a transparent background. After we updated to the most recent version of this plugin, the PNG appears as a solid black image; it appears that the background is rendering as black instead of transparent. Is this a known issue?
I am getting below error with this version of the plugin. I have tried removing and re-installing the plugin. I am on Appian 23.4.
Unable to load class 'javax.imageio.ImageReadParam' because the bundle wiring for pdftools is no longer valid. at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1548) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1986)
I am getting this error on above plugin version, Appian version is 23.4, Cloud.
Exception in thread "ThreadPoolTaskExecutor-62870" java.lang.NoClassDefFoundError: javax/imageio/ImageReadParam at com.github.jaiimageio.impl.plugins.tiff.TIFFImageReaderSpi.createReaderInstance(TIFFImageReaderSpi.java:118) at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:320) at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:529) at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:513) at com.appiancorp.ps.pdftools.ConvertImageToPDF.run(ConvertImageToPDF.java:77) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136) at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:136) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:130) at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:28) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:130) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:88) at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:22) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:67) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55) 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.ContinuationRequest.execute(ContinuationRequest.java:129) 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.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)Caused by: java.lang.ClassNotFoundException: Unable to load class 'javax.imageio.ImageReadParam' because the bundle wiring for pdftools is no longer valid. at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1548) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1986) at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
Hi,
I am getting below error when I use the getpdftext function.
An error occurred while evaluating expression: pdfText:getpdftext(pv!rulesforInclusionpdf) (Expression evaluation error at function 'getpdftext': Error: Header doesn't contain versioninfo) (Data Outputs)
PDF document referenced in the function is generated from docx using pdf from docx
Any help is much appreciated. Thanks!
Hi, thanks for the reply! Unless there is another way to check in Appian, if there is the PDF is formed correclty, exactly that could be a good behavior.... A null might be fine. A null should mean that the function could not get any fields from the PDF. If the function response is null, it means there is no metadata and should mean that something is going on with that PDF and it is invalid.
Hi mikel,tbh this will be hard to maintain properly. I mean we are talking for a reason about "corrupted PDF". And if you dont have a valid PDF, how can the function be working on a reasonable level as "PDF tool" function?What would be your expected behavior? No error?kind regards, Richard
Hi! We have a problem when we use getpdfflieds on a corrupted PDF. Sometimes our users upload this kind of PDF documents and we don't know how to control it. Would it be possible that this implementation exists in the current plugin and at least the function doesn't fail? It would be enough for us to throw a null. Thank you!
Common issue with .docx templates with fields which are being merged like the following in the final PDF conversion.
[SOLUTION] Ensure spacing is removed for all paragraphs:
[EXPLANATION] It appears that adding custom spacing throws off the PDF converter and merges fields in an unpredictable way, resort to using simple newline characters.