You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by Grant McAuley <gm...@llu.edu> on 2006/02/16 05:12:17 UTC
PFBParser - ArrayIndexOutOfBoundsException
I am trying to embed a Type1 font in a PDF using fop 0.91beta in a servlet and
am seeing the exception below. When I do not embed fonts but use a Base font
like 'Times', everything works fine.
Googling org.apache.fop.fonts.type1.PFBParser ArrayIndexOutOfBoundsException
only gave links to fop-x.x.x-.tar.gz files, and searching fop forum archives
did not give any relevant results.
I am hoping that someone could give me some thoughts on how to track this
problem down.
Here is a portion of my .conf file:
<font metrics-url="/home/grant/cert/build/web/caslon3.xml" kerning="yes"
embed-url="file:///home/grant/cert/build/web/CTR_____.PFM">
<font-triplet name="caslon3" style="normal" weight="normal"/>
<font-triplet name="caslon3" style="normal" weight="bold"/>
</font>
Here is a portion of my XSLT style sheet that refers to the font:
<fo:block font-family="caslon3" font-size="14pt" font-style="normal"
font-weight="normal" space-after="14pt" text-align="center"> has completed
education in </fo:block>
Here is the exception that I am seeing:
java.lang.ArrayIndexOutOfBoundsException: 1067
at org.apache.fop.fonts.type1.PFBParser.byteCmp(PFBParser.java:166)
at org.apache.fop.fonts.type1.PFBParser.calcLengths(PFBParser.java:183)
at org.apache.fop.fonts.type1.PFBParser.parseRAWFormat
(PFBParser.java:232)
at org.apache.fop.fonts.type1.PFBParser.parsePFB(PFBParser.java:99)
at org.apache.fop.pdf.PDFFactory.makeFontFile(PDFFactory.java:1166)
at org.apache.fop.pdf.PDFFactory.makeFontDescriptor
(PDFFactory.java:1088)
at org.apache.fop.pdf.PDFFactory.makeFont(PDFFactory.java:976)
at org.apache.fop.pdf.PDFResources.addFonts(PDFResources.java:101)
at org.apache.fop.render.pdf.PDFRenderer.stopRenderer
(PDFRenderer.java:266)
at
org.apache.fop.area.RenderPagesModel.endDocument(RenderPagesModel.java:228)
at org.apache.fop.area.AreaTreeHandler.endDocument
(AreaTreeHandler.java:326)
at org.apache.fop.fo.FOTreeBuilder.endDocument(FOTreeBuilder.java:246)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endDocument
(ToXMLSAXHandler.java:182)
at cert.transform()
at
com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform
(AbstractTranslet.java:594)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform
(TransformerImpl.java:640)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform
(TransformerImpl.java:279)
at cert.TrainingCert.render(TrainingCert.java:288)
at cert.TrainingCert.renderXML(TrainingCert.java:246)
at cert.TrainingCert.doGet(TrainingCert.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:173)
at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter
(MonitorFilter.java:362)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler
.processConnection
(Http11Protocol.java:744)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
Re: PFBParser - ArrayIndexOutOfBoundsException
Posted by Jeremias Maerki <de...@jeremias-maerki.ch>.
What I know about Type 1 font is from the Adobe website:
http://partners.adobe.com/public/developer/font/index.html
...by reading the various specifications. Not really a high-level
overview over Type 1 fonts. :-)
On 16.02.2006 20:28:46 Grant McAuley wrote:
<snip/>
> Could you (or anyone) point me to where I could learn a little more about .afm,
> .pfm, .pfb, etc. files and fonts in general?
Jeremias Maerki
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
Re: PFBParser - ArrayIndexOutOfBoundsException
Posted by Grant McAuley <gm...@llu.edu>.
Thank you Jeremias (see below)
Jeremias Maerki <dev <at> jeremias-maerki.ch> writes:
> One day we have to add code that identifies the file type so we can give
> a more meaningful error message. The error is easily fixed, see inline
> below...
...
> "embed-url" must reference the PFB (!) file, not the PFM files. The PFB
> contains the font. The PFM only contains font metrics but they are
> already available in the XML file.
>
Yes, a 'wrong file type error' would have helped. However, (now) I do see the
.pfb file in the in the code snippet under the '4.4 Register Fonts with FOP'
heading of the 'Fonts' documentation. Also, I should have recognized the fact
that the exception occured in the '*PFB*Parser' class as a BIG clue. My bad!
Could you (or anyone) point me to where I could learn a little more about .afm,
.pfm, .pfb, etc. files and fonts in general?
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
Re: PFBParser - ArrayIndexOutOfBoundsException
Posted by Jeremias Maerki <de...@jeremias-maerki.ch>.
One day we have to add code that identifies the file type so we can give
a more meaningful error message. The error is easily fixed, see inline
below...
On 16.02.2006 05:12:17 Grant McAuley wrote:
> I am trying to embed a Type1 font in a PDF using fop 0.91beta in a servlet and
> am seeing the exception below. When I do not embed fonts but use a Base font
> like 'Times', everything works fine.
>
> Googling org.apache.fop.fonts.type1.PFBParser ArrayIndexOutOfBoundsException
> only gave links to fop-x.x.x-.tar.gz files, and searching fop forum archives
> did not give any relevant results.
>
> I am hoping that someone could give me some thoughts on how to track this
> problem down.
>
>
> Here is a portion of my .conf file:
>
>
> <font metrics-url="/home/grant/cert/build/web/caslon3.xml" kerning="yes"
> embed-url="file:///home/grant/cert/build/web/CTR_____.PFM">
^^^^^^^^^^^^^^^^
"embed-url" must reference the PFB (!) file, not the PFM files. The PFB
contains the font. The PFM only contains font metrics but they are
already available in the XML file.
> <font-triplet name="caslon3" style="normal" weight="normal"/>
> <font-triplet name="caslon3" style="normal" weight="bold"/>
> </font>
>
>
> Here is a portion of my XSLT style sheet that refers to the font:
>
> <fo:block font-family="caslon3" font-size="14pt" font-style="normal"
> font-weight="normal" space-after="14pt" text-align="center"> has completed
> education in </fo:block>
>
>
> Here is the exception that I am seeing:
>
>
> java.lang.ArrayIndexOutOfBoundsException: 1067
> at org.apache.fop.fonts.type1.PFBParser.byteCmp(PFBParser.java:166)
> at org.apache.fop.fonts.type1.PFBParser.calcLengths(PFBParser.java:183)
> at org.apache.fop.fonts.type1.PFBParser.parseRAWFormat
> (PFBParser.java:232)
> at org.apache.fop.fonts.type1.PFBParser.parsePFB(PFBParser.java:99)
> at org.apache.fop.pdf.PDFFactory.makeFontFile(PDFFactory.java:1166)
> at org.apache.fop.pdf.PDFFactory.makeFontDescriptor
> (PDFFactory.java:1088)
> at org.apache.fop.pdf.PDFFactory.makeFont(PDFFactory.java:976)
> at org.apache.fop.pdf.PDFResources.addFonts(PDFResources.java:101)
> at org.apache.fop.render.pdf.PDFRenderer.stopRenderer
> (PDFRenderer.java:266)
> at
> org.apache.fop.area.RenderPagesModel.endDocument(RenderPagesModel.java:228)
> at org.apache.fop.area.AreaTreeHandler.endDocument
> (AreaTreeHandler.java:326)
> at org.apache.fop.fo.FOTreeBuilder.endDocument(FOTreeBuilder.java:246)
> at
> com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endDocument
> (ToXMLSAXHandler.java:182)
> at cert.transform()
> at
> com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform
> (AbstractTranslet.java:594)
> at
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform
> (TransformerImpl.java:640)
> at
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform
> (TransformerImpl.java:279)
> at cert.TrainingCert.render(TrainingCert.java:288)
> at cert.TrainingCert.renderXML(TrainingCert.java:246)
> at cert.TrainingCert.doGet(TrainingCert.java:156)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
> (ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter
> (ApplicationFilterChain.java:173)
> at
> org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter
> (MonitorFilter.java:362)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
> (ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter
> (ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke
> (StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke
> (StandardContextValve.java:178)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke
> (StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler
> .processConnection
> (Http11Protocol.java:744)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
> (PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
> (LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
> (ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
Jeremias Maerki
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org