2014-02-26 117 views
1

我有一個應用程序使用Apache FOP從某個數據對象生成PDF。該數據對象是一些字符串屬性的集合,其中一些可能包含非打破空間轉義序列。這些轉義序列編碼爲" "Apache FOP問題

我面臨的問題是PDF顯示 而不是空格!

我需要在我的PDF中顯示幾個空格。在我的數據中放入幾個空格字符而不是幾個" "轉義序列會導致呈現的單個空間太小。

我不熟悉XSLT,因爲另一個團隊成員製作了樣式表,所以我的理解如下。

這裏是我的XSLT模板一節..

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

我understant,上面的將發送到輸出PDF無論是在名稱「付款人」下的輸入。有時候,輸入數據被認爲是「drawee」,需要包含非中斷空格並將其指定爲&#160;不會在PDF中產生正確的結果。

如何解決這個問題的任何想法?

+0

「編碼爲」意味着它們是這樣插入的?似乎你指望FOP來翻譯這個XML/HTML表示法。這是否適用於其他類似的條目?當你把這個字符作爲UTF-8插入時,它能正常工作嗎? – usr2564301

+0

[This might help ...](http://stackoverflow.com/questions/22013570/how-to-add-newline-after-an-xml-node-so-that-fop-will-recognize-whitespace/ ) –

+0

據我所知, 是在一個非破壞性空間的XML文件中應該輸入的內容。我認爲FOP也會把它當作非破壞性空間 –

回答

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不客氣。如果它解決了你的問題,請考慮接受這個問題(標記左邊的勾號)。 –