You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/07/19 17:53:34 UTC
svn commit: r1836286 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Author: tilman
Date: Thu Jul 19 17:53:34 2018
New Revision: 1836286
URL: http://svn.apache.org/viewvc?rev=1836286&view=rev
Log:
PDFBOX-4268: ignore barcode font if we aren't searching for one
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java?rev=1836286&r1=1836285&r2=1836286&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java Thu Jul 19 17:53:34 2018
@@ -560,6 +560,14 @@ final class FontMapperImpl implements Fo
PDPanoseClassification panose = fontDescriptor.getPanose().getPanose();
if (panose.getFamilyKind() == info.getPanose().getFamilyKind())
{
+ if (panose.getFamilyKind() == 0 &&
+ (info.getPostScriptName().toLowerCase().contains("barcode") ||
+ info.getPostScriptName().startsWith("Code")) &&
+ !probablyBarcodeFont(fontDescriptor))
+ {
+ // PDFBOX-4268: ignore barcode font if we aren't searching for one.
+ continue;
+ }
// serifs
if (panose.getSerifStyle() == info.getPanose().getSerifStyle())
{
@@ -624,6 +632,22 @@ final class FontMapperImpl implements Fo
return queue;
}
+ private boolean probablyBarcodeFont(PDFontDescriptor fontDescriptor)
+ {
+ String ff = fontDescriptor.getFontFamily();
+ if (ff == null)
+ {
+ ff = "";
+ }
+ String fn = fontDescriptor.getFontName();
+ if (fn == null)
+ {
+ fn = "";
+ }
+ return ff.startsWith("Code") || ff.toLowerCase().contains("barcode") ||
+ fn.startsWith("Code") || fn.toLowerCase().contains("barcode");
+ }
+
/**
* Returns true if the character set described by CIDSystemInfo is present in the given font.
* Only applies to Adobe-GB1, Adobe-CNS1, Adobe-Japan1, Adobe-Korea1, as per the PDF spec.