문제

나는 초기부터 Birt를 사용하지만 여전히 PDF 이미 터와 관련된 수수께끼가 있습니다.

단편: fontsconfig.xml을 상대 경로 나 항아리에서로드하도록 구성 할 수 있습니까?

긴 이야기:웹 응용 프로그램에서 PDF를 생성하기 위해 FOP와 BIRT를 모두 사용하고 있습니다. 라이브러리 간 글꼴을 공유하는 것이 좋을 것입니다. 불행히도 Birt 2.3.1과 함께 할 수있는 방법을 찾을 수 없습니다.

악의 근본은 fontsconfig.xml 아래 그림처럼 구성되면 잘 작동합니다.

<font-paths>
<path path="fonts"/>
</font-paths>

그러나 Path는 클래스 경로가 아닌 상대 경로를 사용할 수 없습니다 (또는 구성 방법을 찾을 수 없습니다). config1 또는 config2는 작동하지 않습니다.

config1 :

<font-paths>
<path path="../fonts"/>
</font-paths>

config2 :

<font-paths>
<path path="classpath:fonts"/>
</font-paths>

모든 생각은 감사 할 것입니다.

도움이 되었습니까?

해결책

일부 BIRT 버전을 사용하면 SystemProperty "Birt.Font.Dirs"를 사용할 수 있습니다. 이것은 fontsconfig.xml을 무시합니다.

글쎄, 이것은 한 번 효과가 있었지만 분명히 나중에 Birt 소스 코드에서 제거되었습니다.

이제 당신은 같은 것을 부를 수 있습니다

EngineConfig engineConfig = new EngineConfig();
URL fontsConfigurationURL = new URL("file:///path/to/my/fontsConfig.xml");
engineConfig.setFontConfig(fontsConfigurationURL);

Platform.startup(engineConfig);

이를 통해 버트에 항아리를 찌르지 않고 Fontsconfig.xml의 맞춤형 버전을 공급할 수 있습니다.

Birt 4.3.0으로 테스트.

다른 팁

Birt에서 사용할 상대 경로에 글꼴을 사용하는 방법이 있습니다.

당신이해야 할 일은 글꼴을 웹 응용 프로그램의 위치에 복사하는 것입니다. 광산은 : C : src main webapp reports

이제 응용 프로그램에서 다음 명령을 사용하여 위에서 언급 한 위치에서 글꼴을 등록하십시오.

FontFactory.registerDirectory( scContext.getRealPath("/Reports") );

글꼴을 등록합니다.

Spring MVC를 통해 BIRT 4.3에서 테스트

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top