2011-09-21 304 views
0

我有一個固定高度的單元格,我希望文本內部的字體大小相應地減少單元格內文本的數量。xsl-fo:在固定單元格中自動調整字體大小

UPDATE:

對不起。但我認爲你會明白是什麼問題。我試圖修改一些用於從XML創建PDF文檔的xslt模式。而且我必須讓文檔在一些空白處打印。不幸的是,我的空間有限,不知何故我必須在這個空間上放置XML數據。爲了方便,我使用表格。我必須在固定高度和寬度的單元格中定位數據。如果數據更長,那麼我預計細胞高度增加。我以某種方式避免它。但我希望保留所有數據,所以我不能使用換行。我認爲做自動調整字體大小會很酷。

+0

我想要一個紅色的法拉利,我可以打電話給我自己..你真正的問題是什麼?你試過什麼了?特別是有什麼特別不按預期工作? ... – Wivani

+0

我想調整固定高度的單元格中的字體大小,如果內容比預期更長。 – perfectgentleman

+1

再次,你不是很詳細。並回應您的澄清:是否它是一個固定寬度的單元格,如果它的內容的長度,使您想要在必要時減小字體大小?另外,你想盡可能地減少,還是有一個限制? ..而且,你在做Java/.Net /任何其他語言的東西嗎?或者這是在像Oxygen這樣的XML工具中完成的? ..我知道你可能不會發現我的反應非常友好,但我的意圖僅僅是讓問題達到人們可以真正幫助你找到答案的水平。 – Wivani

回答

1

我找到了一些有趣的方式來做到這一點。這不是自動的方式,但它可以幫助我解決我的問題。

<x:variable name="NDSPercent" select="./NDSPercent"/> 
<x:if test="string-length($NDSPercent) &lt; 3"> 
    <fo:block> 
    <x:value-of select="$NDSPercent"/> 
    </fo:block> 
</x:if> 
<x:if test="string-length($NDSPercent) &gt; 3"> 
    <fo:block font-size="8pt"> 
    <x:value-of select="$NDSPercent"/> 
    </fo:block> 
</x:if> 
0

打印和頁面佈局社區組@ W3C已經產生了一些擴展功能,可運行您的XSLT內的FO處理器獲得一個區域樹,以便您能夠根據格式化領域的決定。

您使用「調整‘字體大小’組排」例如在http://www.w3.org/community/ppl/wiki/XSLTExtensions#Example_5_-_Copyfitting_by_adjusting_.27font-size.27

這裏的大小,以填補一個盒子當時的PPL CG說明文字聽起來像:

PPL CG description sized to fill a box

如果您使用Antenna House的AH格式化程序,則可以使用其溢出擴展名來獲得AH格式化程序來爲您調整文本大小。看到多個擴展屬性http://www.antennahouse.com/product/ahf60/docs/ahf-ext.html#ext-overflow

相關問題