2013-07-17 71 views
2

我遇到了使用XSL-FO生成PDF的問題。如何在頁面上放置兩列段落?

我有一個包含兩列的文檔,我想將一個段落(可以在頁面底部開始,如果有空格的話)保存在一個頁面上,而不會有任何分頁符。 主要目的是將該段移到下一頁。由於前面的內容是動態的,因此我無法在段落之前使用聲明的分頁符。文本本身有一個必須保留的換行符(white-space-collapse = false),並且後面有一個跨越行,使其顯示在頁面頂部的兩列中。事情我已經嘗試過:

  • 保持在一起,內頁=總是在段落,但沒有什麼變化
  • 保共同=總是在段落,一切都顯示在一行。設置保持在一行內= 0並且保持在一起在列內= 0,所有內容(8行文本)進入第二頁的右列,但兩行留在前一頁的左側o_0
  • 分頁-內部=避免在該段,殺死柱斷裂以及

必須被修改,以被保持在一個頁面上段的基部XSL-FO代碼:

<fo:block font-family="Font name" font-size="8.5pt" font-weight="normal" keep-with-next.within-column="always" line-height="10.5pt" orphans="5" text-align="left" widows="5"> 
<fo:block white-space-collapse="false">TEXT IN TWO COLUMNS</fo:block> 

我可以更改每個塊的屬性,但僅更改第一個塊將是最佳解決方案。

在此先感謝:]

回答

2

keep-together.within-column="always"應該給你你需要什麼不留孤兒線,這是一種遺傳性,所以不需要每個塊上規定,如果一個祖先塊上指定它。但是,在您的代碼片段中,您指定了keep-with-next=這不是繼承的。

只有一些屬性被繼承,而不是全部。查看我的XSL-FO書籍的第440/441頁,免費找到的「試用和購買」版本,網址爲http://www.CraneSoftwrights.com/training/#pfux(請注意頁碼爲A4版本;請參閱美國版本的第438/439頁)。

+0

不幸的是,我不能使用該屬性,因爲如我所說,文本應顯示在兩列中。 – atos88

+0

回想起來,我忽視了財產如何影響整個集合的段落。 'keep-together.within-column =「always」'屬性應該應用於每個單獨的塊,並且這將允許塊在兩個頁面列中分別流動,同時防止頁面列底部的任何孤行行。我早些時候的建議可能會把所有區塊放在一起。請原諒我的疏忽。 –

1

你曾經通過

keep-with-previous.within-column="always" 

試圖將先檢查再上一列根據所作出安排。

相關問題