저는 XSL-FO에서 공백 처리에 관한 몇 가지 팁을 혼동합니다. (단락 내부)eXist-db 응용 프로그램에서 생성 된 XSL-FO에서 줄 바꿈을 버리는 방법은 무엇입니까?
샘플 : 단락에서 사용
<hi rendition="simple:italic"> jeden její prvek i(</hi>
<hi rendition="simple:bold-italic">E</hi>
<hi rendition="simple:italic">)</hi>
특성 (모든 hi
의 부모)
<xsl:attribute name="linefeed-treatment">ignore</xsl:attribute>
<xsl:attribute name="white-space-treatment">preserve</xsl:attribute>
<xsl:attribute name="white-space-collapse">true</xsl:attribute>
...
jeden její prvek 제가
( 생산 e )서식이 좋으며 이탤릭체와 굵은 이탤릭체가 모두 적합합니다. 문제는 대괄호 안에있는 공백입니다.
문제점이 개별 요소의 eXist-db 처리로 인해 발생할 수 있는지 여부는 알 수 없습니다. eXide에서 파일을 열 때마다 자동으로 모든 인라인 요소가 별도의 줄로 나뉩니다. 이것이 FOP에 파일을 제공하는 동안의 경우이고 linebreak가 U + 000A와 다른 경우, 나는 잃어 버릴 것이라고 생각합니다.
UPDATE I
내 앱 내부 일반적인 문서 처리가 다소 복잡하지만 이런 식 테스트 할 때 결과는 동일하다 :
- 변수로
doc()
기능을 갖는 문서를 로딩하는 단계; - 스타일 시트를 통해 변수를 전달하고이를 다른 변수에 저장하십시오.
- 두 번째 변수를
xslfo:render()
함수에 전달하십시오. - pdf 결과를 직접 스트리밍하거나 DB에 저장하십시오.
test.fo
으로 중간 제품을 저장할 수는 있지만 내부에 공백 문제가있는 이유는 분명하지 않습니다. 나는 문제가 연속적인 인라인 요소에 대해 전형적이라고 생각한다. 나는이 fo
와 PDF 파일을 생성하려고하면
UPDATE는 II
, 결과는 예상대로 :
<fo:root xml:lang="en" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master page-height="297mm" page-width="210mm" margin-top="10mm" margin-left="20mm" margin-right="20mm"
margin-bottom="10mm" master-name="PageMaster1">
<fo:region-body margin-top="0mm" margin-left="0mm" margin-right="0mm" margin-bottom="10mm" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="PageMaster1">
<fo:flow flow-name="xsl-region-body">
<fo:block text-align="justify">
<fo:block>Lorem ipsum dolor
<fo:inline font-style="italic">test(</fo:inline>
<fo:inline font-weight="bold">E</fo:inline>
<fo:inline font-style="italic">)end</fo:inline>
next lorem.</fo:block>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
내가 테스트 fo
파일을 저장하려고하면이 문제가있는 부분은 그렇게 보인다 :
<fo:inline font-style="italic" color="#91046e" language="cs">jeden její prvek i(</fo:inline> <fo:inline font-weight="bold" font-style="italic" color="#5f3cb6" language="cs">E</fo:inline> <fo:inline font-style="italic" color="#91046e" language="cs">)</fo:inline>
따라서 내 스타일 시트에 문제가있는 것 같습니다. 예를 들어
, 이탤릭체 내 템플릿 :
<xsl:template match="tei:hi[@rendition='simple:italic']">
<fo:inline xsl:use-attribute-sets="italic">
<xsl:apply-templates/>
</fo:inline>
</xsl:template>
나는 순간에 특별한 공백이나 줄 바꿈 처리를 사용하지 않습니다. 나는 아무 효과없이 그것을 시도했다. 나는 또한 직렬화, 효과와 함께 놀려고했습니다.(특히 작은 epub 파일을 생성 할 때 사용하지만 여기서는 fo
출력이 동일하게 유지됩니다. Saxon에서는 직렬화 옵션을 덮어 씁니다. 인쇄는 아무리해도 파일을 그대로 사용합니다.)
eXist의 어떤 버전입니까? – joewiz
@joewiz, 3.1.1 –
conf.xml의 공백 설정은 무엇이며 FO를 생성하기 위해 스크립트가 따르는 파이프 라인 (또는 재현 가능한 테스트가 더 나은지)을 설명 할 수 있습니까? – joewiz