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

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, you will get images with “weird” colors. Faces for instance will show with more intense, bright saturated colors (such as red and blue) […]

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 the following error displayed on a page. This happens because the PDF document is calling for a font, ‘F0’ in this case, that is not embedded in the document […]

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

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

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

JavaFX PDF Viewer

Qoppa JavaFX PDF viewer is based on Qoppa’s superior PDF rendering engine. Try our Webstart JavaFX PDF Viewer Demo Highlights of Qoppa’s JavaFX Viewer: View PDF documents Thumbnails Rotation Various Page View Modes High Performance Zoom Renders Annotations / Highlights Render Form Fields Requires Java 1.8 or above Included with Qoppa’s Swing PDF Viewer jPDFViewer […]

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

jPDFViewer v2015R2 Build Notes and Download

Download jPDFViewer.v2015R2.11.jar v2015R2.11 – August 09 2016 JPDF-809 – Regression: 2 PDFs that were rendering fine in 2015R2.07 do not render well in 2015R2.10 due to font CMAP issues v2015R2.10 – July 28 2016 JPDF-791 Tile refresh issue (blank pages) when rotating pages and scrolling up JPDF-777 – NullPointerException when getting file size for file […]

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