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

problem displaying Japanese fonts in PDF.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Resolution: Cannot Reproduce
    • 0.15
    • None
    • renderer/pdf
    • None
    • Operating System: All
      Platform: HP
    • 27727

    Description

      I have a problem while rendering XML containing unicode characters into japanese
      characters.

      I am working on Weblogic 8.1 on NT OS. When the font
      file(Msmincho.ttf) is placed in c:/winnt/fonts
      directory the rendering works fine and pdf is
      generated with Japanese Characters. But when the ttf
      file is place in a different folder I get the
      following exception even though I have made an entry in basedir element of
      userconfig file.

      java.lang.NullPointerException
      at
      org.apache.fop.render.pdf.fonts.LazyFont.getAscender(LazyFont.java:82)
      at
      org.apache.fop.layout.FontState.getAscender(FontState.java:56)
      at
      org.apache.fop.layout.LineArea.<init>(LineArea.java:111)
      at
      org.apache.fop.layout.BlockArea.start(BlockArea.java:181)
      at
      org.apache.fop.fo.flow.Block.layout(Block.java:251)
      at
      org.apache.fop.fo.flow.TableCell.layout(TableCell.java:269)
      at
      org.apache.fop.fo.flow.TableRow.layout(TableRow.java:344)
      at
      org.apache.fop.fo.flow.TableBody.layout(TableBody.java:172)
      at
      org.apache.fop.fo.flow.Table.layout(Table.java:247)
      at
      org.apache.fop.fo.flow.Flow.layout(Flow.java:156)
      at
      org.apache.fop.fo.flow.Flow.layout(Flow.java:113)
      at
      org.apache.fop.fo.pagination.PageSequence.format(PageSequence.java:296)
      at
      org.apache.fop.apps.StreamRenderer.render(StreamRenderer.java:200)
      at
      org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:182)
      at
      org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
      Source)
      at
      org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
      Source)
      at
      org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
      Source)
      at
      org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
      Source)
      at
      org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
      Source)
      at
      org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
      Source)
      at
      org.apache.xerces.parsers.XMLParser.parse(Unknown
      Source)
      at
      org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
      Source)
      at
      org.apache.fop.apps.Driver.render(Driver.java:481)
      at
      org.apache.fop.apps.Driver.run(Driver.java:554)
      at
      com.db.eqr.ger.ui.web.company.pdf.GenerateMYPDF.createPDF(GenerateMYPDF.java:150)
      at
      com.db.eqr.ger.ui.web.company.pdf.CompanyPDFAction.execute(CompanyPDFAction.java:146)
      at
      org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:465)
      at
      org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
      at
      org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
      at
      org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:523)
      at
      javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
      at
      javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at
      weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
      at
      weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
      at
      weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
      at
      weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)

      Can anyone help me out and let me know what could be the problem here.

      I have used the following userconfig file.

      <!-<!DOCTYPE configuration SYSTEM "config.dtd">->
      <!--
      this file contains templates which allow an user
      easy
      configuration of Fop. Actually normally you don't
      need this configuration
      file, but if you need to change configuration,
      you should
      always use this file and not config.xml.
      Usage: java org.apache.fop.apps.Fop -c
      userconfig.xml -fo fo-file -pdf pdf-file
      -->

      <configuration>

      <!-- NOT IMPLEMENTED
      basedir: normally the base directory is the directory
      where the fo file is
      located. if you want to specify your own,
      uncomment this entry
      -->
      <entry>
      <key>baseDir</key>
      <value>c:/shyamajoshi/conf/fop</value>
      </entry>

      <!--
      ************************************************************************
      HYPHENATION
      ************************************************************************
      -->

      <!--
      hyphenation directory
      if you want to specify your own directory with
      hyphenation pattern
      then uncomment the next entry and add the directory
      name
      -->

      <!--
      <entry>
      <key>hyphenation-dir</key>
      <value>/java/xml-fop/hyph</value>
      </entry>
      -->

      <!--
      ************************************************************************
      Add fonts here
      ************************************************************************
      -->

      <fonts>
      <!-- example -->
      <!--
      <font metrics-file="arial.xml" kerning="yes"
      embed-file="arial.ttf">
      <font-triplet name="Arial" style="normal"
      weight="normal"/>
      <font-triplet name="ArialMT" style="normal"
      weight="normal"/>
      </font>
      <font metrics-file="arialb.xml" kerning="yes"
      embed-file="arialb.ttf">
      <font-triplet name="Arial" style="normal"
      weight="bold"/>
      <font-triplet name="ArialMT" style="normal"
      weight="bold"/>
      </font>
      <font metrics-file="ariali.xml" kerning="yes"
      embed-file="ariali.ttf">
      <font-triplet name="Arial" style="italic"
      weight="normal"/>
      <font-triplet name="ArialMT" style="italic"
      weight="normal"/>
      </font>
      <font metrics-file="arialbi.xml" kerning="yes"
      embed-file="arialbi.ttf">
      <font-triplet name="Arial" style="italic"
      weight="bold"/>
      <font-triplet name="ArialMT" style="italic"
      weight="bold"/>
      </font>
      -->
      <!-- Example Japanese fonts
      <font metrics-file="msgothic.xml"
      embed-file="D:\winnt\font\msgothic.ttc" kerning="yes">
      <font-triplet name="Gothic" style="normal"
      weight="normal"/>
      <font-triplet name="Gothic" style="normal"
      weight="bold"/>
      <font-triplet name="Gothic" style="italic"
      weight="normal"/>
      <font-triplet name="Gothic" style="italic"
      weight="bold"/>
      </font>
      <font metrics-file="msmincho.xml"
      embed-file="Cyberbit.ttf" kerning="yes">
      <font-triplet name="Mincho" style="normal"
      weight="normal"/>
      <font-triplet name="Mincho" style="normal"
      weight="bold"/>
      <font-triplet name="Mincho" style="italic"
      weight="normal"/>
      <font-triplet name="Mincho" style="italic"
      weight="bold"/>
      </font>
      -->
      <font metrics-file="msmincho.xml"
      embed-file="msmincho.ttf" kerning="yes">
      <font-triplet name="MSMincho" style="normal"
      weight="normal"/>
      <font-triplet name="MSMincho" style="normal"
      weight="bold"/>
      <font-triplet name="MSMincho" style="italic"
      weight="normal"/>
      <font-triplet name="MSMincho" style="italic"
      weight="bold"/>
      </font>

      </fonts>

      </configuration>

      Regards,
      Shyama

      Attachments

        Activity

          People

            Unassigned Unassigned
            mksjoshi@yahoo.com shyama
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: