2014-02-26 4 views
1

Apache FOP를 사용하여 일부 데이터 개체에서 PDF를 생성하는 응용 프로그램이 있습니다. 이 데이터 객체는 String 속성의 모음이며 일부는 비 분리 문자 이스케이프 시퀀스를 포함 할 수 있습니다. 이러한 이스케이프 시퀀스는 " "으로 코딩됩니다.Apache FOP 문제

내가 직면 한 문제는 PDF가 공간 대신 ​​ 을 표시한다는 것입니다.

내 PDF에 여러 공백을 표시해야합니다. 여러 개의 공백 문자를 여러 개의 " " 이스케이프 시퀀스 대신 데이터에 배치하면 단일 공간이 너무 작게 렌더링됩니다.

다른 팀원이 스타일 시트를 제작 했으므로 XSLT에 익숙하지 않으므로 이해할 수 있습니다. 여기

<fo:block 
    font-size="7pt" font-weight="bold" 
    linefeed-treatment="preserve" margin-left="5pt"> 
    <xsl:value-of 
    select="drawee" /> 
</fo:block> 

내가 위가 이름 "지급인"의 입력에 무엇이든 출력 PDF로 보낼 것 understant .. 내 XSLT 템플릿에서 섹션입니다. 때로는 "drawee"로 간주되는 입력 데이터에는 줄 바꿈하지 않는 공백이 포함되어야하고 &#160;은 PDF에 올바른 결과를 생성하지 못하는 경우가 있습니다.

해결 방법에 대한 아이디어가 있으십니까?

+0

"코드로"는 그대로 삽입된다는 것을 의미합니까? 이 XML/HTML 표기법을 번역하기 위해 FOP에 의존하는 것처럼 보입니다. 다른 유사한 항목에도 사용할 수 있습니까? 이 문자를 UTF-8로 삽입하면 올바르게 작동합니까? – usr2564301

+0

[도움이 될 수 있습니다 ...] (http://stackoverflow.com/questions/22013570/how-to-add-newline-after-an-xml-node-so-that-fop-will-recognize-whitespace/) –

+0

이해 하겠지만,  은 줄 바꿈하지 않는 공간을 위해 XML 파일에 입력해야하는 대상입니다. 나는 FOP가 이것을 XSL-FO 코드에서 –

답변

1

아마도 변형되지 않은 공백이 변환 중에 축소됩니다. 시도해보십시오.

here의 관련 부분을 찾을 수 있습니다. 이 방법으로 문제가 해결되지 않으면

<fo:block 
    font-size="7pt" font-weight="bold" 
    linefeed-treatment="preserve" whitespace-collapse="false" margin-left="5pt"> 
    <xsl:value-of 
    select="drawee" /> 
</fo:block> 

, 대신 요소에서 검색의 휴식을 시도하고 하드 코드 재미있을 수 있습니다.

<fo:block 
    font-size="7pt" font-weight="bold" 
    linefeed-treatment="preserve" whitespace-collapse="false" margin-left="5pt"> 
    <xsl:value-of 
    select="start&#160;&#160;&#160;end" /> 
</fo:block> 

사이드 참고 : 다른 텍스트 내용 사이의 공백을 삽입하려는 경우 fo:block 별도의 단락으로 처리되기 때문에, fo:inline이 더 적합 할 수 있습니다.

+0

그게 효과가있다. 감사. –

+1

@PatrickLucas 환영합니다. 문제를 해결 한 경우이 질문을 수락하는 것을 고려해보십시오 (왼쪽의 체크 표시). –