Uploaded image for project: 'FOP'
  1. FOP
  2. FOP-2665

Bug when using the bold version of an otf font - maybe bad fullName computation in OTFFile

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.1
    • Fix Version/s: 2.1
    • Component/s: unqualified
    • Labels:
      None
    • Environment:
      Windows 7 Service Pack 1, jdk1.7.0_40, fop-2.1, fontbox-1.8.12

      Description

      Overview
      I get this message when using the bold version of Noto Sans CJK JP :
      Font "Noto Sans CJK JP,normal,700" not found. Substituting with "Noto Sans CJK JP,normal,400".

      Steps to reproduce

      1. Use this xconf :

      <fop version="1.0">
      <use-cache>false</use-cache>
      <renderers>
      <renderer mime="application/pdf">
      <fonts>
      <!-- register all the fonts found in a directory -->
      <directory recursive="true">path to font directory</directory>
      </fonts>
      </renderer>
      </renderers>
      </fop>

      2. Set a valid path for "path to font directory", and set there the Noto Sans CJK JP fonts, that you can get from there :
      https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip

      3. Use the code from this page :
      https://xmlgraphics.apache.org/fop/2.1/embedding.html

      4. Use this "myfile.fo" as input :

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <!-- defines the layout master -->
      <fo:layout-master-set>
      <fo:simple-page-master master-name="first" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm">
      <fo:region-body margin-top="1cm"/>
      <fo:region-before extent="1cm"/>
      <fo:region-after extent="1.5cm"/>
      </fo:simple-page-master>
      </fo:layout-master-set>

      <!-- starts actual layout -->
      <fo:page-sequence master-reference="first">
      <fo:flow flow-name="xsl-region-body">
      <fo:block font-family="Noto Sans CJK JP" font-size="12pt" font-weight="bold">
      Some special characters:
      </fo:block>
      </fo:flow>
      </fo:page-sequence>
      </fo:root>

      Actual Results:
      I get this message :
      Font "Noto Sans CJK JP,normal,700" not found. Substituting with "Noto Sans CJK JP,normal,400".
      And my text in the generated pdf is not bold.

      Expected Results:
      The message should not appear, and the text in the generated pdf should be bold.

      Additional Information:
      If I change the OTFFile.readName() method with this code:
      @Override
      protected void readName() throws IOException {
      Object familyName = fileFont.getProperty("FamilyName");
      if (familyName != null && !familyName.equals(""))

      { familyNames.add(familyName.toString()); fullName = fileFont.getName(); }

      else

      { fullName = fileFont.getName(); familyNames.add(fullName); }

      }

      More precisely :
      I replace
      fullName = familyName.toString();
      by
      fullName = fileFont.getName();

      it solves the bug.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jeanfrancois.rolland Jean-Fran├žois ROLLAND
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: