Facebook
Twitter
YOUTUBE
LINKEDIN
XING
Datalogics
Status: Partner Member
Country: US
Sector: All industries
Contact:
Joined at: Feb 08
Website: http://www.datalogics.com/

Linked User
Maryanne Pavlin
Matt Kuznicki
Nicki Bullock
Vel Genov
Emma Kaschke
Leonard Ho

Adobe PDF Print Engine – NON-FATAL PDF Exception: Cannot Extract the Embedded Font Error

Our Datalogics Knowledge Base page is maintained by our Developer Support Team, and is used to provide solutions to frequently asked questions to others who may be having similar issues. I recently wrote a KB article about an error reported for Adobe PDF Print Engine (PPE), and since it is one of our more common errors we get asked about, I wanted to share the solution with this audience as well.

The NON-FATAL PDF Exception: Cannot extract the embedded font Error

A full text of the error would appear similar to the one below with the name of the problem font in the brackets:

<strong>JDFPrintProcessor ERROR: Job 1 processing completed: Failed</strong>

<strong>ACR ERROR: 26, Error interpreting PDF page </strong>
<strong>File: ..\..\..\source\acr\pdfdoc\IImpPDFDocHdl.cpp </strong>
<strong>Line: ####</strong>

<strong>The runlist element information for the erroneous placed object is: </strong>
<strong>Filename: "file:///C:/Monza/APPE3.0-Win64/JDFSamples/ExampleInputFiles/xxxx.pdf" </strong>
<strong>Page No.: #</strong>

<strong>NON-FATAL PDFL Exception: Cannot extract the embedded font ['font name']. </strong>
<strong>Some characters may not display or print correctly.</strong>

The simple explanation of the error is that that it is caused by bad font data. If the Adobe Common Renderer (ACR) encounters bad font data, it reports an error and fails the job.

Users started noticing this NON-FATAL PDFL Exception with PPE v3.0 and higher and for good reason. Older versions of PPE (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 PPE v3.0 and higher. The stricter controls resulted in a lot of jobs that previously worked in PPE v2.x and lower to all of a sudden fail with a NON-FATAL PDF Exception: Cannot extract the embedded font … error.

From the frequency of reported cases with regards to this error, I know firsthand that many PPE users have asked “how do I get pass this error?” The correct answer is to go back to source and fix the issue with the font, but that’s not what many want to hear. Fear not, there are a couple of option settings available but requires the ACR parameter object:

<strong>InterpretingParams/PDFInterpretingParams/@ACRSuppressibleErrorHandling</strong>

This controls ACR’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

<strong>&lt;PDFInterpretingParams ADBE:ACRSuppressibleErrorHandling="IgnoreAll"/&gt;</strong>

ApplyBestEffortForFont – Try to work around bad font data. If successful, generate incorrect output in place of bad font; otherwise, fail the job.

<strong>&lt;PDFInterpretingParams ADBE:ACRSuppressibleErrorHandling="ApplyBestEffortForFont"/&gt;</strong>

PPE 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” documentation PDF.

If you have run into this issue, know that you are not alone. We are happy that Adobe has provided a workaround to get past this issue. If you need additional support, I encourage you to visit our Knowledge Base, or reach out to our Support Team.

Related Products
Adobe PDF Library


The Adobe PDF Library SDK is a low-level PDF library that contains a powerful set of native C/C++ APIs with interfaces for .NET and Java APIs. Systems integrators, independent software vendors (ISVs), enterprise IT developers, and others can integrate Adobe PDF functionality within custom applications in a client and / or server environment.

PDF Java Toolkit


Datalogics PDF Java Toolkit is a native Java library that provides high-level APIs for automating PDF workflows like processing PDF forms, verifying digital signatures, and extracting text. It also offers low-level APIs for working directly with the structure of the PDF for those times you need it.

Adobe PDF Converter


Adobe Normalizer, is an API which allows developers to quickly and easily convert Encapsulated PostScript (EPS) and PostScript (PS) files to Adobe’s Portable Document Format (PDF). The industry-standard Adobe Distiller and Distiller Server are themselves built upon PDF Converter SDK; and now this API is available separately to application developers.

Adobe PDF Print Engine


The Adobe PDF Print Engine is a common rendering engine technology, packaged as a software development kit (SDK). It can be the basis for a variety of products for previewing and printing Adobe Portable Document Format (PDF) documents at different stages of the professional print workflow.

PDF2IMG


Datalogics PDF2IMG is a command-line utility that converts PDF files to a variety of image formats including PNG, JPG, TIFF, BMP, and more. It is built upon the Adobe PDF Library and uses Adobe technology for unrivaled color management during the PDF conversion process

PDF Alchemist


Datalogics PDF Alchemist is a new (C/C++) SDK for intelligently extracting text and images from PDFs and exporting to HTML 5 or EPUB. It employs sophisticated techniques to identify and reconstruct “text flows” within the PDF.