2017-11-21 2 views
1

AFP에서 Apache FOP 2.2와 함께 트루 타입 글꼴을 사용하려고합니다.AFP에서 TrueType 글꼴을 Apache FOP와 함께 사용하는 방법은 무엇입니까?

는 내가 제대로 일을 구성 생각하지만, 나는 다음과 같은 예외가 받고 있어요 :

<renderer mime="application/x-afp"> 
    <fonts> 
     <font name="Script MT Bold" kerning="yes" embed-url="/fonts/SCRIPTBL.TTF"> 
      <font-triplet name="Script MT Bold" style="normal" weight="normal"/> 
     </font> 
    </fonts> 
</renderer> 

내가 추가 구성이 필요합니까 : 아래

java.lang.ClassCastException: org.apache.fop.afp.modca.MapDataResource cannot be cast to org.apache.fop.afp.modca.MapCodedFont 
    at org.apache.fop.afp.modca.ActiveEnvironmentGroup.getCurrentMapCodedFont(ActiveEnvironmentGroup.java:286) 
    at org.apache.fop.afp.modca.ActiveEnvironmentGroup.createFont(ActiveEnvironmentGroup.java:201) 
    at org.apache.fop.afp.modca.AbstractPageObject.createFont(AbstractPageObject.java:149) 
    at org.apache.fop.afp.DataStream.createFont(DataStream.java:331) 
    at org.apache.fop.afp.DataStream.addFontsToCurrentPage(DataStream.java:313) 
    at org.apache.fop.render.afp.AFPDocumentHandler.endPage(AFPDocumentHandler.java:310) 
    at org.apache.fop.render.intermediate.util.IFDocumentHandlerProxy.endPage(IFDocumentHandlerProxy.java:167) 
    at org.apache.fop.render.intermediate.EventProducingFilter.endPage(EventProducingFilter.java:48) 
    at org.apache.fop.render.intermediate.IFRenderer.renderPage(IFRenderer.java:603) 
    at org.apache.fop.area.RenderPagesModel.renderPage(RenderPagesModel.java:193) 
    at org.apache.fop.area.RenderPagesModel.checkPreparedPages(RenderPagesModel.java:174) 
    at org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:146) 
    at org.apache.fop.layoutmgr.AbstractPageSequenceLayoutManager.finishPage(AbstractPageSequenceLayoutManager.java:316) 
    at org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:226) 
    at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:145) 
    at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267) 
    at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:130) 
    at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:360) 
    at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190) 

내 conf.xml 구성의 조각입니다 ?

또한 AFP에 트루 타입 글꼴을 포함해야합니까, 아니면 간단히 참조를 포함하고 메인 프레임 프린터를 사용하여 해결할 수 있습니까?

답변

2

나는 또한 같은 예외에 직면했다. 현재 페이지 렌더링을위한 글꼴을 만드는 동안 FOP가 AbstractStructuredObject의 목록을 채우는 것처럼 보입니다.

트루 타입 글꼴을로드하는 동안 FOP는 MapDataResource를 만들어 AbstractStructuredObject 목록에 채 웁니다.

그러나 페이지에 래스터 글꼴과 같은 다른 글꼴이 있으면이 래스터 글꼴을로드하기 전에 목록에서 가장 최근의 AbstractStructuredObject를 가져 와서 MapCodedFont에 형식 변환합니다. 최근의 대부분의 객체는 MapDataResource 유형이므로 ClassCastException을 얻습니다.

해결 방법 저는 현재 AFP 문서에 트루 타입 글꼴 만 사용하고 있고 글꼴 구성 중 하나에 기본 글꼴 - 쌍둥이를 추가했습니다.

<font name="Script MT Bold" kerning="yes" embed-url="/fonts/SCRIPTBL.TTF"> 
    <font-triplet name="Script MT Bold" style="normal" weight="normal"/> 
    <font-triplet name="any" style="normal" weight="normal"/> 
</font> 
관련 문제