What cipher suite is your Java applet using during connection

Q: How do I know what cypher suite is being used to run my applet? A: To debug an applet and output connection information to the console, run with the following system property: -Djavax.net.debug=all When we run our sample applets with Java 8, Java uses the following cipher suite on our server: Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 […]

Read More

Fit to Height View when Rendering PDF with Android qPDF Toolkit

Q: How can I implement a fit to height view using Qoppa’s Android qPDF Toolkit and the PDF Viewer QPDFNotesView? A: We don’t have a predefined way of fitting the document to its height within the viewer. You can calculate the appropriate scale and set it on the viewer. See sample code below. package com.sample; […]

Read More

Invalid SH-256 signature file digest when jar is signed

Q: Our deployment will sign all jars in the classpath and when we added Qoppa’s jar to it and run in production, we are getting the following error: java.io.IOException: invalid SH-256 signature file digest for com/qoppa/pdf/k/m.class at com.sun.deploy.cache.CachEntry$9.run(CacheEntry.java:1786) at java.security.AccessController.doProviledged(Native Method) at com.sun.deploy.cache.CacheEntry.writeFileToDisk(CacheEntry.java:1680)java.io.IOException: invalid SH-256 signature file digest for com/qoppa/pdf/k/m.class at com.sun.deploy.cache.CachEntry$9.run(CacheEntry.java:1786) at java.security.AccessController.doProviledged(Native Method) […]

Read More

OldWordFileFormatException when converting Word 6 and Word 95 files to PDF

Q: We are using Qoppa’s jWordConvert for converting Microsoft Word documents to Adobe PDF. We are getting the below exception for the documents with a version less than or equal to 95. Can jWordConvert convert older Word documents? com.qoppa.org.apache.poi.hwpf.OldWordFileFormatException: The document is too old – Word 95 or older. Try HWPFOldDocument instead? at com.qoppa.org.apache.poi.hwpf.HWPFDocument.<init>(Unknown Source) […]

Read More

Submit a PDF form to a service and receiving a response back

Q: How can I submit FDF, XFDF or HTML data to a server and receive a response back? A: Here is a sample service that receive a PDF file and then responds with an FDF file. package com.qoppa.jaxrs.service.test;   import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;   import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import […]

Read More

JavaScript warnings when submitting forms or emailing documents

In v2016R1, we’re adding settings to turn off warning in JavaScript for the submitForm and mailDoc function. Turn off warning on submitform // turn off warning in submitform function // before connecting to a URL JavaScriptSettings.setSubmitFormWarn(false);// turn off warning in submitform function // before connecting to a URL JavaScriptSettings.setSubmitFormWarn(false);   Turn off warning on maildoc […]

Read More

Create and add PDF annotations to a PDF document with jPDFProcess

Here is a sample Java program showing how to create and add annotations such as square, rubber stamp, typewriter, callout and free text to a PDF document using Qoppa’s PDF library jPDFProcess. The annotations are added to the first page of a PDF document. A first PDF is saved with all the annotations and a […]

Read More

NullPointerException in isDispatchThreadImpl when adding Swing components outside the Swing Event Thread

Q: We’re having an issue using PDFViewerBean when adding a button to the toolbar. The issue appears periodically. The code: JButton button = new JButton ("Some button"); PDFViewerBean.getSelectToolbar().add(button); button.addActionListener(someListener);JButton button = new JButton ("Some button"); PDFViewerBean.getSelectToolbar().add(button); button.addActionListener(someListener); The exception stack trace: java.lang.NullPointerException at java.awt.EventQueue$2.isDispatchThreadImpl(Unknown Source) at sun.awt.SunToolkit.isDispatchThreadForAppContext(Unknown Source) at javax.swing.JComponent.revalidate(Unknown Source) at javax.swing.JComponent.setBorder(Unknown Source) at […]

Read More

Changing the select cursor on annotation components

The sample below shows how to change the select cursor on annotations components. This done by adding a IPDFListener to the PDFNotesBean and implementing the method afterDocOpened(). In this method, the cursor of annotations components is changed to the predefined hand cursor. PDFNotesBean notesBean = new PDFNotesBean(); // !! This is important to ensure that […]

Read More

Invalid CMAP name when rendering or printing a PDF page

Q: When opening a PDF file, I get the following error: A: You are missing cmaps.jar in your classpath which contains CMaps, used to read and display character encodings used with CJK (Chinese, Japanese, Korean) content. Download cmaps.jar   This error can happen when rendering PDF documents in Qoppa’s PDF components (jPDFViewer, jPDFNotes, jPDFEditor) or […]

Read More

Staple and Duplex options when printing PDF in Java

Q: Is it possible to specify staple & duplex options on a per-document basis with jPDFPrint? A: Yes, it is:  Java supports setting print job attributes for each print job, this is done through PrintRequestAttribute objects. jPDFPrint supports passing these attributes through. The attributes that you want to use are: javax.print.attribute.Finishings.STAPLEjavax.print.attribute.Finishings.STAPLE and javax.print.attribute.Sides.DUPLEXjavax.print.attribute.Sides.DUPLEX Here is a sample […]

Read More

jPDFOptimizer v2015R2 Build Notes

v2015R2.01 – June 06 2016 jPDF-768 – Black section when compressing JPEG images with ICC color spaces or CMYK color spaces with Java 1.8 at a specific DPI v2015R2.01 also includes all fixes that made it into the build for Qoppa’s PDF engine.

Read More

2016-04 PDF Automation Server Release

Download PDF Automation Server v2016R1 Version 2016R1 – April 1 2016 This version of PDF Automation Server adds a new Rest API Module and an easy way to script a custom Job for the Workflow Module. Read Version Announcement in Qoppa’s Blog New Features PAS-52 – New Restful Server Module PAS-64 – Open custom job […]

Read More

Getting interactive field location information (bounds and page number)

To get PDF interactive form fields location information (including signature fields) such as dimension and page number, you will need to access the widget which is the visual representation of the field on the page. When using Qoppa’s PDF components (jPDFViewer, jPDFNotes, jPDFEditor), you can get information from the editing component. // get Acroform AcroForm […]

Read More

Adding custom properties to PDF digital signatures

Q: Is it possible to set custom properties to digital signatures using Qoppa’s PDF SDK? A: Yes, it is possible to do so using jPDFSecure, jPDFProcess or qPDF Toolkit. Adding custom property to the signature dictionary This method can be used to add additional custom properties to the signature dictionary. SigningInformation.setCustomProperty(key, value);SigningInformation.setCustomProperty(key, value); You can […]

Read More

Slow when printing a PDF page that has a watermark

Q: When I print a page with no watermark, it prints quite fast, less than 2 seconds, as expected. But when I add a “Draft” watermark to the same page and send it to the printer, it prints much slower and can take up to 20 or 30 seconds for the same page to print. […]

Read More

How to type µ mu in PDF interactive text fields and text annotations

Q: Is it possible to insert character “µ” in any form text field or text annotations using Qoppa’s PDF components? A: Qoppa’s PDF engine support inserting “micro”, but not “mu” which are 2 characters that look the same visually. “micro” is Unicode 00B5 and “mu” is Unicode 03BC. This is a bit of an issue […]

Read More

How to hide the validation icon on signed digital signature fields

Q: Is there a way to turn off digital signature validity when rendering a PDF page in Qoppa’s PDF components and libraries? Our application will perform our own internal signature validation. A: Yes, it is possible by simply making a call to the following static method (before loading the signed PDF): PDFRenderHints.setRenderSignatureVerification(false);PDFRenderHints.setRenderSignatureVerification(false); This method sets […]

Read More

qPDF Toolkit Version 5

qPDF Toolkit Change Log / Release History Download qPDF Toolkit Version 5.12 – 06/11/2018 QT-31 – Rounding error in the appearance height of digital signature fields Version 5.11 – 12/15/2017 QT-29 – Document Specific: Text typed in interactive form fields is not showing Version 5.10 – 12/14/2017 QT-28 – Fix stroke issue for CJK fonts […]

Read More

Changing the PDF document pane background in Qoppa PDF components

Q: How can I change the main document pane background, where one can view and navigate through the PDF pages, in Qoppa’s PDF components jPDFViewer, jPDFNotes or jPDFEditor? A: This is how you can change the main pane background: pdfNotesBean.getRootPane().getContentPane().setBackground(Color.darkGray);pdfNotesBean.getRootPane().getContentPane().setBackground(Color.darkGray);

Read More

Adding a background or foreground image to a PDF page

Here is a sample Java program showing how to add background and foreground images to pages of a PDF document while still keeping all original page content as vector, i.e, the page still contain text, images and any vector drawing commands. This sample uses Qoppa’s PDF library jPDFProcess. This sample program opens a source PDF, […]

Read More

Dragging PDF and image files into Qoppa’s PDF Component

You can add a DropTargetListener to your application or frame in order to listen to PDF files being dropped and then have the files be opened in Qoppa’s PDF component (jPDFViewer, jPDFNotes, jPDFEditor). We have implemented this feature in our sample demo applications so you can download our demo to try and then look into […]

Read More

Automate text field extraction from PDF into an XML file

Use this Custom Job as an easy solution to extract text fields from incoming PDF documents (such as invoices, statements, financial applications, medical records, etc….) and save them in a structured format, for instance an XML file. Note: This custom job will work with any PDF document (assuming the document contains text, otherwise the PDF […]

Read More