One of the most frequently reported errors by APPE users is the "NON-FATAL PDF Exception: Cannot extract the embedded font..." error. A full text of the error will appear similar to the one below, with the name of the problem font in the brackets:
JDFPrintProcessor ERROR: Job 1 processing completed: Failed ACR ERROR: 26, Error interpreting PDF page File: ..\..\..\source\acr\pdfdoc\IImpPDFDocHdl.cpp Line: #### The runlist element information for the erroneous placed object is: Filename: "file:///C:/Monza/APPE3.0-Win64/JDFSamples/ExampleInputFiles/xxxx.pdf" Page No.: # NON-FATAL PDFL Exception: Cannot extract the embedded font ['font name']. Some characters may not display or print correctly.
What is the reason for this error?
The simple explanation of the error is that it is caused by bad font data. Something is wrong with one of the fonts embedded in the source PDF document. If the Adobe Common Renderer (ACR) encounters bad font data, it reports an error and fails the job.
APPE users began noticing this NON-FATAL PDFL Exception with APPE v3.0 and higher, and for good reason. Older versions of APPE (v2.x or lower) were not able to catch NON-FATAL errors, allowing some jobs with problem fonts to process without raising an exception. This can result in problems with how the text looks in the output image file.
To correct this issue, Adobe added enhanced error handling to catch and report bad font data errors, starting with APPE v3.0 and higher. The stricter controls resulted in a lot of jobs that previously worked in APPE v2.x and lower to suddenly begin failing with a NON-FATAL PDF Exception: Cannot extract the embedded font ... error.
How can APPE users resolve the error?
To correct this error fix the issue with the original PDF document. Generate the PDF document again and make sure that the proper fonts are embedded and displayed in the source file. However, if returning to the source content is not feasible, there are workarounds using option settings, but the ACR parameter object is required:
This controls Adobe Common Renderer’s behavior when a nonfatal error occurs during PDF interpretation. If present, this parameter specifies which nonfatal errors should be suppressed. The parameter value is an ACR array of Unicode strings.
There are two values that apply to this error:
- IgnoreAll - Ignore all NON-FATAL errors:
- ApplyBestEffortForFont - Try to work around bad font data. If successful, generate incorrect output in place of bad font; otherwise, fail the job:
APPE users can find more information about the ACRSuppressibleErrorHandling parameter under the "Errors in PDF Interpretation" section of the "Building a Product with Adobe PDF Print Engine" user documentation, a PDF document included with your software installation package.