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

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

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

Keys events in Qoppa’s PDF components

Qoppa PDF components are implementing KeyListener and listening to key events redirected by the application. They handle key events such as Page Up, Page Down, End, Home, Escape, Up, Down, Right and Left. Read more about keyboard shortcuts in the components user guide: Using the keyboard to navigate Using CTRL + V key on the […]

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

Support multiple entries / layers in signature appearance stream

Multiple Layers in Digital Signatures Following an old format, digital signature field will sometimes define an appearance containing multiple entries / layers to be turned on or off based on the signature validity by the application at display time: n0: Background layer. n1: Validity layer, used for the unknown and valid state; contains, for instance, […]

Read More

Changing default annotation tool settings and behavior

Q: How can we change the default color of a text annotation? It’s always red. A: There is a package called com.qoppa.pdfNotes.settings that contains classes allowing to change the default behavior of all our annotations tools. So for instance, to set the default color for the free text annotation (also called typewriter annotation), you would […]

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 can be adapted to integrate our PDF Viewing-Only component jPDFViewerBean or our advanced PDF editing component jPDFEditorBean by simply replacing PDFNotesBean with PDFViewerBean or PDFEDitorBean in the code below. This sample shows 2 […]

Read More

Streaming efficiently a PDF document from a URL for viewing

Q: Do Qoppa’s PDF components (jPDFViewer, jPDFNotes, jPDFEditor) support reading linearized PDF documents in an efficient way or is there another way to load PDF documents on demand for viewing from a web server? A: We are in the process of implementing the loading PDF documents in a way that takes advantage of the linearization […]

Read More

Qoppa New Print Dialog

In version v2015R2, Qoppa added a custom print dialog much more powerful than the default Java print dialog. This new dialog is set as the default print dialog in jPDFViewer, jPDFNotes, jPDFEditor, jPDFPrint, jPDFProcess. The new enhanced print dialog includes many new features such Print Preview, Print Current View, Enhanced Page Range Options, and Print […]

Read More

PDF OCR With Multiple Languages

To call OCR with multiple languages, for instance English and French, call: com.qoppa.ocr.TessJNI.performOCR("eng+fra", myPage, 200); com.qoppa.ocr.TessJNI.performOCR("eng+fra", myPage, 200);

Read More

New Languages Supported in OCR

v2015R2 added OCR support for non-Latin and CJK languages. New Latin languages have also been added to the available list of languages. Here is a complete list of newly added OCR languages: New OCR Languages: Afrikaans Albanian – shqip Arabic – العربية Azerbaijani – azərbaycan Basque – euskara Belarusian – беларуская Bengali – বাংলা Bulgarian […]

Read More

Programmatically turning on / off comparison mode in PDF Component

Q: How can I turn on / off the comparison mode in Qoppa’s PDF editing component jPDFEditor? A: The code below will change the view of the PDFEditorBean to a new comparison view with both the current document and a second document in the specified mode. Comparing 2 documents by overlaying them: // load a […]

Read More

Spell Check in PDF Annotations and Form Fields using jOrtho

Version v2015R2 added a spell checker to Qoppa’s PDF components jPDFNotes and jPDFEditor. jOrtho Plugin and Licensing Qoppa Software has modified the jOrtho source to work with some of the custom components in PDFNotesBean / PDFEditorBean. jOrtho is a commercial library developed by Inet Software that requires licensing. I-net Software is offering a special discount […]

Read More

Adding Undo / Redo functionality with shortcut keys to Qoppa’s PDF components

Q: How can I add Undo and Redo functionality to Qoppa’s PDF components jPDFNotes, jPDFEditor? The class that provides undo/redo functionality is the UndoManager. PDFNotesBean provides an implementation which can be referenced with: PDFNotesBean.getUndoManager() PDFNotesBean.getUndoManager() The methods which trigger an undo and redo, are respectively: UndoManager.undo(); UndoManager.redo();UndoManager.undo(); UndoManager.redo(); Add Undo / Redo in a Menu […]

Read More

LiveCycle Dynamic XFA Forms Support in Qoppa’s PDF Library

LiveCycle XFA forms are complex and uncommon PDF forms that are designed to be rendered dynamically from the drawing and layout information present in the XFA definition. This kind of forms are not widely supported and only a couple of vendors are able to render them. Adobe has moved away from dynamic XFA forms and […]

Read More

Compare 2 PDF documents with Overlay

In v2015R1, Qoppa added an optional module to our PDF editing and annotating component jPDFEditor that allows to compare 2 PDF documents or drawings by by overlaying / superimposing them.  Compare Overlay allows to superimpose 2 drawings or documents and immediately identify the differences using color coding: Elements present only in first drawing appear in […]

Read More

Compare Side by Side 2 PDF documents

In v2015R1, Qoppa added an optional module to our PDF editing and annotating component jPDFEditor that allows to compare 2 documents side by side.  Compare Side by Side allows to open 2 two PDF documents in the same frame next to each other to compare visually. Synchronized scrolling of the 2 documents At any time […]

Read More

Rendering to CMYK and Overprint Simulation

In version v2015R1, Overprint simulation was added to Qoppa’s Java PDF component jPDFEditor. This advance PDF technique is used by professionals in the print and pre-press industry. Overprint simulation allows to preview how two distinct colors that overlap will mix when printed.   RGB Rendering By default, Qoppa renders to RGB: To render to CMYK […]

Read More

jPDFEditor Java API

Q: Where can I find jPDFEditor javadoc API? A: You can find the API specification for the latest version of our library jPDFEditor on our website at this link. jPDFEditor is a java component that can display PDFs, fill interactive PDF forms, digitally sign, annotate, and redact PDF documents.

Read More