Page not found – For Java Developers and Integrators https://kbdeveloper.qoppa.com For Java Developers and Integrators Tue, 22 Aug 2023 16:38:46 +0000 en-US hourly 1 https://wordpress.org/?v=6.1.5 PKCS12 Using “PBES2” Cipher not Support by Java Versions Below 8u301 or 11.0.1 https://kbdeveloper.qoppa.com/pkcs12-using-pbes2-cipher-not-support-by-java-versions-below-8u301-or-11-0-1/ Thu, 17 Nov 2022 11:39:40 +0000 https://kbdeveloper.qoppa.com/?p=9169 Using a PKCS12 certificate file generated by a newer version of Java (12.x.x or later) will throw an error in Java versions below 8u301 or 11.0.1 due to the new PBES2 cipher not being supported.

java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48)
	at sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters(Unknown Source)
	at sun.security.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
	at java.security.KeyStore.load(Unknown Source)
	at org.glassfish.grizzly.ssl.SSLContextConfigurator.loadBytes(SSLContextConfigurator.java:572)
	at org.glassfish.grizzly.ssl.SSLContextConfigurator.createSSLContext(SSLContextConfigurator.java:419)

See https://bugs.openjdk.org/browse/JDK-8228481 for more details.

 

How to Fix

To resolve this error you can do one of the following:

  • Update to a newer version of Java that supports the new PBES2 cipher
  • Use “legacy” options when generating your certificate (if cert tool supports it). For example if using OpenSSL 3.0.x to create your certificate add the “-legacy” argument.
]]>
Integration with OAuth Microsoft Exchange Email to process incoming PDF documents https://kbdeveloper.qoppa.com/integration-with-oauth-microsoft-exchange-email-to-process-incoming-pdf/ Tue, 15 Nov 2022 16:24:40 +0000 https://kbdeveloper.qoppa.com/?p=9141 In its Workflow module, PDF Automation Server has an input node called “Email Attachment” which allows to check incoming emails regularly, extract / download the files attached to the email and feed them into a document workflow. Until recently, this was working with Microsoft Exchange Online (the mail server for Office365 Outlook) when using basic authentication for POP3 or IMap protocol. However, Microsoft Exchange Online removed basic authentication starting October 01 2022 and now requires third party applications to login using the OAuth protocol.

In PDF Automation Server v2022R1.04, we implemented the integration to login to Microsoft Exchange Online using OAuth authentication.

Below are the instructions to setup with new outlook account

1. If you don’t already have an outlook account, create new outlook account from https://outlook.live.com/owa/

2. If you don’t already have an Azure account, create Azure account https://azure.microsoft.com/free/ using the email address in step1.

3. Followed https://learn.microsoft.com/en-us/graph/tutorials/java?context=outlook%2Fcontext&tabs=aad&tutorial-step=1 to register the app in the portal

App Registrations in Azure
Register Your Application

Make sure that:

  • Supported account types: Accounts in any organizational directory and personal Microsoft account
  • Redirect URI: Public client/native (mobile & desktop) and enter http://localhost:56553

4. After finishing app registration, you will get an Application client ID.

5. Use the Client ID in the property panel of the Email Attachments Node in the Workflow Module of PDF Automation Server

Email Attachment Node – Microsoft OAuth Settings

6. Click on the login button. This will shows the system browser where you can enter your credentials, then the token cache will be saved on the server. The refresh token lasts for 90 days and it replaces itself on every use. This probably means that if you leave the flow inactive for 90 days then the token will expire.

]]>
“Unable to acquire access token” error when using Microsoft OAuth https://kbdeveloper.qoppa.com/unable-to-acquire-access-token-error-when-using-microsoft-oauth/ Fri, 11 Nov 2022 19:16:06 +0000 https://kbdeveloper.qoppa.com/?p=9131 Q: When I connect to a Windows machine from a Linux machine using PAS Manager, login with Microsoft OAuth and it shows error “Unable to acquire access token – Unable to open default system browser”. How can I solve this issue?

A: This error displays when PAS Manager is having difficulty to get credentials information from Microsoft website using default web browser on Linux (in this case Firefox)

To solve this issue, you need to open few websites through command line using Terminal. We use www.qoppa.com as an example

  • Open Terminal
  • Enter xdg-open “https://www.qoppa.com/”

    and notice that it will launch Firefox web browser and go to www.qoppa.com
  • Close Firefox browser
  • Enter /snap/bin/firefox “https://www.qoppa.com/”

    and notice that it will launch Firefox web browser and go to www.qoppa.com again
  • Close Firefox browser
  • Go back to PAS Manager and try to login with Microsoft Auth again and it should take you Microsoft website where you can enter your credentials, then the token cache will be saved on the server.
]]>
Maven dependency for Qoppa Java PDF SDK API 2022R1 https://kbdeveloper.qoppa.com/maven-dependency-qoppa-pdf-sdk-2022r1/ Tue, 01 Nov 2022 13:31:05 +0000 https://kbdeveloper.qoppa.com/?p=9340 Qoppa repository configuration / location to specify in your Maven pom.xml :


 
   QoppaSoftware
   Qoppa Software
   https://download.qoppa.com/maven
   
 

Find below the Java API dependency to add to your pom.xml file for Qoppa’s PDF SDK v2021R1.

jOfficeConvert Word & Excel to PDF Conversion API


  
    com.qoppa
    jOfficeConvert
    2022R1.06
  

jPDFEditor PDF Editor API
Also contains jPDFNotes, jPDFViewer


    com.qoppa
    jPDFEditor
    2022R1.06
  

jPDFProcess PDF Processing API
Also contains jPDFAssemble, jPDFImages, jPDFFields, jPDFPrint, jPDFSecure, jPDFText


  
    com.qoppa
    jPDFProcess
    2022R1.06
  

jPDFOptimizer PDF Optimizer API


  com.qoppa
  jPDFOptimizer
  2021R1.08

jPDFPreflight PDF Preflight API


  com.qoppa
  jPDFPreflight
  2022R1.06

jPDFWeb PDF to HTML Conversion API


  com.qoppa
  jPDFWeb
  2022R1.06

Combined Jar includes all jPDF libraries + jOfficeConvert


  com.qoppa
  jpdfallandoffice
  2022R1.06

]]>
Create an Automated Workflow to Import Data into an XFA Dynamic Form https://kbdeveloper.qoppa.com/automated-workflow-import-data-pdf-form/ Sun, 09 Oct 2022 20:30:58 +0000 https://kbdeveloper.qoppa.com/?p=9106 Here is a sample PDF Automation Server workflow to import data into an interactive PDF Form (including a XFA dynamic form).

The format to import into an XFA dynamic form is XDP data which is a basic xml file.

1) Gather your Data in XDP format

To identify what the XDP file should look like for your specific dynamic XFA form, fill your form in Adobe Acrobat and then export the data to XDP. You will need to extract / gather the data you need from your database and create an XDP file for each record / each form you want to fill.  It could be a customer, a patient, anything…  Make sure to test the XDP file you create in Adobe Acrobat and verify that all the fields are imported correctly.

2) Create a Workflow in PDF Automation Server

Sample automated flow in PDF Automation Serve to import data into a Dynamic XFA Form
  • Source:  A watch a folder for XDP files that you can drop in there
  • A Process Node to import the form fields from an XDP file
  • Choose the option Message Payload into local PDF since you are filling the same static PDF form with incoming XDP files
  • Output: Save to a new PDF file (Or Email, etc…)

This is a sample flow and the source and the output can be edited to match any use case, for instance to receive data through http post or send resulting files by email.

3) Feed in Data Files to the Workflow

Finally, you will need to figure out how to feed in these individual XDP files automatically to the PDF Automation Server workflow.

]]>
v2022R1 jOfficeConvert Build Notes https://kbdeveloper.qoppa.com/v2022r1-jofficeconvert-build-notes/ Wed, 21 Sep 2022 14:19:14 +0000 https://kbdeveloper.qoppa.com/?p=9095 Below are the build notes for v2022R1 Fix Branch / Minor Releases for Qoppa’s PDF Library jOfficeConvert that converts Microsoft Word documents and Excel worksheets to PDF in Java.

v2022R1 Download Links

Version v2022R1.12 – Aug 22 2023
JOFFICE-685: Document specific: numbers are cut-off when converting word to PDF

Version v2022R1.11 – Jul 27 2023
JOFFICE-684: Word to PDF conversion – It is missing descriptions for some output PDFs

Version v2022R1.10 – Jul 26 2023
JOFFICE-683: document specific: It is missing table when converting to PDF

Version v2022R1.06 – April 01 2023

JPDF-1994 – Cleanup replacement fonts
Internal maintenance – remove unused imports
Homogenize build number across libraries

Version v2022R1.05 – March 03 2023

JOFFICE-651: Doc Specific – Unable to layout document, measurement code gets stuck on a page
JOFFICE-652: Word to PDF: Font matching to include substitute fonts within WMF / EMF format

Version v2022R1.04 – January 12 2023

JOFFICE-645 – Support for diagonal cell “borders” in Docx to PDF conversion
JOFFICE-644 – Add some support for the legacy/deprecated VML format
JOFFICE-642 – jOfficeConvert JavaDoc : Duplicate classes

Version v2022R1.03 – October 20 2022
JOFFICE-641 – Improve the algorithm to justify text to match newer versions of MS Word when converting Word to PDF and allow less space between words when appropriate to fit more words on a line.

Version v2022R1.02 – September 23 2022
JOFFICE-638 – Convert Word to PDF: Handle Theme Font Languages for Arabic, Asian, etc..
JOFFICE-638 – Convert Word to PDF: Negative positioning of an Image within a Table Cell

Version v2022R1.01 – September 21 2022
JOFFICE-637 – Document Specific – Handle NullPointerException when converting a Word file to PDF
JOFFICE-636 – Word to PDF: Anchored images not positioned correctly due to clipping

Version v2022R1.00 – September 02 2022
Main Release. See v2022R1 Main Release Notes

]]>
v2022R1 PDF Library & Component Build Notes https://kbdeveloper.qoppa.com/v2022r1-pdf-library-component-build-notes/ Wed, 14 Sep 2022 21:07:55 +0000 https://kbdeveloper.qoppa.com/?p=9039 Below are the build notes for v2022R1 Fix Branch / Minor Releases for the following Qoppa PDF libraries and components.

v2022R1 Jar Download Links

Java PDF Components:
jPDFViewer, jPDFNotes, jPDFEditor

Java PDF Libraries deriving from jPDFProcess:
jPDFProcess
jPDFAssemblejPDFFieldsjPDFImages, jPDFPrintjPDFSecurejPDFText

Other Java PDF Libraries:
jPDFOptimizer, jPDFPreflight, jPDFWeb

Version v2022R1.08 – May 23 2023
JPDF-2000 – jPDFPreflight – Memory Leak due to use of static class when font cmap table contained multiple encodings
JPDF-1999 – Exception in jPDFViewer when customer application uses rhino and calls ContextFactory.initGlobal
JPDF-1998 – Document Specific: Avoid infinite loop in case where form field widget is set as its own parent
JPDF-1989 – Document Specific: Extracted page still contains images from other pages of the original PDF. Clean up resources saved in PageTreeNode

Version v2022R1.07 – May 06 2023

JPDF-1998 – Document Specific: Avoid infinite loop in case where form field widget is set as its own parent
JPDF-1993 — Font Specific: Error rendering the attached PDF on Linux due to not using Unicode Mapping
Update jPDFDemo to use latest installer version to support latest USB key signing algorithm

Version v2022R1.06 – April 01 2023

PS-6603 – Resolve filename and extension issues on Linux when filename contains “.”
PS-6678 – JavaScript not calculating fields – Event.value not being modified and re-setting the same value after calculation
PS-6668 – Incorrect logic when setting JavaScript field.display value
PS-6672 – Document Specific: Fix image location
PAS-1210 – PDF to SVG: Add new option SVGOption setDisableGoToPageLinks()
JPDF-1994 – Cleanup replacement fonts
Internal maintenance – remove unused imports
Homogenize build number across libraries

Version v2022R1.05 – March 13 2023

JPDF-1990 – Added class cast protection and set signature as invalid if the entries in the signature field dictionary are invalid
PS-6588 – Document Specific: Digital Signature not validated correctly (Digital Signature Service)
PS-6635 – Document Specific: Signature marked as “Revoked” instead of “Not verified”. Revocation has to come from issuing CA in the Certificate Revocation List

Version v2022R1.04 – February 24 2023

PS-6634 – Unable to save document due to link annotation to a remote document missing file specification
JPDF-1983: Nullpointerexception when running Optimizer Audit Function on document with JS when rhino.jar is missing
JPDF-1984 – JavaScript NoSuchMethodError when rhino is incompatible when opening any PDF + Improve error message logs
PS-6590 – Handle null resource in type3 font which was generating a ClassCastException
PS-6604 – PDF Components: Render first page faster on documents with lots of links / destinations
PAS-1199 – PDF Components: Allow text size for text box annotations to go down to 6 from 8 at the moment
PS-6618 – PDF Components: Regression – Exception when Selecting IRT Group Annotations
PS-6585 – PDF Components: Bad focus issue when doing undo while editing a text field
PS-6460 – PDF Components: Add support for European local & number format in distance annotation length field format
JPDF-1960 – jPDF Demo Sample Application – Add more substitute / replacement fonts to avoid font errors when converting to PDF/A on Linux
JPDF-1976 – jPDF Demo Sample Application – Improve links to download PDF library jar files
JPDF-1985 – jPDF Demo Sample Application – Log File Improvements

Version v2022R1.03 – November 29 2022

PS-6548 – Improve default properties for checkbox and radio button fields
JPDF-1971 – jPDFDemo – Convert To & From Images – Add All the Supported Image Extensions
JPDF-1970 – Option to set monochrome color for the icons in the swing component through IconSettings.setUseMonochromeIcons(true)
PAS-1179 – XML License files – Change signature hash

Version v2022R1.02 – November 11 2022

JPDF-1965 – Document Specific: ClassCastException when opening documents with null cropbox entry
PS-6533/PS-5758 – Match content edit tool’s ‘can edit text’ verification to that of the edit text dialog
JPDF-1968 – jPDFDemo Sample Applications: include libraries in the lib folder instead of the jar; was missing substitute fonts and barcode library
JPDF-1951 – Documentation: PDFXConversionOptions – Missing parameters info on setImageCompression
JPDF-1955 – Many “auto” test suite documents “succeed” on PDF/X conversion but fail validation
JPDF-1954 – Document Specific: NPE converting to PDF/X-3 due to error when copying name of color space
PS-6470 – Document Specific: PDF/X Conversion not working
PS-6483 – Document Specific: NPE converting to PDF/X-3 due to error when copying name of color space
PS-6515 – Error after converting attached document to PDF/X-1
PS-6482 – default pdf/x output profile

Version v2022R1.01 – September 14 2022
PS-6450 — PDF/X-4 not validating document correctly – pdfxid schema needs to be considered predefined
JPDF-1945 — For symbolic true type fonts, use Windows Symbol cmap subtable instead of Mac Roman
JPDF-1940 — Add the PrintAsImage DPI as a parameter to the printAsImage methods
Updated product versions in POM files

Version v2022R1.00 – September 02 2022
Main Release. See v2022R1 Main Release Notes

]]>
v2022R1 PDF Automation Server Release Notes https://kbdeveloper.qoppa.com/v2022r1-pdf-automation-server-release-notes/ Mon, 12 Sep 2022 21:28:32 +0000 https://kbdeveloper.qoppa.com/?p=9067 Below are the release notes for Qoppa’s PDF Automation Server 2022R1.

Download PDF Automation Server v2022R1

This version comes with a lot of new nodes in the workflow / flowchart module, a new pluggable Authenticator Module for REST API and many enhancements to the server, and the client manager. It’s never been easier to automate your PDF documents processes and flows on the server!

Note: License keys for v2022R1 are different than for v2021R1. Customers upgrading to the latest version will need to contact Qoppa’s licensing team to obtain new license keys.

2022 Version Highlights:

  • A new pluggable Authenticator Module for REST API
  • New nodes added to Workflow Module: XSLT Transformation, Edit PDF Document Properties, Merge PDFs, Convert Any to PDF (Converts Excel, Word, Images, Text & PowerPoint to PDF),  Advanced PDF Text Extraction, PDF Table Extraction, PowerPoint to PDF Conversion
  • Web PDF Viewer & Editor: New Comment & File Attachment Panes
  • Additional preflight verification profiles for PDF/X4 and PDF/X5
  • All Improvements added to Qoppa’s underlying Java PDF SDK

Version v2022R1.15  – July 26, 2023
Update product versions to v2022R1.15 for pas update
PAS-1245 Barcode number is not extracted correctly
PAS-1244 Properties and Delete buttons are not working on mobile web viewer

Version v2022R1.14  – Jun 30, 2023
Update product versions to v2022R1.14 for pas update
PAS-1242 Mobile web viewer is not working properly

Version v2022R1.13 – June 14 2023

PAS-1240- PAS Web Viewer: comment panel is not aligned correctly when resizing browser window
PAS-1235 – Issue with clipping / bounding box when converting type 3 font to SVG / HTML
JOFFICE-682-Document Specific: Word documents not converted correctly

Version v2022R1.12 – May 24 2023
PAS-1236 – Comments not showing in Web PDF Viewer due to XFDF encoding error when there are annotations with duplicate names
PAS-1235 – Issue with clipping / bounding box when converting type 3 font to SVG / HTML
PAS-1233- Logic Node Condition on User Variable Will Sometimes Reset
PAS-1238 – Support emails from PAS Manager not received when server log are too large
PAS-1218 – Exit Redaction tool when hitting Esc

Version v2022R1.11 – April 14 2023

PAS-1227 – Install Tesseract dependency when missing on installation
JPDF-1993 – Font Specific: Error rendering the attached PDF on Linux due to not using Unicode Mapping

Version v2022R1.10 – March 30 2023

PAS-1212 – Web Viewer: Thumbnail Generated Error “Maximum Call Stack Size Exceeded”
PAS-1211 – Web Viewer: Moving pages in thumbnail pane does not work well in continuous view
PAS-1210 – Web Viewer layout issue after clicking on goto page link
JPDF-1994 – Cleanup Replacement fonts
PS-6672 – Document Specific: Fix image positioning issue
PS-6678 – JavaScript not calculating fields through Event.value

Version v2022R1.09 – March 08 2023

PAS-1207 Web PDF Viewer: Only load bookmarks if bookmark pane is enabled
PAS-1206 Web PDF Viewer: Expand bookmarks tree only as needed on the client side in JavaScript to avoid delay on opening
PAS-1211 – Web PDF Viewer: Moving pages in thumbnail pane does not work in continuous page view mode
PS-6588 – Document specific: Digital Signature not validated
PS-6635 – Doc Specific – Signature marked as “Revoked” instead of “Not verified”: Revocation has to come from issuing CA in CRL (Certificate Revocation List)
JPDF-1990 – Invalid entry in signature dictionary causes error on opening document
JOFFICE-651 – Word to PDF – Document Specific – Unable to layout document, measurement code got stuck on a page
JOFFICE-652 – Word to PDF: Font matching within WMF / EMF format to also include substitute fonts
Internal – Remove unused jar in installation folder

Version v2022R1.08 – February 13 2023

PAS-1200 FTP Output: Filename without extension are saved with an extra “.”
PAS-1199 Web PDF Editor: Allow text size for text box annotations to go down to 6 from 8 at the moment
PAS-1198 Web PDF Editor: Black Border showing around Text Box Annotation after Creation
PAS-1191 Http Request Node: Handle optional charset parameter from Content-Type header
JPDF-1983 – NullPointerException when running Optimizer Audit Function when rhino.jar is missing

Version v2022R1.07 – January 12 2023

PAS-1197 – Handle null resource in type3 font which was generating a ClassCastException
JOFFICE-644 – Word to PDF: Add some support for the legacy/deprecated VML format
JOFFICE-645 – Word to PDF:  Support for diagonal cell “borders”
PAS-1184 – Web PDF Editor: Changing border property for textbox annotations is not always saving

Version v2022R1.06 – December 19 2022

PAS-1188 – Add REST documentation and sample for adding specified signature with ID
PAS-1189 – Resize PDF can give a nullpointer exception when PDF contains a freetext annot
PAS-1185 – Web PDF Editor renders bubble annotations on text boxes and sticky notes when it shouldn’t
PAS-1184 – Web PDF Editor: Changing border property for textbox annotations is not always saving
PS-6548 – Document Specific:  Improve default properties for checkbox and radio button
JPDF-1960 – Fix an issue identifying TimesNewRoman sometimes

Version v2022R1.05 – November 28 2022

PAS-1183 – Sign PDF Node – Option to set a timestamp server length estimate
PAS-1182 – Option to set timestamp server length estimate
PAS-1135 – Email attachments:  New OAuth Type for Microsoft Office365 – Add Tenant ID
PAS-1181 – After an error occurs during data transfer, temp files were not always deleted
PAS-1179 – Fix issue with XML License files and signature hash

Version v2022R1.04 – November 15 2022

PAS-1135 – Email attachments: New OAuth Type for Microsoft Office365 / Exchange Online in addition to POP and IMAP
PAS-1180 – Error in Preflight REST API Documentation – remove “-results” for preflight call
PAS-1178 – JavaNode – Add documentation and samples for adding and using variables
PAS-1177 – Web PDF Annotator: Enhancements to Polygon & Cloud Annotations to help complete the drawing
PAS-1173 – Web PDF Annotator: Save button not enabled after editing some annotations properties
PAS-1171 – Add option to wait for “last modified time” before attempting to acquire a file to avoid file conflicts
PAS-1170 – Regression – Error loading page in specific document due to an invalid character
PAS-1169 – Web PDF Annotator: Review Default Browsing Folder when Adding File Annotations
JPDF-1965 – Document Specific: ClassCastException when opening documents with null cropbox entry

Version v2022R1.03 – October 18 2022

PAS-1172 – Layout issue on Mobile Web Viewer thumbnail pane
PAS-1151 – Option to turn off smoothing for Ink / Pencil annotation on PAS Server
JOFFICE-641 – Converted PDF document justified text does not fit as many words as newer MS Word version (smaller space character)

Version v2022R1.02 – October 09 2022

PAS-1166 – Web Editor: Copy/paste multiple annotations broken
PAS-1164 – Web Editor: File Attachment Annotations not showing under the comments pane
PAS-1164 – Set Creator value for file attachment annotations
PAS-1164 – Change default annotation creator name to “User”
PAS-1167 – After applying redactions on any given page, the viewer jumps to the first page of the doc
PAS-1160 – Remove error in log when clicking on text without dragging when adding a redaction annotation
JOFFICE-638 – Convert Word to PDF: Handle Theme Font Languages for Arabic, Asian, etc..
JOFFICE-638 – Convert Word to PDF: Handle Negative positioning of an Image within a Table Cell
PS-6483 – Document Specific: Fix Null Pointer Exception when converting to PDF/X-3 due to error when copying name of color space

Version v2022R1.01 – September 22 2022

PAS-1156 – Error Rendering Page when displaying a PDF form containing an empty stream for a Form XObject
PAS-1155 – XML to JSON node: UTF-8 data does not work reading the XML and writing the JSON
PAS-1154 – JSON to XML Node: Always add default “” node
PAS-1153 – JSON to XML Node: Add UTF8 encoding and XML header
PAS-1149 – Paper size in Print node gets reset
Other fixes that made it to our underlying PDF SDK

Version v2022R1.00 Main Release – September 02 2022

Workflow / FlowChart Module
PAS-915- New Node! PAS Node – XSLT Transformation Node
PAS-613- New Node! Edit PDF Document Properties Node
PAS-1090- New Node! Assemble PDF Node: Assemble all PDFs contained in a zip file using alphabetical or last modified date order
PAS-1091- New Node! Convert Any to PDF Node (Converts Excel, Word, Images, Text & Powerpoint to PDF)
PAS-977 – New Node! Advanced PDF Text Extraction
PAS-979 – New Node! Node for Table Extraction similar to our Area Text Extraction
PAS-991 – New Node! Add PowerPoint to PDF to PDF Automation & freepdfonline
PAS-1055- Review Command Line node options
PAS-1047- HTTPListenerNode: Add validation for SSL configuration

PAS-1035- QHintTextField doesn’t work with variables
PAS-667- Add support for page labels in node settings
PAS-1111- Add BCC field to Send EMail node
PAS-1085- Changes in email node message body field does not mark flow as modified
PAS-696- Default value for “msg.payloadName” variable when value is unknown
PAS-1139- User Interface PDF to PDF/A node properties panel layout issues
PAS-1087- Handle better AccessDeniedException when accessing files in a watch folder – do not consider it as critical error
PAS-1000- Implement branching based on PDF permissions (added to pdf variable list)
PAS-18 – Add option to handle unrecognized files in folders
PAS-103 – Add PDF/X4 and X5 verification to Preflight Node
PAS-1126 – Fix issue in evaluation of Logic node condition
PAS-1124 – Change Default Watch & Email Delay from 1 Second to 5 Seconds
PAS-1123 – Regression: JSON to XML Node is now missing

REST API 
PAS-871 32713 – New! Pluggable Authenticator Module for REST API
PAS-1088 – Update REST endpoint to create sessions to take authorization in the header
PAS-425 – Generate OpenAPI specs for REST API (raml, yaml, json)
PAS-1074 – Add HTML / SVG Conversion Options as General Settings in PAS
PAS-1080 – Add REST resource and APIs to work with file attachments
PAS-1081 – Query File Attachments
PAS-1100 – Rest API: Use Filename for Title of PDF/A Validation Report when Document Title is not set
PAS-407 – Show better error when upload fails due to no permission

PDF Web HTML Viewer / Annotator / Editor 
PAS-1053 – Mobile Web Viewer: Clicking X on Annotation Properties Dialog does not always Close the Dialog on Android
PAS-1093 – Error opening a PDF form + review locking of files in PAS Web Viewer
PAS-991 – Web PDF Viewer & editor: New File Attachments Pane
PAS-413 – Web PDF Viewer & Editor: New Comments Pane
PAS-1058 – Do not print pages that were just deleted
PAS-1119 – WebViewer: Setting annotation properties doesn’t always work
PAS-1144 – Option to turn off smoothing of pencil annotation in Web PDF Annotator
PAS-1110 – Regression: Drag & Drop thumbnails is broken in the web viewer
PAS-968 – Web PDF Editor: Added Document Modification Listeners to Mark a Document as Modified Felipe

Installation
PAS-1121 – Remove Linux 32bit Installer for PDF Automation Server (finally!)
PAS-1067 – Update installation should install in the existing directory, if any

Manager / Client
PAS-1138 – Add a Robots.txt file in the html folder of Qoppa PAS
PAS-1057 – UI updates for storage configuration
PAS-947 – Remove Jobs Module from PAS (replaced by the more powerful Workflow Module)
PAS-1101 – Change links for private domain to http instead of https to avoid getting a privacy warning
PAS-1104 – Improve Recent Events Table to handle very large number of logs
PAS-1099 – Throw Exception to User when SSL Config Fails
PAS-1109 – Error displays when checking “StartTLS” option: Update Version of Java mail + Use app passwords with gmail and yahoo
PAS-1112 – Fix issue with modal dialogs in PAS (makes the main application hide behind other application windows)|

Server
PAS-1102 – Minimize memory usage when working with logs database to avoid event logs not showing in PAS Manager
PAS-1056 – Error handling for misconfigured alfresco
PAS-1103 – Keep the last 10 console log files for PAS
PAS-1086 – Change variable $[sys.env(VAR_NAME)] to work with expression language

+ All improvements added to the underlying Qoppa’s Java PDF Library v2022R1.

]]>
v2022R1 PDF Library & Component Release Notes https://kbdeveloper.qoppa.com/v2022r1-pdf-library-component-release-notes/ Fri, 02 Sep 2022 21:05:51 +0000 https://kbdeveloper.qoppa.com/?p=9040 Original Release Date: September 02 2022
Version number: v2022R1

v2022R1 Jar Download Links

Java PDF Components:
jPDFViewer, jPDFNotes, jPDFEditor

Component API Changes (from previous version)

Java PDF Libraries deriving from jPDFProcess:
jPDFProcess
jPDFAssemblejPDFFieldsjPDFImages, jPDFPrintjPDFSecurejPDFText

Library API Changes (from previous version)

Other Java PDF Libraries:
jPDFOptimizer, jPDFPreflight, jPDFWeb
jOfficeConvert (API Changes from previous version)

Note: Customers will need new license keys from upgrading from v2021R1 or earlier. Contact Qoppa’s license team so we can issue new license files for you.

New Version Highlights:

* Full Support for Java 17 including 4k support. Our PDF SDK is still compiled in Java 8 in order to guarantee back compatibility as many companies are still running in Java 8, Java 11 or Java 16.

* A new friendly and combined demo / sample application allows customers to evaluate all the functionality available in our PDF libraries and components in one place.

* Many enhancements to MS Office to PDF conversion engine for Word to PDF, Excel to PDF and PowerPoint to PDF conversions. We are now packaging with replacement fonts for the most common Microsoft Office fonts so that correct font matching occurs even on the Linux platform. Selecting or extracting Arabic text from converted PDF documents is now possible due to the added support for Arabic Unicode Mapping. Auto-size table are now converted with better accuracy.

* Enhanced PDF components with faster multi-threaded rendering and improvements to the functionality and to the user interface. New option to enhance thin lines allowing for better rendering of architectural plans and construction drawings at various zoom levels.  A new permissions pane on the left side displays document security and restrictions. Colorful items in the comments list allows to easily distinguish various annotations. Improved bookmarks rendering and manipulation.

* Improved support for LTV enabled and PAdES signatures. A new public API was implemented to verify digital signature information in order to apply B-LT and B-LTA signatures. PAdES information (Signature Created by and PAdES Level) is now added to signature details so digital signatures can be recognized as PAdES.

* In Preflight, added PDF-X1 and PDF/X3 conversion as well as multiple validation profiles (list them by looking under PDF Studio).

* Automatically auto detect and apply page rotation when performing OCR to straighten up rotated documents while recognizing text content.

 

New Version Details:

General
JPDF-1893 – Full Support for Java 17 in addition to all previous Java versions, including 4k support
JPDF-1902 – OCR Function: Add getVersion, Orientation, Line Direction and Deskew Angle to OCR – See OCROptions.setRotatePages() and OCRPageResults
JPDF-1874 – Added methods to get the position of an image on the page in IImageInstance
JPDF-1729 – Consolidate all the jPDF Library Demo into One Combined Sample Application
JPDF-1819 – When creating a BufferedImage that is too large throw a PDFException instead of OutOfMemoryError

Microsoft Office File Conversion to PDF (jOfficeConvert)
JOFFICE-633 – Convert Word to PDF: Some boxes / path objects with light grey border displayed in Adobe
JOFFICE-632 – Word to PDF: Strict Open XML: Throw a warning about format not supported to avoid IllegalArgumentException during conversion
JOFFICE-631 – Word to PDF: Error handling empty numbered paragraph – “” is null
JOFFICE-628 – Word to PDF: ArrayIndexOutOfBoundsException: 12 in Paragraph Numbering
JOFFICE-625 – Fonts: No directory set in Log for Qoppa bundled fonts
JOFFICE-621 – Excel to PDF: Add setting for specifying page size and orientation
JOFFICE-620 – Word to PDF: Fix issue with a row minimum height taller than the available space (infinite loop) + validate document type
JOFFICE-617 – Word to PDF: Threading / Synchronization Issue when laying out text in resulting PDF
JOFFICE-615 – Word to PDF: Missing dots before page number in table of content and missing underline in sub-section
JOFFICE-614 – Word to PDF: Improving support for wrap margin
JOFFICE-612 – PPTX to PDF: Document Specific
JOFFICE-610 – Fonts: Missing text on conversion due to missing Symbol font: Redirect font missing error to user instead of silently failing
JOFFICE-609 – General: Fix VML shapes / text boxes alignment and positioning issues
JOFFICE-607 – Word to PDF: Alpahabets.pdf to Word conversion docx file invalid
JOFFICE-606 – Fonts: Word to PDF CLI Conversion – Varying Time based on Java Version – Font Loading Performance?
JOFFICE-605 – Word to PDF: Convert Word to PDF – Add support for Raised Position Property
JOFFICE-602 – ApachePOI library – jofficeconvert.jar xmlbeans library conflict
JOFFICE-601 – Fonts – Some Arabic text positioned incorrectly
JOFFICE-598 – PPTX to PDF: EMF in chart_table.pptx converts with the wrong scale
JOFFICE-597 – PowerPoint to PDF: Underlines too low with some text in pptx conversion
JOFFICE-591 – PowerPoint to PDF: EMF in PPT is getting clipped very slightly
JOFFICE-585 – Excel to PDF: Excel to PDF: javax.xml.bind.JAXBException Provider ContextFactory could not be instantiated
JOFFICE-583 – Fonts: Add a vm option to debug fonts used during conversion for embedding
JOFFICE-582 – Excel to PDF: Excel to PDF Support for Legacy Arabic Fonts Sultan Fonts
JOFFICE-578 – Word to PDF: Handle Arabic Unicode Map during Conversion to Allow Text Extraction
JOFFICE-576 – Word to PDF: Auto-Sized Table Width Issue for Multi-Line Cells
JOFFICE-541 – General PDF to Word Qoppa PDF library

PDF Components (jPDFViewer, jPDFNotes, jPDFEditor)
JPDF-1938 – Add a public method to disable auto creation of links on URLS
PS-5390 – Filter out comment panel search results
PS-5602 – New Document Permissions Panel
PS-5879 – New option to “Enhance thin lines” – See PDFRenderHints.setEnhanceThinLines(true)
PS-5933 – Sticky note now displays pop up note by default
PS-5393 – New “Copy note” option in annotation context menu
PS-5873 – New option to hide annotation note bubble
PS-5910 – Added “No to all” option when closing multiple tabs
PS-5644 – New options in Initial View document properties
Window Options: Resize window to initial page, Center window in screen, File name or document title
UI Options: Hide Menu Bar, Hide Toolbar, Hide window controls
PS-5707 – Some icon enhancements
PS-5670 – Updated text selection context menu options
PS-5929 – Added “Search Google for…” text select context menu option
PS-5882 – Add tooltips to bookmarks to display page info and zoom
PS-6035 – Mini toolbar: Add text color for typewriter, text box and callout + allow empty border color
PS-5983 – Update tooltip color to match selected theme
PS-3968 – Add colors for all annotation types in comments pane
Improved support for Apple M1 devices
JPDF-1825 – Multithreaded Tile Factory for up to 6x performance boost in rendering documents
JPDF-1815 – Only prompt for JavaScript when it’s encountered rather than when opening the PDF
PS-6011 – Support for new digital signature algorithms including “RSASSA-PSS” and “Skribble” for Switzerland
JPDF-1872- Fixed signature vulnerability for incremental save attack from PDF Researchers
PS-5881 – Show invalid bookmark icon when missing action or page reference
JPDF-1885 – Handle null font in typewriter annotation to avoid nullpointerexception
JPDF-1938 – Add a public method for jPDF components customers to disable auto creation of links on URLS
JPDF-1899 – Regression: Slow down when reading a PDF from a URL on-demand Resolved By Implementing Buffering
JPDF-1841 – Fix issue ResourceBundle.Control class which can not be used in Modular JRE
JPDF-1906 – Sometimes comments panel button disappears after closing the comments panel
JPDF-1834 – Oracle Forms swing events & exception when empty typewriter annotations get deleted automatically

Image Processing / Rendering / Printing (jPDFPrint, jPDFImages, jPDFProcess)
JPDF-1927 – Fix error decoding some JPEG images in attached documents
JPDF-1913 – Regression: Javascript method Doc.addField is broken
JPDF-1842 – Regression: Null pointer exception when opening list and combo field drop-down in PDF forms
JPDF-1825 – Run the tile factory in multi-threaded mode
JPDF-1919 – Change Print Settings to Scale Image to Output to Off by Default
JPDF-1914- Improve text selection issue with CJK text in tables across 2 columns

PDF Optimizer (jPDFOptimizer)
JPDF-1921 – Add method to set permissions password in jPDFOptimizer: PDFOptimizer.usePermissionsPassword (String ownerPassword)
JPDF-1837 – Add support for Lab color space to RGB when converting an image to JPEG with CS_RETAIN
JPDF-1876 – Optimizer Audit: Make sure font subsets are included in the audit
JPDF-1759 – Optimizer Auditor reports more font bytes than doc bytes
JPDF-1756 – Optimizer: Merge multiple subsets of the same font when the option to merge duplicate fonts is selected

Preflight (jPDFPreflight)
JPDF-1860 – PDF/X-3 conversion – color spaces
JPDF-1794 – Add PDF/X-4 and PDF/X-5 verification profiles
JPDF-1128 – New PDF/X Conversion
JPDF-1851 – PDF/X Conversion – font embedding
JPDF-1864 – PDF/X Conversion – halftones
JPDF-1859 – PDF/X Conversion – no Actions allowed
JPDF-1863 – PDF/X Conversion – options settings
JPDF-1852 – PDF/X Conversion – simple dictionary entry requirements
JPDF-1865 – PDF/X Conversion – transparency not allowed
JPDF-1855 – PDF/X Conversion – trapping
JPDF-1869 – PDF/A conversion doesn’t fix missing namespace prefix definitions
JPDF-1878 – PDF/X Conversion: Make sure our demo mode watermark is pdf/x compliant
JPDF-1892 – PDF/X-1 Conversion: Object streams not allowed
JPDF-1891 – PDF/X-1 Conversion: tile patterns
JPDF-1896 – PDF/X-1 Verification of TilePatterns with PaintType 1
JPDF-1905 – PDF/X-3 verification: color spaces verification rule doesn’t work correctly
JPDF-1191 – Preflight Report Improvements: Add more options to customize the report legend and results
JPDF-1915 – Validate when a color space object is missing for an image

Manipulate / Edit / Linerarize PDFs (jPDFProcess)
JPDF-1897 – Document Specific: Fast Web View Linearization conversion throws ArrayOutOfBoundsException due to issue with Catalog
JPDF-1870 – Error merging PDFs when merging tag structure when “document” node has no children
JPDF-1918 – Fix error during linearization of a PDF due to duplicate bookmark objects
JPDF-1917 – Fix error on linearization due to a left over reference of an acroform that was removed
JPDF-1847 – Fix error when merging PDF with tags when parent tree is an empty array
JPDF-1894 – Linearization/saveas fast web throws class cast exception

Digital Signature (jPDFSecure, jPDFProcess, All PDF Components)
JPDF-1845 – Update Bouncy Castle from 1.54 to 1.71 – third jar bcutil.jar is now required
JPDF-1867 – Fix Byte range error in Docusign digital signature validation by ignoring characters after %%EOF
JPDF-1872 – Fix for possible vulnerability in digital signature validation (incremental save attack)
JPDF-1168 – Add Optional PAdES information (Signature Created by and PAdES Level) in signature details so signatures are recognized as PAdES
JPDF-1676 – Enhanced support for LTV enabled signatures with a new public API to verify digital signature information in order to apply PADES Signature Level B-LT and B-LTA signatures (SignatureField.addVerificationInformation())
JPDF-1886 – Signature Validation: Show “Invalid ByteRange” when byterange is missing instead of “Document has been modified”
PS-5099 – Display Full Certificate Chain for Timestamp Authorities (TSA)

Fonts (All Libraries & Components)
JPDF-1846 – Handle UTF8 encoding in rubber stamp appearance dictionary in XFDF import file
JPDF-1764 – Add support for embedding of non-CID OpenType CFF fonts

PDF to HTML Conversion (jPDFWeb)
JPDF-1723 – Do not use the Text & Graphics Extraction permission when converting to HTML/SVG

Many other internal fixes and enhancements.

]]>
Sample Java Code to Print a PDF as Image https://kbdeveloper.qoppa.com/sample-java-code-to-print-a-pdf-as-image/ Wed, 24 Aug 2022 18:15:36 +0000 https://kbdeveloper.qoppa.com/?p=9035 Qoppa’s Java library jPDFPrint can send PDF documents to a printer with standard print commands for text, images and shapes, but sometimes it may be necessary to send PDF pages to the printer as images rather than vector content due to the issues below:

  • Occasionally, when the PDF content is very complex, some of the page content will not print on some printers. The same PDF will print correctly in other printers, and sometimes if a bit of content is modified, it will also print correctly, so this seems to be a bug related to both the printer drivers themselves and the content sent by Java.
  • When there is transparent content on PDF pages, Java printing can be inefficient both in spool file size and in printing time. So customers working with lots of documents containing transparency, for instance in the pre-press or print industry, may decide to print PDF pages as images.

Here is some sample code to send PDF pages to the printer as images using jPDFPrint:

 // Load the PDF document
PDFPrint pdfPrint = new PDFPrint("C:\\temp\\input.pdf", null);     
            
PrintSettings ps = new PrintSettings();
ps.m_AutoRotate = true;
ps.m_CenterInPage = false;
ps.m_ExpandToMargins = true;
ps.m_PrintAnnotations = false;
ps.m_ShrinkToMargins = false;
            
// Print the PDF document as an Image
// We are using the Microsoft PDF printer as an example
pdfPrint.printAsImage("Microsoft Print to PDF", ps, (PrintRequestAttributeSet) null);

The images will be set to the resolution returned by the printer. We will soon add a print settings that will allow to specify the resolution of the images sent to the printer. This was already added in our desktop application but has not been published in our public API yet.

]]>
New Flow to Create a new PDF from Extracted Pages of Incoming PDF in PDF Automation Server https://kbdeveloper.qoppa.com/new-flow-to-create-a-new-pdf-from-extracted-pages-of-incoming-pdf-in-pdf-automation-server/ Mon, 25 Jul 2022 15:18:29 +0000 https://kbdeveloper.qoppa.com/?p=9018 We’re showing here how to create a simple workflow in PDF Automation Server that is watching a folder for incoming PDF files, extracting all the pages except for the last one into a new PDF and then saving that new PDF to a file.

PDF Automation Node: Create New PDF from Extracted Pages

It’s a pretty simple flow that can be created by dragging only 3 nodes: Watch Folder, Extract Pages and Save to Files.

Watch Folder:

Watch Folder watching for incoming file in folder C:\Test\In

Extract Pages:

Extract Page Properties: Setting Page Range as a Formula

Note that a formula is used when extracting the page that uses the number of page in the incoming PDF

1-$[format(pdf.pageCount, "####")-1|####")-1]

The output of the Extract Pages Node is a PDF so you only need to save it to file.

Save File:

Save to File to Folder C:\Test\Out
]]>
Specify Page Size & Orientation when Converting Excel to PDF & TIF with jOfficeConvert https://kbdeveloper.qoppa.com/page-size-orientation-when-converting-excel-to-pdf/ Mon, 13 Jun 2022 18:19:50 +0000 https://kbdeveloper.qoppa.com/?p=8975 New in 2022. When converting Excel worksheet to PDF or to images (Tiff, jpg, etc), jOfficeConvert will use by default the paper size and orientation defined in Excel spreadsheet for the output PDF page size and orientation.

It is possible to overwrite the 2 page properties using the ExcelConvertOptions. Here is some sample Java code on how to do so:

// create new ExcelConvertOptions object
ExcelConvertOptions options = new ExcelConvertOptions();
		
//The page size override Dimension's parameters must be specified in 1/72 inch sized points.
final int PPI = 72;
// Legal is 8.5" wide by 14" height. To convert to points multiple inches by PPI (72).
options.setPageSizeOverride(new Dimension((int) (8.5 * PPI), 14 * PPI));
		
// print in landscape. i.e. the output pages will actually be 14 inches wide and 8.5 inches height.
options.setPageOrientationOverride(PageOrientation.Landscape);
		
// Load the document
ExcelDocument ed = new ExcelDocument(in, options);
		
// Save the document as a PDF file
ed.saveAsPDF("legalLandscape.pdf");
		
//Many standard pages size dimensions are specified in milimeters rather than inches
//For example A4 is defined as 210 mm wide by 297 mm high.
// we can define a conversion factor from Points Per Inch to Points Per Milimeter as:
final float PPMM = 72 / 25.4f;
// then set the A4 dimension like so (might be a good idea to round rather than simply truncate to an int):
options.setPageSizeOverride(new Dimension(Math.round(210 * PPMM), Math.round(297 * PPMM)));

// open the Excel document with options	
ed = new ExcelDocument(in, options);

// Convert and save it as PDF
ed.saveAsPDF("A4Landscape.pdf");
		
//Also there is an enum type in ExcelConvertOptions that defines some standard paper sizes.
// These enum values can be used for convenience to obtain the corresponding Dimension instance,
// rather than having to enter the width and height explicitly.
//For example, to specify an page size override of Letter:
options.setPageSizeOverride(PageSize.Letter.toDimension());
		
// open the Excel document with new options
ed = new ExcelDocument(in, options);

// Convert and save it as PDF
ed.saveAsPDF("letterLandscape.pdf");

Note that by default the override page size and override page orientation values are set to null.

To get the page dimension for standard page formats, use the “toDimension” method of the PageSize enumeration:

Dimension pageLetterDim = PageSize.Letter.toDimension();
Dimension pageLetterSmallDim = PageSize.LetterSmall.toDimension();
Dimension pageTabloidDim = PageSize.Tabloid.toDimension();
Dimension pageLedgerDim = PageSize.Ledger.toDimension();
Dimension pageLegalDim = PageSize.Legal.toDimension();
Dimension pageStatementDim = PageSize.Statement.toDimension();
Dimension pageExecutiveDim = PageSize.Executive.toDimension();
Dimension pageA3Dim = PageSize.A3.toDimension();
Dimension pageA4Dim = PageSize.A4.toDimension();
Dimension pageA4SmallDim = PageSize.A4Small.toDimension();
Dimension pageA5Dim = PageSize.A5.toDimension();
Dimension pageB4Dim = PageSize.B4.toDimension();
Dimension pageB5Dim = PageSize.B5.toDimension();
]]>
PAdES PDF Avanced Electronic Signatures Support in Qoppa PDF SDK https://kbdeveloper.qoppa.com/pades-pdf-avanced-electronic-signatures-support-in-qoppa-pdf-sdk/ Fri, 10 Jun 2022 16:15:37 +0000 https://kbdeveloper.qoppa.com/?p=8971 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 less common):
• B-LT PAdES signatures
• B-LTA PAdES signatures
• QES signatures

We are looking to adding support for the additional types in the coming version.

]]>
Windows Font Substitutes for Linux When Converting Microsoft Documents to PDF https://kbdeveloper.qoppa.com/windows-font-substitution-for-linux-when-converting-ms-documents-to-pdf/ Tue, 15 Feb 2022 23:09:58 +0000 https://kbdeveloper.qoppa.com/?p=8901 When running our library jOfficeConvert to convert Word, Excel or PowerPoint documents to PDF, some of the Microsoft Windows fonts may be missing on the machine when running on Linux or Unix servers. We have done some research to identify good substitution fonts and have implemented a mechanism to specify font substitutes within our library.

The suggested font substitutions below are meant to offer possible metric compatible font substitutions for Microsoft fonts. These fonts are specifically designed to be metric compatible with their corresponding Microsoft fonts. The substitutions used here are based on information from this webpage: https://wiki.archlinux.org/index.php/Metric-compatible_fonts

Some of these replacement fonts can be found under the “fonts” folder of our sample demo application after you download and install it on your machine.

Note: the sample above is showing how to set replacement font when converting Word to PDF but it can be easily edited to set replacement fonts when converting from Excel to PDF or converting PowerPoint to PDF.

// This Java Sample Program Converts a Word Document to PDF
// Using the specified substitute fonts if the Microsoft Office fonts are not found on the machine
						
// create a new instance of WordConvertOtions
WordConvertOptions options = new WordConvertOptions();
			
// assign any substitutions using the font family names
			
//Microsoft Office Fonts
// false indicate that the substitution only happens if the original font is not found on the machine
options.setFontSubstitute("Calibri", "Carlito", false);
options.setFontSubstitute("Cambria", "Caladea", false);
options.setFontSubstitute("Courier New", "Cousine", false);
			
//Other common Microsoft fonts
options.setFontSubstitute("Arial", "Arimo", false);
options.setFontSubstitute("Georgia", "Gelasio", false);
// the Liberation font is not shipped with our demo application
options.setFontSubstitute("Arial Narrow", "Liberation Sans Narrow", false);
options.setFontSubstitute("Times New Roman", "Tinos", false);
options.setFontSubstitute("Symbol", "Symbol Neu", false);
options.setFontSubstitute("Wingdings", "URWDings", false);									
			
// Load the document with the options instance
WordDocument wd = new WordDocument("input.doc", options);
			
// Save the document as a PDF file
wd.saveAsPDF("output.pdf");

You can either install these fonts on your Linux machine directly or add the font files to a folder and make that folder accessible to jOfficeConvert during font discovery using the following static method:

WordDocument.setUserFontDirectories(List dirs);
]]>
Debug embedded font option when converting Word Excel Powerpoint to PDF https://kbdeveloper.qoppa.com/debug-embedded-fonts-when-converting-word-excel-powerpoint-to-pdf/ Fri, 11 Feb 2022 21:50:28 +0000 https://kbdeveloper.qoppa.com/?p=8894 When jOfficeConvert is set to embed fonts, we will attempt to find the best matching font file available on the system. Sometimes we can’t always find the best match and alternatives will be used. To obtain more detailed logging on the process and details for each attempt to find a matching font turn on the qoppa.debug.embedfont option.

Text runs inside a Microsoft Office program typically specify a font by name with a String and boolean properties that indicate whether to use Bold and/or Italic faces. Sometimes an alternative font name is also provided by the Office document, but not necessarily.

Also, via the jOfficeConvert options, a user may specify specific font names to be used either as backups or preferred substitutions for other named fonts, if in case the font in the Office document may either be unavailable on the local system or not preferred by a user.

In version v2022R1, we added a vm option to debug into the font selection and log detailed information about the font matching process.

To turn on font debugging when converting Microsoft Office documents to PDF using jOfficeConvert, enable to the following vm option in your Java application:

qoppa.debug.embedfont = true

When finding a font file to use for a specific named font in an Office document, jOfficeConvert will check the options to see if a substitution font has been specified and is set to be preferred over the original font. If so, we will first search for the substitution font, if not we first search for the original named font in the Office document. If a match is found by name, we will use that font file and also attempt to match the bold and/or italic settings to a specific font face file. If bold and/or italic was specified but a bold and/or italic version of the font face was not found, the plain style font file will be used with the bold and/or italic style simulated during rendering.

If a substitution font was specified but not set to preferred, we will search for the substitution font only if we fail to find a match by name on the original document font.

If a font file matching neither the original nor substitution font names could not be found, then we will check if the Office document specified an alternative font. If so the same process above will be repeated using the alternative font name.

Finally, if no matching font file could be located, the fallback font will be used if a fallback font has been specified. Otherwise, if no fallback font has been specified (or if one was specified but not found) then a PDFException will be thrown from the process.

]]>
Merging signed PDFs with Java PDF SDK jPDFProcess https://kbdeveloper.qoppa.com/merging-signed-pdfs-with-java-pdf-sdk-jpdfprocess/ Thu, 03 Feb 2022 16:28:21 +0000 https://kbdeveloper.qoppa.com/?p=8884 Q: When merging signed PDFs or assembling pages from signed PDFs, jPDFProcess is throwing permission exceptions. How can I get around this?

A: We try to prevent operations on signed PDFs that would invalidate digital signatures in PDF documents. This is so that customers do not invalidate signatures by accident.

If you do not mind preserving the signatures, you can follow the steps below:

  • Make a call to the following static method to ignore signatures:

    AllPDFPermissions.setEnforceSignaturePermissions(false);
    

    The signatures will remain but they will be invalidated.

  • Read this kb article in our developer knowledge base to clear and delete signature fields in a PDF using Java

If you do wish to preserve the signatures, you could attach the signed PDFs one by one as file attachments within another PDF document instead of merging them.

]]>
Maven dependency for Qoppa Java PDF SDK API 2021R1 https://kbdeveloper.qoppa.com/maven-dependency-qoppa-pdf-sdk-2021r1/ Wed, 05 Jan 2022 16:49:31 +0000 https://kbdeveloper.qoppa.com/?p=8851 Qoppa repository configuration / location to specify in your Maven pom.xml :


 
   QoppaSoftware
   Qoppa Software
   https://download.qoppa.com/maven
   
 

Find below the Java API dependency to add to your pom.xml file for Qoppa’s PDF SDK v2021R1.

jOfficeConvert Word & Excel to PDF Conversion API


  
    com.qoppa
    jOfficeConvert
    2021R1.08
  

jPDFEditor PDF Editor API
Also contains jPDFNotes, jPDFViewer


    com.qoppa
    jPDFEditor
    2021R1.08
  

jPDFProcess PDF Processing API
Also contains jPDFAssemble, jPDFImages, jPDFFields, jPDFPrint, jPDFSecure, jPDFText


  
    com.qoppa
    jPDFProcess
    2021R1.08
  

jPDFOptimizer PDF Optimizer API


  com.qoppa
  jPDFOptimizer
  2021R1.08

jPDFPreflight PDF Preflight API


  com.qoppa
  jPDFPreflight
  2021R1.08

jPDFWeb PDF to HTML Conversion API


  com.qoppa
  jPDFWeb
  2021R1.08

Combined Jar includes all jPDF libraries + jOfficeConvert


  com.qoppa
  jpdfallandoffice
  2021R1.08

]]>
v2021R1 jOfficeConvert Build Notes https://kbdeveloper.qoppa.com/v2021r1-jofficeconvert-build-notes/ Thu, 30 Dec 2021 22:34:46 +0000 https://kbdeveloper.qoppa.com/?p=8845 Below are the build notes for v2021R1 Fix Branch / Minor Releases for Qoppa’s PDF Library jOfficeConvert that converts Microsoft Word documents and Excel worksheets to PDF in Java.

v2021R1 Download Links

Version 2021R1.08 – April 04 2023
JOFFICE-631 – Convert Word to PDF: Error handling empty numbered paragraph – “<parameter4>” is null
JOFFICE-632 – Convert Word to PDF: Throw a warning about Strict Open XML format not supported to avoid IllegalArgumentException
JOFFICE-633 – Convert Word to PDF: Some boxes / path objects with light grey border displayed in Adobe
JPDF-1994 – Cleanup replacement fonts

Version v2021R1.07 – August 20 2022
JOFFICE-631 – Word to PDF: Error handling empty numbered paragraph – “” is null

Version v2021R1.06 – July 19 2022
JOFFICE-628 – Word to PDF: Document Specific – ArrayIndexOutOfBoundsException: 12 in Paragraph Numbering

Version v2021R1.05 – April 15 2022
JOFFICE-620 Word to PDF: Fix issue with a row minimum height taller than the available space (infinite loop) + validate document type
JOFFICE-615 – Word to PDF: Missing dots before page number in table of content and missing underline in sub-section

Version v2021R1.04 – March 06 2022
JOFFICE-614-Word to PDF conversion: Improving support for wrap margin

Version v2021R1.03 – February 02 2022
JOFFICE-611 – Convert Word to PDF – Unable to layout document due to table width is set to 0 + Improve support for multiple polygons in EMF images

Version v2021R1.02 – January 19 2022
JOFFICE-609 – Fix VML shapes / text boxes alignment and positioning issues

Version v2021R1.01 – December 30 2021
JOFFICE-605 – Convert Word to PDF – Add Support for Raised Position Property

Version v2021R1.00 – October 14 2021
Main Release, see Release Notes for v2021R1

]]>
CVE-2021-44228 – Apache Log4j Vulnerability https://kbdeveloper.qoppa.com/cve-2021-44228-apache-log4j-vulnerability/ Wed, 15 Dec 2021 15:35:51 +0000 https://kbdeveloper.qoppa.com/?p=8831 Q: Are Qoppa Software developer and server products affected by the recent CVE-2021-44228 – Apache Log4j Vulnerability?

A: NO, the new log4j vulnerability does NOT affect any of the Qoppa Software libraries, components or server products. None of Qoppa’s jar files come packaged with the vulnerable “JndiLookup.class” file, our code actually uses our own custom logger.

We have reviewed and checked all 4 of the recently reported log4j  vulnerabilities.

  • CVE-2021-44228 (CVSS score: 10.0) – A remote code execution vulnerability affecting Log4j versions from 2.0-beta9 to 2.14.1 (Fixed in version 2.15.0)
  • CVE-2021-45046 (CVSS score: 9.0) – An information leak and remote code execution vulnerability affecting Log4j versions from 2.0-beta9 to 2.15.0, excluding 2.12.2 (Fixed in version 2.16.0)
  • CVE-2021-45105 (CVSS score: 7.5) – A denial-of-service vulnerability affecting Log4j versions from 2.0-beta9 to 2.16.0 (Fixed in version 2.17.0)
  • CVE-2021-4104 (CVSS score: 8.1) – An untrusted deserialization flaw affecting Log4j version 1.2 (No fix available; Upgrade to version 2.17.0)
  • CVE-2021-44832 (not yet scored) – A remote code execution attack affecting Log4j versions from 2.0-beta9 to 2.17.0 (Fixed in version 2.17.1)

This applies to ALL Qoppa’s PDF developer and server products:

  • Java PDF SDK Libraries
    • jOfficeConvert, jPDFAssemble, jPDFFields, jPDFImages, jPDFOptimizer, jPDFPreflight, jPDFPrint, jPDFProcess, jPDFSecure, jPDFText, jPDFWeb, jPDFWriter
  • Java PDF Visual Components
    • jPDFViewer, jPDFNotes, jPDFEditor
  • PDF Automation Server
  • Android PDF Toolkit
    • qPDF Toolkit

How to check your jars for the vulnerable “JndiLookup.class” file

On Windows you can use the below command line call to search for a class name in all the available jars in the current folder and its subfolders.

forfiles /S /M *.jar /C "cmd /c jar -tvf @file | findstr /C:"JndiLookup.class" && echo @path"

 

Last Updated: Dec 29, 2021 at 08:00 am EST

 


Background & Summary

Please see additional details on this security threat below.

On December 9, 2021, a vulnerability was reported by NIST that announced a recent vulnerability (CVE-2021-44228) in the Apache Log4j library. Systems running Apache Log4j version 2.14.1 or below to be compromised and allow an attacker to execute arbitrary code. This module is found in many other software applications which means it can be found in many products and it is trivial to exploit.

More specifically, Java Naming Directory Interface (JNDI) features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from remote servers when message lookup substitution is enabled.

A more detailed explanation of this export can be found at this link: https://www.fortinet.com/blog/psirt-blogs/apache-log4j-vulnerability

CVE Details

CVE-ID

CVE-2021-442288

Description

Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property “log4j2.formatMsgNoLookups” to &#8220;true&#8221; or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class). Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting “com.sun.jndi.rmi.object.trustURLCodebase” and “com.sun.jndi.cosnaming.object.trustURLCodebase” to “false”.

Impacted Versions

Apache Log4j 2.x <= 2.15.0-rc1

CVSS: 10 (CRITICAL)

 


CVE-ID

CVE-2021-45046

Description

It was found that the fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. This could allows attackers with control over Thread Context Map (MDC) input data when the logging configuration uses a non-default Pattern Layout with either a Context Lookup (for example, $${ctx:loginId}) or a Thread Context Map pattern (%X, %mdc, or %MDC) to craft malicious input data using a JNDI Lookup pattern resulting in a denial of service (DOS) attack. Log4j 2.15.0 restricts JNDI LDAP lookups to localhost by default. Note that previous mitigations involving configuration such as to set the system property `log4j2.noFormatMsgLookup` to `true` do NOT mitigate this specific vulnerability. Log4j 2.16.0 fixes this issue by removing support for message lookup patterns and disabling JNDI functionality by default. This issue can be mitigated in prior releases (<2.16.0) by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).

Impacted Versions

Apache Log4j 2.x <= 2.15.0-rc1

CVSS: 3.7 (Low Severity)

]]>
Automate PDF Document Separation with Split Pages Node https://kbdeveloper.qoppa.com/automate-pdf-document-separation-with-split-pages-node/ Fri, 19 Nov 2021 22:23:24 +0000 https://kbdeveloper.qoppa.com/?p=8674 PDF documents can be split various different ways in Qoppa’s PDF Automation Server using the Split Pages Node under the workflow module. The split node can be part of a complex workflow which can be designed using the simple drag and drop interface.

Here are the different options to split a PDF document using the Split Pages Node:

  1. Equal Size Documents Node – split a document into an equal number of pages by entering the page count desired into the text field.
  2. Page Range Node – split a document into multiple documents by entering in the page range desired in the text field.

    Note: the dash is used for the page range, a comma is used to separate pages in the same document, and a semicolon is used to separate documents.

  3. Blank Page Node – split a document into multiple documents using white pages as a separator. White pages are discarded.

    Note: increase the tolerance for artifacts if the blank pages contains marks such as fold lines, scan lines, etc. for better results.

  4. Bookmarks at Level Node – Split a document based on its bookmarks starting at Level 1, users can choose to split up to Level 3.

    Note: it is assumed the bookmarks consist of page actions such as a Go To Page in the PDF document and the bookmarks have been created in ascending order.

  5. Before Text Node –  split pages based on specified text, when the text is encountered that page will become first page of the next document.
  6. After Text node – split pages based on specified text, when the text is encountered that page will become the last page of the document and the page after it will become first page of the next document.

NOTE: You can also split documents using one of PDF Automation Server’s newest function Split by Barcode.

]]>
Add Document TimeStamp (DTS) to a PDF document with Java https://kbdeveloper.qoppa.com/add-document-timestamp-dts-to-a-pdf-document-with-java/ Mon, 15 Nov 2021 15:43:02 +0000 https://kbdeveloper.qoppa.com/?p=8805 Using Qoppa’s PDF library products, jPDProcess and jPDFSecure, it is possible to add a Document Time Stamp (DTS added in PDF 2.0) to a PDF document.

Here is a sample java program that does so.

PDFDocument doc = new PDFDocument(in, null);

// Invisible signature field
SignatureField field = doc.getPage(0).addSignatureField("Signature1", new Rectangle2D.Double(0, 0, 0, 0));

// pass in credentials for your time stamp server
TimestampServer server = new TimestampServer("http://timestamp.digicert.com", "myuser", "mypwd"); server.setLengthEstimate(8000); 

// Create signing information for this timestamp server
SigningInformation signInfo = new SigningInformation(server); 

// sign the PDF document
doc.signDocument(field, signInfo); 

// save the PDF document
doc.saveDocument(out);

And here is another sample showing how to add a standard digital signature with a time stamp (in this instance a pkcs12 signature) and then a document time stamp to a PDF document. Both signature fields are invisible.

// Load the keystore that contains the digital id to use in signing
FileInputStream pkcs12Stream = new FileInputStream("c:/test/ids/myID.p12");
KeyStore store = KeyStore.getInstance("PKCS12");
store.load(pkcs12Stream, "password".toCharArray());
pkcs12Stream.close();

// create a time stamp server object 
// using your own credentials for the server time stamp
TimestampServer server = new TimestampServer("http://timestamp.digicert.com", "myuser", "mypwd");
server.setLengthEstimate(8000);
		

// load PDF document 
PDFDocument doc = new PDFDocument(in, null);


// create an invisible signature field 
SignatureField normal1 = doc.getPage(0).addSignatureField("Signature1", new Rectangle2D.Double(0, 0, 0, 0));

// create a standard signature info with a time stamp
SigningInformation signInfo = new SigningInformation(store, "user", "password");
signInfo.setTimestampServer(server);

// add standard signature with time stamp
doc.signDocument(normal1, signInfo);

// save the PDF 
doc.saveDocument(out);


// reload the document 
doc = new PDFDocument(out, null);

// create a second invisible signature field 
SignatureField timestamp1 = doc.getPage(0).addSignatureField("Signature2", new Rectangle2D.Double(0, 0, 0, 0));

// create a document time stamp signature info
// there is no additional signature information needed 
// since this is only a document time stamp signature
SigningInformation tsaInfo = new SigningInformation(server);

// sign the PDF document
doc.signDocument(timestamp1, tsaInfo);

// save the PDF document
doc.saveDocument(out);

]]>
v2021R1 PDF Library & Component Build Notes https://kbdeveloper.qoppa.com/v2021r1-pdf-library-component-build-notes/ Wed, 03 Nov 2021 13:51:31 +0000 https://kbdeveloper.qoppa.com/?p=8783 Below are the build notes for v2021R1 Fix Branch / Minor Releases for the following Qoppa PDF libraries and components.

v2021R1 Jar Download Links

Java PDF Components:
jPDFViewer, jPDFNotes, jPDFEditor

Java PDF Libraries deriving from jPDFProcess:
jPDFProcess
jPDFAssemblejPDFFieldsjPDFImages, jPDFPrintjPDFSecurejPDFText

Other Java PDF Libraries:
jPDFOptimizer, jPDFPreflight, jPDFWeb

Version 2021R1.08 – April 04 2023
JPDF-1914 – Improve text selection issue with CJK text in tables across 2 columns
JPDF-1994 – Cleanup replacement fonts
PS-6356 – Docusign signatures marked as unknown due to missing type in DDS dictionary
PS-6672 -Document specific – Location of image on page
All improvements added to underlying parsing engine
Homogenize build number across libraries

Version 2021R1.07 – May 27 2022

JPDF-1906 – Sometimes comments panel button disappears after closing the comments pane
JPDF-1903 – jPDFImages Sample Application Throws Exception when Overwriting Files
PAS-1098 – Auto Rotate Pages / Set Auto Page Orientation when running OCR
JPDF-1845 – Add mapping to SignatureHelper.ENCRYPTION_ALGORITHMS for SHA512withRSA
JPDF-1906 – PDF Components: Sometimes comments panel button disappears after closing the comments panel
PS-6267 – PDF Components: Comments pane sizing issues after opening and closing comments pane

Version 2021R1.06 – May 05 2022

JPDF-1899 – Regression: Slow down when reading a PDF from a URL on-demand resolved by implementing buffering

Version 2021R1.05 – April 21 2022

JPDF-1885 – Handle null font in typewriter annotation and missing border entry to avoid nullpointerexception
JPDF-1872 – Fix for possible vulnerability in digital signature validation (incremental save) as reported by Raphael Sütterlin of the Ruhr-Universität Bochum https://pdf-insecurity.org/signature/isa.html
JPDF-1870 – Error merging PDFs when merging tag structure when “document” node has no children
PS-6193 – Signature validation shows content added after first signature when we look at most recent DSS entry
PS-6173 – “Stencil Mask” with image using JBIG2 compression was being decompressed twice and rendered incorrectly
PS-6011 Fix certificate hash validation when we encounter SigningCertificateV2 (get the hash algorithm from the certificate)
PS-6206 – Document specific: Error loading PDF array copy: source index -1

Version v2021R1.04 – February 03 2022

JPDF-1870 – Error merging PDFs with tags when the “document” node has no child node
JPDF-1867 – (More Fixes) Fix Invalid Byte range in Docusign digital signature validation
PS-5379 – Fallback on SHA256 for PDF v1.5 & below when SHA1 doesn’t work

Version v2021R1.03 – January 20 2022

JPDF-1847 – Fix error when merging PDF with tags when parent tree is an empty array
JPDF-1867 – Fix Invalid Byte range in Docusign digital signature validation

Version v2021R1.02 – December 14 2021

JPDF-1846 – Handle UTF8 encoding in rubber stamp appearance dictionary in XFDF import file
JPDF-1723 – Do not use the Text & Graphics Extraction permission when converting to HTML/SVG
PS-5344 – Add white border to typewriter cursor for contrast on dark background
PS-5934 – Fix large minimum bounding box / size for typerwiter annotation in Flat Laf Look and Feel
PS-5918 – Editing polyline style is not working correctly the first time
PS-5908 – Improper handling of object streams when saving PDF files sometimes leading to bigger file size
PS-5905 –  Handle incorrect image rubber stamps created by NotesWriter Pro

Version v2021R1.01 – November 02 2021

JPDF-1842 – Null pointer exception when opening list and combo field drop-down in PDF forms
JPDF-1834 – Oracle Forms swing events & exception with empty typewriter followed by save
JPDF-1833- Incorrect encoding of tabs and newline chars when adding keywords into XMP Metadata

Version v2021R1.00 – October 13 2021
Main Release. See v2021R1 Main Release Notes

]]>
How to Create an Automated Flow to Split PDF Documents by Barcode https://kbdeveloper.qoppa.com/split-pdf-files-by-barcode-automatically/ Tue, 26 Oct 2021 15:40:35 +0000 https://kbdeveloper.qoppa.com/?p=8771 Using PDF Automation Server Workflow Module, a PDF document can now be split by barcode into separate PDF documents using the Split by Barcode node in the workflow module.

Here is how to create a sample flow to split documents by barcode below:

  1. Launch PDF Automation Server Manager
  2. Navigate to the Workflows Module (second tab on the left)
  3. Select New to start the Flow editor
  4. Drag and Drop your preferred source (input) node (Email Attachment, Watch Folder, HTTP Listener, FTP)
  5. Drag and drop the Split by Barcode node and fill in the options
    • Enter a Display Name for the Node
    • Enter an optional Description for the Node
    • Select a Barcode Format: AZTEC, CODABAR, CODE_39, CODE_93, CODE_128, DATA_MATRIX, EAN_8, EAN_13, ITF, MAXICODE, PDF_417, QR_CODE, RSS_14, RSS_EXPANDED, UPC_A, UPC_E, UPC_EAN_Extension
    • Select the DPI Resolution to be used to convert the document pages to be scanned for barcodes. This will not affect the actual documents or saved result files.
    • Choose when to split the document (Before or After the barcode)
    • Select a Search option
      • Entire Page – Search the document page by page and split on any barcode found.
      • Selected Area – Search the document page by page and split only if a barcode is found in the specified area of the page.
    • Select how you would like to Output the files: Separate Files, Single zip file, File name pattern
  6. Drag and drop your preferred output node to decide what to do with the multiple output files (Save to File, Print PDF, Send Email, FTP, etc..)
]]>
v2021R1 PDF Library & Component Release Notes https://kbdeveloper.qoppa.com/v2021r1-pdf-library-component-release-notes/ Thu, 14 Oct 2021 21:40:08 +0000 https://kbdeveloper.qoppa.com/?p=8711 Original Release Date: October 14 2021
Version number: v2021R1

v2021R1 Jar Download Links

Java PDF Components:
jPDFViewer, jPDFNotes, jPDFEditor

Component API Changes (from previous version)

Java PDF Libraries deriving from jPDFProcess:
jPDFProcess
jPDFAssemblejPDFFieldsjPDFImages, jPDFPrintjPDFSecurejPDFText

Library API Changes (from previous version)

Other Java PDF Libraries:
jPDFOptimizer, jPDFPreflight, jPDFWeb
jOfficeConvert (API Changes from previous version)

Note: Customers will need new license keys from upgrading from v2020R2. Contact Qoppa’s license team so we can issue new license files for you.

General
Move to compiling in Java 8. Support for Java 8+, Java 6, 7 discontinued
Licenses are loaded from an xml file through a loadfile() method in each library main class
New OCR version – Need new language files
JPDF-1735 Upgrade Rhino Javascript engine to version 1.7.13
JPDF-991 Further testing & fixes for JDK 11 & over compatibility
JPDF-1018 Packaging with substitute fonts for Microsoft fonts
JPDF-317 Redesign error handling
JPDF-1289 validatekey enhancements
JPDF-1729 (Coming Soon) Consolidate all the jPDF Library Demo into One Sample Application

jOfficeConvert
New Conversion from PowerPoint to PDF. See new classes com.qoppa.office.PowerPointDocument and com.qoppa.office.PowerPointConvertOptions

PDF Component
GUI: New Filtering options in Comment Panel
New methods to access new Comment Panel buttons see qoppa.pdfViewer.panel. CommentPanel
New options to access zoom in / zoom out buttons in qoppa.pdfViewer.panels.ThumbnailPanel
Links in PDF Content Automatically Detected – Settings
Tested & Approved on Flatlaf Look & Feel (Light & Dark Mode)
Added Support in PDF Action to open doc in existing or new Window See qoppa.pdf.Action, GotoPageAction, LaunchAction
Added a way to set a link to highlighted – See qoppa.pdf.Annotations.Link.setHighlightedMode()
Added more options to control right-click context menus for the following tabs / tools: Bookmarks, Content Editing, Annotations and TextSelection. See qoppa.pdfeditor.ContextMenus and qoppa.pdfnotes.ContextMenus
Added a convenience method to start the GUI signing of a given signature field see qoppa.pdfnotes.PDFNotesBean.signDocument(SignatureField, boolean)
Add a settings to decide what to do after an annotation is added to the page: show nothing, show popup or show properties dialog. See qoppa.pdfNotes.settings
New option to set the right split policy in see PDFViewerBean.setRightSplitPolicy
JPDF-1792 IAnnotationManager had a addSelectionListener method, but not a removeSelectionListener method
JPDF-1727 Regression: Euro Symbol in Text Annotations Editor is displaying wrong character
JPDF-1415 Document Specific: some obscure obfuscated classnames displays when using edit content tool
JPDF-1809 Options to disallow rich text / decorations in text annotations qoppa.pdfNotes.IAnnotationManagerNotes.setRichTextEditable()
JPDF-584 Cannot select Type3 font text
JPDF-1714 Issue with text search dialog when loading documents using ByteArrayPDFSource
JPDF-1701 Replace tabs with spaces in Text annotations edit mode
JPDF-1777 Empty text annotation loses text color
JPDF-1821 Remove references to sun.swing.DefaultLookup for compatibility with newer versions of Java
JPDF-1121 Java 9 & Java 10 Only. Rubber stamp painting issue / Graphics2D.drawline bug with transform and clip. Wont Fix. Works in Java 8 & Java 11+.
JPDF-1718 Error on opening PDF form due to XFA parsing error (double “??” before closing tag)

Image Processing / Rendering / Printing (jPDFPrint, jPDFImages, jPDFProcess)

JPDF-1700 New method to save a PDF page as JPEG2000 see PDFImages.savePageAsJPEG2000()
JPDF-1692 Document Specific Error when opening for rendering due to null object in embedded file dictionary
JPDF-1708 PDFium Document: Error rendering page: Missing Extended Graphic State Dictionary
JPDF-1691 Handle cloud border with intensity of 0 to avoid infinite loop
JPDF-1667 Error rendering inline image on page giving an ArrayIndexOutOfBoundException
JPDF-1661 Document Specific issues: NullPointerException and endofstream not found
JPDF-1658 Handle better line dashes patterns numbers that are negative or all zero
JPDF-1653 Concurrency issue when rendering pages with negative font size in multiple threads leading to displaying some pages with reversed text
JPDF-1644 Attached document freezes on rendering due to Java bug for dashed stroke with very large dash phase
JPDF-1636 Handle formatting errors when getting decode parameters for JBIG2 images
JPDF-1783 Java 8: Document Specific – setPenT4: invalid pen transformation – some content not displayed. Wont Fix. Works in Java 11.
JPDF-1784 Improve parsing of CCIT inline images to resolve Invalid content token issue / missing PDF content
JPDF-1811 Handle better an invalid CIDToGIDMap entry to avoid nullpointerexception
JPDF-1725 Show Qoppa Print Dialog in PDFPrint Sample Demo Application
JPDF-1704 Issue with ttf font not being used for rendering in Windows 10
JPDF-1154 Error when parsing CCITT inline image containing “EI” end of image character

PDF Optimizer jPDFOptimizer
JPDF-1694 Check for null colorspace and 0 width 0 height images when optimizing PDF
JPDF-1824 Image disappears when optimizing if the image has a soft mask with a decode entry
JPDF-1822 Add support for reference table streams in PDF linearization to avoid file size increase after linearization

PDF/A Conversion (jPDFPreflight)
JPDF-1674 Convert to PDF/A 2u & PDF/A 3u
JPDF-1673 Add PDF/A 3u Verification
JPDF-1719 PDF/A-2u conversion succeeds but fails to verify for a handful of documents
JPDF-1696 Unicode conversion for embedded TrueType fonts with no other encoding info
JPDF-1663 pdf/a conversion can embed fonts with incorrect encodings
JPDF-1662 create and embed ToUnicode CMaps when embedding fonts in PDF/A conversion
JPDF-1652 PDF/UA verification adds annotations for bad links in the wrong page and location
JPDF-1651 Part I: Give a PDF/A validation error for embedded TTC fonts – Part II Re-embed TTC Fonts on Conversion
JPDF-1650 PDF/A Validation fails after conversion due to error in fonts embedding
JPDF-1754 Ignore external entities when parsing XML metadata + Fix infinite loop (document specific)
JPDF-1685 Convert to PDF/A to use font substitution table
JPDF-1763 PDF/A 2b Conversion appear successful but document does not validate
JPDF-1772 Missing characters in XFA form due to issue accessing fonts in acroform DR resources when regenerating appearance stream
JPDF-1826 Annotation bounds on preflight annotations changed, rectangles are more accurate, but smaller

Manipulate / Edit PDFs (jPDFProcess(
New method to delete a range of page in qoppa.pdfProcess.PDFDocument.deletePageRange(int, int)
JPDF-1750 New overlay compare API to create a new comparison PDF by adding 2 PDF as separate layers with flexible color options
JPDF-1747 Fix nullPointerException when importing an xfdf annotation with null intent
JPDF-1732 Document displays as tagged for fast web wrongly?
JPDF-1724 ClassCastException when opening a PDF due to incorrectly formatted signature contents
JPDF-1720 Add support for highlight style in Link annotations
JPDF-1707 Add option to “Open File…” action to open using preferences
JPDF-1655 Handle better importing an XFDF file containing an invalid polygon annotation vertices
JPDF-1646 IRT annotations are not always imported correctly from FDF
JPDF-1645 Review Specific Document – Unicode text extract fails due to invalid mapping
JPDF-1642 IRT annotations not imported correctly from XFDF
JPDF-1637 Document Specific: ClassCastException when creating a field due to invalid field format
JPDF-383 Publish jPDF libraries to Maven / Github Repository
JPDF-1666 Make our code safe to setting rich text content in invalid format into annotations
JPDF-1766 Revisit \n (end-of-line) character issue at end of document
JPDF-1806 Error Merging Tags when merging PDFs with Tags
JPDF-1808 Improve Tag Merging (under the same Root Node) when merging 2 PDFs with Tags
JPDF-1315 Search text using regular expression – PDFPage.findTextUsingRegex

Digital Signature (jPDFSecure, jProcess, PDF Component)
New Signature Validity Icons
JPDF-1800 Add Document Timestamp Signature (DTS) to a PDF
JPDF-1791 Validation & Display of DocTimeStamp (PDF 2.0), see SignatureValidity.isDocumentTimeStamp
JPDF-1801 Review messages returned by SignatureValidity.getValidationMessages()
JPDF-1795 Document with Usage Rights seem to restrict digital signing when it shouldn’t
JPDF-1768 Add support for “Lock Document After Signing” on ordinary digital signatures, see SigningInfo.isLocked / setLocked
JPDF-1799 Review Content Added message in specific documents with Timestamp signatures
JPDF-1798 Review “content appended” to DTS signatures created in Acrobat

Fonts (All Libraries & Components)
JPDF-1731 Document Specific: Regression: Space character is replaced with another character when rendering glyph on page
JPDF-1736 Review and Fix getReverseEncoding() method
JPDF-1761 REGRESSION: Yu Gothic font line height on test106.pdf
PDF Forms (jPDFFields, jPDFProcess, Components)
JPDF-1721 ClassCastException when opening a PDF form due to invalid appearance dictionary in form field widget
JPDF-1753 Regression: Document Specific (Linearized): com.qoppa.pdf.PDFException: Illegal character 105 in hex string
JPDF-1776 Some fields showing empty in xfa form. Add support for rich text and unnamed children subforms

PDF Component
JPDF-1712 Calling clearDocument() when a document is being printed causes a null pointer exception
JPDF-1711 Change German Label when no text in document
JPDF-1703 Fit to Width rounding error
JPDF-1699 Change to use a Shape instead of a GeneralPath for our internal objects
JPDF-1647 Add buttons to enlarge reduce page thumbnails
JPDF-931 Render bug: CIDFontType0 w/CIDToGIDMap
JPDF-654 Not handling dash pattern from annotation’s Border entry
JPDF-1738 Font BBox Too Large in Text Selection: Improve calculation of ascent and descent values for embedded fonts when values inside FontDescriptor are incorrect
JPDF-1313 JDK 11 Compatibility – GlyphVector advances in CJK font
JPDF-1813 Revert change to skip loading annots incrementally in signed docs
JPDF-1774 Fix for bad XFA data with double quotes within double quotes
JPDF-1827 jPDF Viewer REGRESSION: Annotation filtering causes serious performance issues

PDF to HTML Conversion (jPDFWeb)
JPDF-1742 Parentheses used in CJK vertical writing are not rendering correctly
JPDF-1741 Exception on converting PDFs to HTML containing links with no destination such as “Fit To Page”
JPDF-1726 PDF To HTML: Add form field widgets in the output HTML file
JPDF-1551 Page viewing mode: continuous view
JPDF-1752 jPDFWeb PDF to SVG: Parentheses used in CJK vertical writing are not rendering correctly
JPDF-1481 Text start position wrong for vertical text
JPDF-1769 Converting document to SVG cuts off image due to incorrect soft mask placement
JPDF-1781 Missing pattern lines on conversion to SVG due to type 3 font with inverted symbol characters
JPDF-1723 By default, do not use the Text & Graphics Extraction permission when converting to HTML/SVG
JPDF-1457 Handle Links without “http://” prefix
JPDF-1559 Add text search to jPDFWeb servlet sample
JPDF-1802 jPDFWeb Servlet not working on Java 11 / Tomcat 10

jPDFWriter
JPDF-1746 NullPointerException in jPDFWriter due to calling setPaint(null) when drawing jfree chart of type area

Many other internal fixes and enhancements.

]]>
v2021R1 PDF Automation Server Release Notes https://kbdeveloper.qoppa.com/v2021r1-pdf-automation-server-release-notes/ Wed, 13 Oct 2021 15:27:24 +0000 https://kbdeveloper.qoppa.com/?p=8688 Below are the release notes for Qoppa’s PDF Automation Server 2021R1.

Download PDF Automation Server v2021R1

This version comes with a lot of new nodes to the workflow module, new and updated endpoints to the REST API and many enhancements to the server manager and settings. It’s never been easier to automate your PDF documents processes and flows on the server.

Note: License keys for v2021R1 are different than for v2020R3. Customers upgrading to the latest version will need to contact Qoppa’s licensing team to obtain new license keys.

Version 2021R1.11 – April 05 2023

PAS-1124 – Change Default Watch & Email Delay from 1 Second to 5 Seconds
JOFFICE-631 – Convert Word to PDF: Error handling empty numbered paragraph – “<parameter4>” is null
JOFFICE-632 – Convert Word to PDF: Throw a warning for Strict Open XML format not supported to avoid IllegalArgumentException
JOFFICE-633 – Convert Word to PDF: Some boxes / path objects with light grey border displayed in Adobe
JPDF-1994 – Cleanup Replacement Fonts
JPDF-1834 – Oracle Forms swing events & exception with empty typewriter followed by save

Version 2021R1.10 – July 28 2022

PAS-1116 – Issue with http request node and send payload checkbox for text types + close the stream at a later time

Version 2021R1.09 – July 21 2022

PAS-1117 – Line Feed Added to Variable in XmlToVariable Node
PAS-1115 – Page range field – Add support for formulas and don’t throw a validation error
JPDF-1914 – Text selection issue with CJK text in tables across 2 columns
JOFFICE-628 – Word to PDF: ArrayIndexOutOfBoundsException: 12 in Paragraph Numbering
PS-6356 – Some Docusign signatures marked as unknown due to missing type in DDS dictionary

Version 2021R1.08 – June 20 2022

PAS-1100 – Rest API: Use Filename for Title of PDF/A Validation Report when Document Title is not set
PAS-1106 – Http Request Header Variable does not get resolved

Version 2021R1.07 – May 12 2022

JPDF-1845 – Add mapping to SignatureHelper.ENCRYPTION_ALGORITHMS for SHA512withRSA
PAS-1098 – Auto Rotate Pages / Set Auto Page Orientation when running OCR in OCR Node & REST API
PAS-1097 – Improve annotation size / bounds on the page when adding a large image as stamp (allow for margins)
PAS-1096 – Workflow: Add option to include payload to zipped error report per troublehandling output type
JOFFICE-620 – Word to PDF: Fix issue with a row minimum height taller than the available space (infinite loop) + validate document type
JOFFICE-617 – Some logging to help identify possible threading / synchronization issue when laying out text
PS-6206 – Document specific: Error loading PDF array copy: source index -1

Version 2021R1.06 – April 12 2022
PAS-1094 – Watch Folder: Corrupted PDF does not get handled as defined under Flow Properties – Troublehandling
PS-6193 – Signature validation shows content added after first signature when we look at most recent DSS entry
PAS-1095 – Make sure to close input stream for invalid documents so files can be deleted

Version 2021R1.05 – April 01 2022

PAS-1092 – Hide unfinished international labels that were published by accident
PS-6173 – “Stencil Mask” with image using JBIG2 compression was being decompressed twice and rendered incorrectly
JPDF-1872 – Fix for possible vulnerability in digital signature validation (incremental save) as reported by Raphael Sütterlin of the Ruhr-Universität Bochum https://pdf-insecurity.org/signature/isa.html
JOFFICE-615 – Word to PDF Conversion: Missing dots before page number in table of content and missing underline in sub-section
PS-6118 – Document Specific: Fix error when filling out NYC income tax form due to infinite loop in JavaScript calculation

Version 2021R1.04 – February 24 2022

PAS-1085 – Changes in email node message body field does not mark flow as modified
PAS-1083 – Newline characters break regex for matching variables
FPO-60 – REST API does not use settings in Font Substitution table when converting Word/Excel to PDF & Preflighting PDFs

Version 2021R1.03 – February 21 2022

PAS-1082 – Send Email Node: Add Variables for To & Cc Fields
JOFFICE-611 – Convert Word to PDF – Unable to layout document due to table width set to 0 + Improve support for multiple polygons in EMF images
JPDF-1870 – Error merging PDFs when merging tag structure when “document” node has no children
PS-5379 – Fallback on SHA256 for PDF v1.5 & below when SHA1 doesn’t work (Signing with USB Token on Linux)
PAS-1040 – PDF Web Annotator: Reload Annotations After Saving

Version 2021R1.02 – January 20 2022

PAS-1079 – Web Editor: Deleting the last page does not work
PAS-1040 – Redo saving of annotations from Web Editor to allow multiple users annotating (i.e. incremental saving)
JOFFICE-605 – Convert Word to PDF – Add support for Raised Position Property
JPDF-1847 – Fix error when merging PDF with tags when parent tree is an empty array
JPDF-1867 – Fix Invalid Byte range in Docusign digital signature validation
PAS-1078 – Web Annotator: Fix Error (XML Parse Exception) when saving a form with no fill permissions
PAS-1078 – Web Annotator: Review permissions enforcement
JPDF-1846 – Handle UTF8 encoding in rubber stamp appearance dictionary in XFDF import file

Version 2021R1.01 – Nov 29 2021

PAS-1073 – PDF Web Viewer & SVG Conversion: Fix annotations position on PDF pages that are cropped
PAS-1069 – Pop3 Office365 SSL Email Handshake Exception – TSL / SSL Protocol Issue + Handle shared mailbox email address validation
PS-5908 – Improper handling of object streams when saving PDF files sometimes leading to bigger file size
PAS-1067 – Update installation should install in the existing directory (only one version of PAS should be present on a server)
JPDF-1723 – Do not enforce Text & Graphics extraction permission when converting PDF to HTML / SVG for viewing
PAS-1071 – “Stopping incoming process due to too many errors” doesn’t stop flow
PAS-1070 – Regression: Extra spacing on 4k Monitor in Jobs
PAS-1068 – Regression: NullPointerException when creating or editing a Job
JPDF-1833 – Incorrect encoding of special tabs and newline chars when adding keywords into XMP Metadata

Version 2021R1.00 – October 14 2021

Workflow Module

PAS-1049 New PAS Node – Convert PowerPoint to PDF
PAS-918  New PAS Node – Convert PDF to Postscript
PAS-582 New PAS Node – ANT Task Node
PAS-916 New PAS Node – Convert JSON to XML
PAS-917 New PAS Node – Convert XML to JSON
PAS-973 New PAS Node – Discard message
PAS-921 New PAS Node – Apply Redactions
PAS-982 New PAS Node – Create Redaction Annotations
PAS-929 New PAS Node – Move File
PAS-932 New PAS Node – Read File
PAS-928 New PAS Node – Copy File
PAS-930 New PAS Node – Rename File
PAS-931 New PAS Node – Delete File
PAS-933 New PAS Node – Create Directory
PAS-595 New PAS Node – String Parser / Function
PAS-990 New PAS Node – Split by barcode
PAS-939 New PAS Node – XMP Metadata to XML payload
PAS-934 New PAS Node – New Read Files from Folder
PAS-940 New PAS Node – XML payload to XMP Metadata
PAS-937 New PAS Note – Scheduler
PAS-936 New PAS Node – Command Line
PAS-949 New PAS Node – Extract Text / PDF to Text
PAS-673 New PAS Node: Extract Barcode Data (value)
PAS-974 Add new overall flow status banner in flow editor
PAS-922 Rename Node from “Secure” to “Secure with Password”
PAS-895 PAS Node – PDF Text to Variable: When no text content is found should still create a variable with a “null” value
PAS-1063 HTTP Request node: Connection error displays
PAS-1033 HTTP Request Incoming Node: NPE with GET
PAS-993 HTTP Listener Node: Error response when using HTTPS
PAS-873 HTTP Listener Node: Allow 2 different handlers/nodes at the same host/port/basepath
PAS-885 HTTP Listener: Check other flows for same HTTP listener
PAS-907 HTTP Response Node: layout and label tweaks
PAS-1006 HTTP Listener: Review Node
PAS-924 HTTP Request Add variables to http request body
PAS-927 Add “Help” button to workflow editor
PAS-615 Fix Scan PDF Node
PAS-923 Improve node selection GUI
PAS-975 Improve validation of empty nodes
PAS-1007 Long Flow name is cut
PAS-995 Pop up editor for long text field values
PAS-1022 Redesign Variable insert dialog to document both functions & variables
PAS-1028 “Message” group variables missing from variable insert tool for some inputs
PAS-1029 Variables used in default value are not parsed / replaced
PAS-1036 Add variable buttons to Search & Redact and Search & Markup
PAS-897 FlowVariable.formatValue returns null for String objects
PAS-1039 Watch folder Date type variable should have a date picker for default value
PAS-972 Processing nodes do not properly check for subsequent nodes
PAS-680 When adding a Replicate Node, make sure to fit all paths to view area
PAS-709 Mask formatter for strings
PAS-686 Variable tab enhancements
PAS-1015 Palette UI enhancements

REST API 

PAS-955 REST API – Add endpoint to import annotations in FDF and XFDF format
PAS-963 REST API – Add endpoint for signature validation information
PAS-951 REST API – Add endpoint  for Overlay Compare 2 PDFs
PAS-1050 REST API – Add endpoint to Convert PowerPoint to PDF
PAS-958 REST API – Add endpoint to work with document metadata
PAS-941 REST API – Add endpoint to Create new blank document
PAS-957 REST API – Add plain text as a possible return when getting document content
PAS-959 REST API – Fix typo in documentation for endpoint
PAS-964 REST API – Changes to “pages” endpoints
PAS-473 REST API –  Improve error message when file is not found
PAS-962 REST API – Update preflight conversion endpoint
PAS-960 REST API – Add file size field to list of files when getting folder info
PAS-281 REST API – PDF to Images – Add width height parameters
PAS-956 REST API – Update documentation on GET document endpoint
PAS-1052 PAS pdfapi REST endpoints documentation
PAS-998 Fill in Javadocs for the Management REST API
PAS-61 Print in reverse order
PAS-1024 watermark text area should not expand when text is too long
PAS-1023 Calendar date picker issues with HiDPI monitor

PDF Web HTML Viewer / Annotator / Editor 

PAS-316 Add web viewer options / settings for customization
PAS-403 Make it easier to customize toolbar and default tool options
PAS-426 New Bookmarks Pane in web viewer
PAS-889 Mobile WebPDF Viewer – Add Document properties
PAS-887 PDF Viewer Change “Document Properties” Label in to an icon with tooltip
PAS-448 Mobile Web PDF Viewer: Ability to Search Text
PAS-575 Mobile Web PDF Editor – Add image stamp tool
PAS-301 Redaction tool enhancements: Drag over text or CTRL + Drag for lasso selection
PAS-863 Implement Copy + Paste for Annotations
PAS-294 Add double touch to start editing textbox annotations
PAS-444 Add drag and drop functionality to file uploads
PAS-908 Sticky Note icon rotation and scale
PAS-1043 Web PDF Viewer: Bookmark highlight does not update based on document location
PAS-414 Web PDF Viewer: Display Comment Popup on all Annots, not only Sticky Note
PAS-789 Mobile PDF Viewer: Thumbnails do not display rotated pages correctly
PAS-849 Mobile PDF Viewer: Continuous view for mobile viewer
PAS-379 Web Viewer: Text highlights don’t print correctly
PAS-779 Text Markup tools not showing up in Chrome
PAS-966 Web PDF Viewer should enforce printing permissions
PAS-411 Update all web viewer plugin libraries
PAS-449 Remove all external dependencies from the webviewers
PAS-383 Improve alert/error/message dialogs shown to the user
PAS-284 Download PDF does not work in iOS device
PAS-892 Scale blank pages on zoom for continuous view & add placeholder
PAS-793 Double slash in REST API Calls to Edit PDFs in Web Markup
PAS-983 Continuous view – jumps multiple pages when clicking “next page”
PAS-987 Search result is cut-off when searching in Continuous view
PAS-340 Mac, Linux: “Sticky” button dismiss quickly
PAS-799 Improve error message when trying to view a PDF with text and graphics extraction restrictions
PAS-948 Web Editor: Enforce document permissions + download button broken on signed documents

General Application Enhancements 

PAS-943 Allocate memory during install based on available system RAM
PAS-888 Update OCR version to 4.1.1 & Languages Files
PAS-845 New scheduler options to delete files from the server
PAS-505 Options to Export / Import Flow charts
PAS-884 Rename 0.0.0.0 IP setting to “All available IPs”
PAS-864 Manage and use multiple digital IDs when signing a document
PAS-788 Add Settings for Trusted Certificates
PAS-970 Issues with Java node to set a variable
PAS-841 Package additional fonts to use in Font Substitution Table for Linux
PAS-814 Add Font Substitution Table
PAS-711 Watermark Justification
PAS-875 Add Word to PDF Image conversion preferences (DPI 50 to 1200)
PAS-840 Add warning or auto restart server when storage service is changed
PAS-1030 Buttons to manually restart PAS or the REST service
PAS-279 Enable server compression
PAS-1008 Show notification to user that flow is being stopped
PAS-1037 Variable insert tool should replace highlighted text
PAS-691 Add support for Variable “Functions”
PAS-642 Password Field Enhancements
PAS-1003 Update L&F to FlatLaF
PAS-910 Add System Digital IDs to preferences
PAS-1042 Default signature icon too small in Signature Prefs
PAS-781 Add a setting to not render digital signature status in PAS
PAS-900 Wait cursor when searching full log
PAS-743 Move some of the REST calls initiated from PAS Manager to the server to the background
PAS-904 Doc specific: PDFA conversion fails on Linux due to missing font
PAS-985 Report Java build number
PAS-986 Review different appearance stream on a valid digital signature
PAS-835 Design: Review temp file naming to avoid name conflicts
PAS-1016 Only match the major version for PAS Manager to connect to PAS Server
PAS-837 Allow users to cancel connect dialog when they’re already connected
PAS-994 List of popular functions to add to the new parser
PAS-430 Server side exception saving document should be thrown
PAS-913 Default fallback font should be DroidSansFallbackFull packaged with installation on ALL Products
PAS-1054 Make Problems Panel list clickable
PAS-909 Add Double Click to Display Certificate Details Dialog for Trusted Certificates

Bugs

PAS-984 Refresh issue with log table (old records, or empty table) when switching between servers
PAS-382 Temp files in PAS not always deleted
PAS-241 PDF Showcase: Alphabetize PDF list page
PAS-879 Missing slash in document href when getting Folder json
PAS-98 Reorganize threading in PAS
PAS-971 Fallback Welcome.html page path is incorrect
PAS-74 Support for SFTP – requested by existing customer rwall@teamsterfunds.com
PAS-997 Generate Enunciate docs for the manager service
PAS-512 “From Email address” field under global smtp settings does not work
PAS-537 Zooming does not work on Chrome when viewing a document as SVG/HTML
PAS-420 IE11 – “Log Out” button does not change to “Log In” when selecting
PAS-891 Detect changes in JFormattedTextField
PAS-1011 It does not remove highlight on User Guide and Log
PAS-1019 Text fields are cut-off or spilled out when logging in REST users
PAS-1004 Error retrieving deleted trusted certificate
PAS-1038 Not able to stop a running flow
PAS-1001 Replace variable formats on upgrade
PAS-1044 Invalid password error displays when I select Cancel on Digital ID import dialog
PAS-1046 Setting incorrect server causes endless error loop
PAS-1048 Remove “File name pattern” option from Read files from Folder node
PAS-872 Handlers don’t work after restarting the HttpService in HttpListener node
PAS-1061 Updating REST preferences should update info panels

Improvements added to the underlying Qoppa’s Java PDF Library v2021R1.

]]>
Video: Introduction to PDF Automation Server https://kbdeveloper.qoppa.com/introduction-to-pdf-automation-server/ Mon, 16 Aug 2021 21:26:26 +0000 https://kbdeveloper.qoppa.com/?p=8623

This video is an introduction to our PDF Automation Server.

Video Transcript:

  1. Hi today, I’ll be introducing you to Qoppa’s PDF Automation Server a powerful tool providing a rich set of pdf processing functions to streamline document workflows within your company. What you’re viewing now is our website where you can download a free trial of PDF Automation Server or request a demo.
  2. Once you have PDF Automation Server installed you’ll be able to launch PDF Automation Server manager and connect to the server. I’ll be walking you through the different screens available in the manager.
  3. The first screen is the manager’s dashboard which shows a summary of the server workflows jobs and recent events. Up top you can keep track of the CPU usage, memory, and your license.
  4. Next you have the workflows module this is where you can create complex workflows through an easy drag and drop interface to define how your documents arrive, are processed, stored, or sent. I’ll be walking you through how to set up a workflow.
  5. Say you want to set up a workflow that adds a watermark. As you can see you have your watch folder here and what this essentially does is watch incoming files, then sends it through the rest of the process for a watermark to be added to it. Afterwards the file or document is saved to the user’s preferred destination.
  6. Say you don’t want every document to include a watermark. It says confidential so you only want confidential documents to have a watermark included on it. What you would do is add logic. What you want to do first is go to PAS functions and you can drag and drop the logic node into the part of the process you want the function to happen in.
  7. Once you add the node in the process you would have to set up its conditions. You can go here and let’s say the condition is: If the document contains the keyword “confidential” a watermark will be added to it. So you would type out “confidential” and you can click out. So now if the document comes to the watch folder and it has the keyword “confidential” in it a watermark will be added to it, it’s true. If it’s not true we’ll just save the document to the user’s preferred destination.
  8. So what you want to do is go to the outputs folder, you can drag and drop “save to file” to the not true box. We want this destination to be the same as where our watermark files are going to so what you can do is just copy that destination and you can paste it in the destination for the not true box. So once you inputted the destination for the document to be sent to, you’ll also need to name the files. So I’m just going to name them this date and time in a pdf. You can then just click out. So once a file comes to the watch folder and it doesn’t have the keyword “confidential” it’ll just be saved to the user’s preferred destination. Once you confirm the process for this workflow you can save it in the top left corner and you can exit out, and it’ll be there next time you want to use the workflow.
  9. The next module is the jobs module. This was designed before the workflow module. It is still in place for our legacy clients and it should only be used if you had jobs that have been previously created.
  10. The next screen is the Rest API, this is where you can see all Rest API calls made for the server.
  11. So you have calls such as Put calls which are when documents are uploaded, you have Get calls and this is when documents are downloaded, and Post calls shows when documents are being processed such as OCR’d, etc. You can see the type of processing that’s going on through the details column. In this case the documents being optimized.
  12. Finally we have the Preferences and Settings and this where you can see the general settings, your Rest settings your Microsoft Office and conversion settings,  as well as the settings for your license.
  13. There you have it. Thank you for tuning in to this intro of Qoppa’s PDF Automation Server. Hopefully you found this useful. For more information you can always visit qoppa.com. Thank you for listening.
]]>
Search & Redact Social Security Numbers SSN in a PDF with Java https://kbdeveloper.qoppa.com/search-redact-ssn-in-pdf-with-java/ Tue, 10 Aug 2021 17:58:37 +0000 https://kbdeveloper.qoppa.com/?p=8613 Here is a sample Java program to find all instances of social security numbers in a PDF document using a regex expression. Once the numbers are identified, they are removed from the PDF content and the area blacked out through a process called permanent redaction. The SSN are then covered with redaction annotations and removed when the redaction annotations are applied or “burnt”, leaving just a black rectangle where the SSN used to be. This sample code uses Qoppa’s PDF Redaction SDK API jPDFProcess.

Note: Make sure you use the regular expression corresponding to the format of the social security numbers present in your documents. In the sample code below, we are matching the following pattern: “123-12-1234”.


// Open the PDF document
PDFDocument pdfDoc = new PDFDocument("input.pdf", null);

// Regular expression to check valid SSN
String redactSSN = "^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$";

// per page: search text, create redaction annotations, then apply
for (int i = 0; i < pdfDoc.getPageCount(); i++)
{
PDFPage pdfPage = pdfDoc.getPage(i);

// Search for the text
List searchResults = pdfPage.findTextUsingRegex(redactSSN);

//create redaction annotations
for (TextPosition textPos : searchResults)
{
Redaction redact = pdfDoc.getAnnotationFactory().createRedaction("Redaction sample",           textPos.getPDFQuadrilaterals());
pdfPage.addAnnotation(redact);
}

//apply ("burn-in") all redaction annotations on the page
pdfPage.applyRedactionAnnotations();
}
// save the redacted PDF document
pdfDoc.saveDocument("output.pdf");

Download Full Java Sample Search & Redact SSN

Note this sample using jPDFProcess v2021R1 to be released in August 2021. For previous version, look at method findTextWithContextUsingRegEx instead. Contact us with any question.

]]>
Compress images / reduce DPI resolution when converting Word documents to PDF https://kbdeveloper.qoppa.com/reducing-the-dpi-resolution-of-images-when-converting-word-documents-to-pdf/ Wed, 19 May 2021 18:21:53 +0000 https://kbdeveloper.qoppa.com/?p=8562 Find below sample Java code to convert Word document to PDF and compress images to reduce the DPI resolution to 150 DPI suing Qoppa’s PDF library jOfficeConvert. Images from the original Word document that have a resolution higher than 150 will be resized down to 150 DPI in the resulting PDF document. Other images will be left untouched.

By default, MaxDPI option is set to zero which signifies that images will retain their original resolution from the original Word document.

This feature is coming in jOfficeConvert v2021R1 planned for release in June 2021.

import com.qoppa.office.WordConvertOptions;
import com.qoppa.office.WordDocument;

public class WordDPISample
{

 public static void main(String[] args)
 {
    try
    {
        // Create a new WordConvertOption 
        // and set the max dpi to 150
        WordConvertOptions opts = new WordConvertOptions();
	opts.setMaxDPI(150);

	// Open and convert the Word document to PDF using the options above 
	WordDocument wordDoc = new WordDocument("C:/test.docx", opts);

        // Save the PDF file 
	wordDoc.saveAsPDF("C:/test.pdf");
     }
     catch (Exception ex)
     {
	ex.printStackTrace();
     }
  }
}
]]>
Can a digital signature in a PDF document have multiple linked widgets? https://kbdeveloper.qoppa.com/can-a-digital-signature-have-multiple-widgets-in-a-pdf-document/ Wed, 19 May 2021 15:29:24 +0000 https://kbdeveloper.qoppa.com/?p=8544 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 answer is no.

It’s important to note that a digital signature applies to the whole PDF document even if it only renders on one page (typically the last or first page of the document). And if any content is modified on any page of the document (not only on the page that renders the signature), the digital signature will be invalidated.

According to the PDF 2.0 specifications:

“The location of a signature within a document can have a bearing on its legal meaning. For this reason, signature fields shall never refer to more than one annotation.”

This Adobe forum seems to indicate that Adobe used to support this in older version but no longer does:

Qoppa’s PDF rendering engine will handle a document created with a signature field linked to multiple widgets and will render the signature appearance stream the same across the widgets, in the same way other PDF viewing applications do.

Qoppa’s public PDF API. however, does not allow to link different widgets to the same signature field. The same goes for all our derived PDF applications. We are not planning to add the ability to do so, considering that this would go against the PDF specifications.

Workaround: You can apply the signature images to each page (using flattened rubber stamps or button image fields) and then sign the PDF document with a digital signature (assuming this is the first signature on the document).

]]>
Send us Feedback about PDF Automation Server and our PDF Libraries & Components https://kbdeveloper.qoppa.com/send-us-feedback-about-pdf-automation-server-and-our-pdf-libraries/ Thu, 22 Apr 2021 14:38:50 +0000 https://kbdeveloper.qoppa.com/?p=8511 If you are a user of PDF Automation Server or our PDF libraries (which include jOfficeConvert, jPDFAssemble, jPDFFields, jPDFImages, jPDFOptimizer, jPDFPreflight, jPDFPrint, jPDFProcess, jPDFSecure, jPDFText, jPDFWeb) or our PDF components (which include jPDFEditor, jPDFNotes, jPDFViewer), we would love to receive feedback from you on what you think about these products.

You can submit any of the following:

  • Suggest a missing a feature
  • Send us a nice comment
  • Report a bug. When doing so, don’t forget to:
    • Attach the PDF document that you are working with (if it’s not confidential)
    • Include the steps to reproduce the issue
    • Our support team will respond to you within 24 hours (on business days)

Send us an Email

You can email us at support@qoppa.com.

Leave Us a Review

Click here to choose a site and leave a review for one of our products.

]]>