You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Tilman Hausherr (Jira)" <ji...@apache.org> on 2020/06/12 17:31:00 UTC
[jira] [Commented] (PDFBOX-4878) Call to
DictionaryEncoding.getEncoding () throws NullPointerException for some
PDF's
[ https://issues.apache.org/jira/browse/PDFBOX-4878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17134416#comment-17134416 ]
Tilman Hausherr commented on PDFBOX-4878:
-----------------------------------------
about "Encoding":
{quote}
An encoding dictionary whose Differences array shall specify the complete character encoding for this font (see 9.6.6, "Character Encoding").
{quote}
About "BaseEncoding":
{quote}
If this entry is absent, the *Differences* entry shall describe differences from an implicit base encoding. For a font program that is embedded in the PDF file, the implicit base encoding shall be the font program’s built-in encoding, as described in 9.6.6, "Character Encoding" and further elaborated in the sub-clauses on specific font types. Otherwise, for a nonsymbolic font, it shall be StandardEncoding, and for a symbolic font, it shall be the font’s built-in encoding.
{quote}
The second segment is confusing; but I think that the word "complete" in the first segment is to be understood that it is a "difference" from nothing, i.e. there is no base encoding.
> Call to DictionaryEncoding.getEncoding () throws NullPointerException for some PDF's
> ------------------------------------------------------------------------------------
>
> Key: PDFBOX-4878
> URL: https://issues.apache.org/jira/browse/PDFBOX-4878
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel
> Affects Versions: 2.0.20
> Reporter: Thomas Gawehn
> Priority: Critical
> Attachments: test.pdf
>
>
> Wenn iterating all fonts in a PDF a call to PDSimpleFont.getEncoding().getEncodingName () throws a NullPointerException inside the library code for the attached sample-PDF.
> The situation can be reproduced, when running the following loop for the attached PDF (test.pdf):
>
>
> {code:java}
> PDDocument document = PDDocument.load (file);
> int pages = document.getNumberOfPages ();
> for (int i = 0; i < pages; ++i)
> {
> PDPage page = document.getPage (i);
> PDResources resources = page.getResources ();
> if (resources == null)
> continue;
> Iterator<COSName> iter = resources.getFontNames ().iterator ();
> while (iter.hasNext ())
> {
> COSName cos = iter.next ();
> try
> {
> PDFont font = resources.getFont (cos);
> System.out.println (font.getName ());
> if (font instanceof PDSimpleFont)
> {
> PDSimpleFont simpleFont = (PDSimpleFont) font;
> Encoding encoding = simpleFont.getEncoding ();
> if (encoding != null)
> {
> try
> {
> System.out.println ("* encoding="+encoding.getEncodingName ());
> }
> catch (Exception e)
> {
> e.printStackTrace ();
> }
> }
> }
> }
> catch (IOException e)
> {
> e.printStackTrace ();
> }
> }
> }
> document.close ();
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org