PAdES PDF Avanced Electronic Signatures Support in Qoppa PDF SDK

Does Qoppa’s PDF API support signing using “Advanced Electronic Signatures (AdES)”, as recognized by eIDAS regulation? Qoppa’s PDF library and components currently support the following digital signature types: • PKCS7 Signatures • B-B PAdES signatures • B-T PAdES signatures Qoppa’s PDF library and components currently do not support the following types of signatures (which are […]

Read More

Can a digital signature in a PDF document have multiple linked widgets?

Q: We know that standard interactive form fields can have multiple widgets associated with them. In this case, all “linked” widgets in the document will contain the same form field data & have the same appearance stream. But how about digital signature fields? Do they allow multiple widgets to be associated with them? Answer: The […]

Read More

Checking for Form Field Flags such as Required, Read-Only, Rich Text

As of v2018R1, it is possible to get information about form field flags in Qoppa’s PDF libraries and components. These flags represent some of the field properties that can be found under the form field properties in PDF editing applications and our PDF components. Field Flags Available Interface FormField (available in all fields) FormField.FF_READONLY -The […]

Read More

File attachments handling in attachment pane in Qoppa PDF components

Qoppa’s PDF Swing components jPDFViewer, jPDFNotes and jPDFEditor have a side tab / pane that will show all file attachments that were added to a PDF document. Handling of File Attachments When double-clicking on one of the file attachment, Qoppa’s PDF components will by default handle the documents in the following way: PDF documents will […]

Read More

Scaling your Java Application for 4K High DPI Displays support on Mac, Windows, Linux

4k support in Qoppa PDF Components In version v2017R1,  support for 4K monitors was added in Qoppa PDF components jPDFViewer, jPDFNotes and jPDFEditor. The user interface was completely revised to support 4k HiDPI Display monitors with automatic DPI scaling for all dialogs and toolbars as well as newly designed vector icons that render crisp at any resolution. Customers integrating […]

Read More

Invalid colors for CMYK images when cmykProfile.jar missing in classpath

Update: As of version v2019R1, cmykProfile.jar is now packaged inside Qoppa’s library jars and no longer requires to be added to the classpath. When rendering or optimizing images with a CMYK color space (DeviceCMYK), Qoppa’s PDF libraries and components need the cmykProfile.jar to be present in the classpath. If you forget to include this jar, […]

Read More

Selecting an annotation on a page in Qoppa’s PDF components

Q: How can I select a given annotation on a page in jPDFViewer, jPDFNotes or jPDFEditor? A: You will need to work with the IAnnotationManager, which manages the selection cycle for annotations. IAnnotationManager annotmanager = viewerBean.getAnnotationManager();IAnnotationManager annotmanager = viewerBean.getAnnotationManager(); This interface manages the selection cycle for annotation components on a page and allows to programmatically […]

Read More

How to Resolve Error Rendering Page: Missing Font

When rendering a PDF document in the following Qoppa’s PDF library products: jPDFImages, jPDFPrint, jPDFProcess, jPDFViewer, jPDFNotes or jPDFEditor, you might encounter a blank page with an “Error Rendering Page” displayed in red on a page. This error happens when there is an issue with a font within the PDF document. There are 2 possible […]

Read More

On using Java RenderingHints to smooth jagged edges on rotated images

Q: There seems to be some pixelation or resolution issue when rendering specific images in a PDF brochure. Is there anything that can be done to render these images more smoothly? A: Qoppa’s PDF libraries and components uses our own interpolation algorithm that works much better than the built-in Java algorithm well both when up-sampling […]

Read More

How can I save form field data from jPDFViewer?

Q: For interactive PDF forms that I have entered data to is there a way to save the PDF to the file system from Qoppa’s PDF viewing component jPDFViewer? I don’t see a save or save as button in the demo viewer. A: jPDFViewer allows to fill in form fields data and export the data […]

Read More

Changing default magnification (fit to page, fit to width, given zoom level)

To change the initial magnification settings when opening PDF documents in Qoppa’s PDF components and ignore the magnification settings contained in the PDF document (if any), make the following method calls immediately after instantiating the PDF bean, before opening any PDF document: Set a Fit To Width Magnification: Display with the page magnified just enough […]

Read More

Customizing icon sizes in Qoppa’s PDF Components

Q: Is it possible to customize the size of the icons (to make them smaller or larger) in Qoppa’s PDF components? A: Yes, Qoppa’s components ship with 4 different icons sizes: small, medium, large and extra large. Here is a sample code showing how to adjust the size of the component’s icons: // call this […]

Read More

Touch Mode in Qoppa’s PDF components for smaller / touch-enabled screens

Qoppa’s PDF viewing components (jPDFEditor, jPDFNotes, jPDFViewer) feature a Touch Mode that makes editing and annotating PDF documents more friendly on touch screen enabled laptops, PCs and tablets such as the Windows Surface Pro, Dell Venue 11, or Lenovo Yoga 3 Pro. This feature was added in v2016R1. What are the Touch Mode Features? Enlarged […]

Read More

Remove Border around Pages in Qoppa’s PDF Components

Q: Is it possible to remove the black border around pages in Qoppa’s PDF component? See screenshot below. A: Yes, it is. See code sample below. Modifying the border we use on page view components can be done with an IPDFListener after the document is opened.  Also the documentChanged() method needs to  be overwritten to modify the […]

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

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

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

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

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

Fast web view when streaming large linearized PDFs

Q: Are Qoppa products able to load large PDF documents that are linearized efficiently ver the web in order to render them fast into Qoppa’s PDF components? A: We’re almost done implementing this feature which will make it much faster to be able to display the first page of large linearized PDFs when streaming them […]

Read More

Changing thumbnail panel background

Sample code to change Thumbnail / Pages Panel background color. You need to get the thumbnail list from the thumbnail panel and set the background color on the list. PDFNotesBean = new PDFNotesBean(); pdfNotes.getThumbnailPanel().getThumbList().setBackground(Color.red);PDFNotesBean = new PDFNotesBean(); pdfNotes.getThumbnailPanel().getThumbList().setBackground(Color.red);

Read More

Integrating a PDF viewing component into JavaFX application

Below is a sample code to integrate our PDF viewing, annotating and form filling component, jPDFNotesBean, into a JavaFX application. This sample shows 2 ways of integrating the Java bean: Frame: Display Qoppa’s PDF bean Inside a JFrame. This works well. Embedded: Display Qoppa’s PDF bean inside a Swing Node within a JavaFX Scene. There […]

Read More