2016-07-21 5 views
1

일부 PDF를 렌더링하는 데 ApacheFOP을 사용하고 있습니다. 이 PDF에서 나는 가장자리를위한 SVG를 사용하여 둥근 상자를 그립니다 :ApacheFOP svg 배경이 매우 느림

<fo:table-cell 
    number-columns-spanned="2" 
    background-image="/images/top-left.svg" 
    background-repeat="no-repeat"> 
     <fo:block/> 
</fo:table-cell> 

을 상단 left.svg 파일이 아주 간단 여기서, 바닥

<svg width="10px" height="10px" xmlns="http://www.w3.org/2000/svg"> 
    <circle cx="10px" cy="10px" r="9.5px" stroke="black" stroke-width="1px" fill="none" /> 
</svg> 

같은이 오른쪽 상단에 대해 반복된다 - 왼쪽 및 오른쪽 하단.

문제는 생산 서버 ApacheFOP 2.1 렌더링에 ApacheFOP 0.95에서 갱신 후의 각 SVG 위해 ~ 15 초 걸리는 점이다. 컴퓨터에서 문제를 재현 할 수 없습니다.

내 개발자 데스크톱과 프로덕션 서버 모두에서 Linux가 실행 중입니다.

SVG 렌더링 속도가 느려질 수있는 시스템 요소가 있습니까?

감사

답변

1

지연은 각각 SVG의 DTD 스키마의 다운로드에 의해 발생했다. 다운로드가 Barcode4J에 의해 수행 되었기 때문에 그것을 발견하기가 어려웠습니다. ApacheFOP 자체가 아니라. 좀 더 구체적으로 말하자면 PreloaderSVG 전에 호출 되었기 때문에 SVG를 구문 분석하려고했던 BarcodePreloader 클래스였습니다. SVG 파일에서 DTD 선언을 일시적으로 제거했습니다.