October 17 2014. It’s only been 4 months (to the day!) since the previous release but the new version still adds quite a few refinements and fixes to Qoppa’s PDF parsing and rendering engine and to the following features: annotations, form fields, bookmarks, digital signatures and content editing.

New Library: We have released our new PDF optimizer library, jPDFOptimizer, check it out!

Version number: 2014R2 (v2104R2)

Java PDF Components: jPDFViewer, jPDFNotes, jPDFEditor

Qoppa’s PDF engine API changes from previous version:
API Changes

Parsing / Rendering / Printing
[JPDF-367] – Configurable CJK Fonts through PDFRenderHints.setCJKSystemFontName
[JPDF-450] – Implement convertSamplesToXX methods in CalRGB and CalGray color spaces
[JPDF-77] – New IPDFDocument.getDocViewPrefs() to get and set viewer preferences entries in the root catalog
[PS-2217] – In Cover view, first page is now centered
[JPDF-82] – Improved support for underline in PDFGraphics
[JPDF-412] – Remove MouseListener and ChangeListener implementation and methods from PDFEditorBean, which were internal
[PS-1656] – Document Specific: Upside down text in attached document
[JPDF-437] – Document Specific: Exception parsing content stream: com.qoppa.pdf.PDFException: Unrecognized command: +0.000
[PS-2230] – Document Specific: NullPointerException on getClipBounds Exception when printing document.
[JPDF-104] – Better support for start and end subroutine entries for Type1 fonts
[JPDF-435] – Document Specific: When exporting a page as an image, an image is rendered at the wrong location due to a graphics composite
[JPDF-443] – Document Specific: Content disappearing when jPDF component is resized due to a graphics composite not getting set
[JPDF-444] – Document Specific: Issue with misplaced drop shadow when converting PDF to image due a soft mask

Annotations
[JPDF-460] – Movable vertices in polygon, polyline, and cloud annotations (already supported for other shape annotations)
[PS-1612] – Movable vertices in area and perimeter measurement annotations (already supported for distance)
[JPDF-295] – Save custom rubber stamps appearance streams when exporting annotations to XFDF
[PS-2246] – Redaction tool is no longer sticky, it can be turned off through right click menu
[PS-2259]  – Note bubble now displays in center of annotation line instead of the end to be consistent with other PDF viewers
[PS-2259] – Show attachment pane, if it’s not visible, after attaching file
[PS-21272] – Allow drawing  single dots in ink / pencil tool
[JPDF-54] – When creating image stamps or push button with images, PDFImageStream (image, params) will use jpeg compression instead of flate when params is null
[JPDF-405] – When using the loupe tool, changing show/hide comments isn’t reflected
[PS-2297] – PolylineEditor was using AreaTool/PolygonTool instead of PerimeterTool/PolylineTool
[JPDF-447] – Free Text Annotation: Stop inline editing mode when right-clicking to avoid editing conflicts with properties dialog
[JPDF-476] – Lines from arrow heads in distance measurement annotation are out of sorts when the annotation gets very small
[PS-1656] – Document Specific: text rendering upside down
[PS-1556] – Document Specific: fail to render due to PDFGlyphVector throwing runtime exception
[PS-887] – Links and signature widgets: “Edit” option was renamed to “Move” in the mouse context menu.
[JPDF-462] – Text box cursor issues when multi lines and vertically centered
[JPDF-463] – When in inline editing mode in a free text and hitting escape, focus would transfer to a form field, if any
[JPDF-431] – Exception in AnnotationManager when deleting an annotation that was first hidden then shown.
[JPDF-467] – Document Specific: Delete annotations and save, page content disappears due to stream objects

Form Fields
[JPDF-331] – For fields missing appearance stream, only modify the appearance stream dictionary when NeedAppearances is true or when the field value has changed
[JPDF-423] – New option PaintOnlyImageButtons when flattening fields
[PS-2349] – In form calculation, fields with container were not always computed properly
[PS-2389] – Text form field paint problem when checking and then unchecking “Hide All Comments”

Digital Signatures
[JPDF-424] – SignatureField.clearSignature() now triggers a documentChanged() event and refreshes the signature component on the page
[JPDF-426] – QSignature.clearSignature() was always returning false. It now returns true if it completes successfully.
[JPDF-434] – When applying a digital signature and saving as linearized, the output document was invalid
[PS-2306] – Problem displaying signature, now looks in all RDN objects until finding the specific AttributeTypeAndValue
[PS-2235] – AES 256 with permissions password only would require open password Document Editing and Assembly

Bookmarks / Links
[JPDF-422] – New Bookmark context menu
[PS-2099] – Support for editing location and zoom in goto page actions for bookmarks and links
[PS-1970] – New “Add / Show Layers” option under the action list for bookmarks and links
[JPDF-425] – Bookmark tooltip on by default
[JPDF-370] – Bookmarks occasionally disappear when dragging and dropping/NPE
[PS-2080] – Links: Remove Checkmark and Status from links mouse context menu

Content Editing
[JPDF-433] – Add new method PDFPageAccess.setTextColor to change text color within a shape or region on a page
[PS-2421] – Document Specific: Undoing text content edit shifts text to the left

Other
[PS-2358], [PS-2359], [PS-2360], [PS-2367], [PS-673]  – Improved German, Spanish and French translations
[PS-2309] – Option to cancel printing in the print progress dialog
[JPDF-440] – Non-latin characters are now handled correctly in document properties and added to the xmp meta data using UTF-8 encoding
[JPDF-470] – In PDFPage.findText(), page number field is now returned in TextPosition objects
[JPDF-473] – Linearization code uses a static variable for PDFEncryption value which can create concurrency issues
[PS-2307] – Document Specific: Converting PDF to linearized was causing a stack overflow
[JPDF-432] – Document Specific: AppendPage() causes a corrupted document