2016-07-09 6 views
1

Apache FOP 종속성이있는 OSGi 청사진 컨테이너가 있습니다. 기본 구성으로 PDF를 생성 할 때 러시아 심볼 (#### 대신 텍스트)에 문제가 있습니다. OSGi 테스트 응용 프로그램이 아니라면이 문제는 쉽게 해결할 수 있습니다. 사용자 정의 fop.xconf 설정 파일과 동일한 디렉토리에 두 개의 arial * .ttf 글꼴 파일을 사용합니다. fop.xconf의 자동 감지 기능도이 문제를 해결합니다.OSGi 청사진 컨테이너의 Apache FOP 구성 및 글꼴 읽기

그러나 OSGi 청사진 컨테이너에서 번들 자원에서 conf 파일을 읽을 수 없습니다. 누구나 청사진 컨테이너에서 xconf와 글꼴을 읽는 방법을 보여줄 수 있습니까? 또는 리소스를 읽지 않고 프로그래밍 방식으로 글꼴을 구성하는 방법은 무엇입니까?

답변

1

그래서 해결책을 찾았습니다. 우리는 "bundleresource : // ..."로 파일을()를 사용할 수 없습니다 경로, 그러나 우리는 URI()를 사용할 수 있습니다 : 우리는 우리의 번들 자원과 패스에서의 conf 파일 입력 스트림을 열고이 경우

 URL url = getClass().getClassLoader().getResource(FOP_XCONF_FILE); 
     fopFactory = FopFactory.newInstance(url.toURI(), url.openStream()); 

을 특수한 FopFactory.newInstance() 정의를 사용합니다. Fop.xconf 요소가있는 XML은 매력처럼 작동합니다.