我正在瀏覽Apache FOP快速入門。從命令行轉換一個簡單的xml文件,其中包含一個svg元素並將其轉換爲pdf文件。我能夠做到這一點,但svg生成的圖像正在被切斷。我是XSL-FO & Apache FOP的新手,但我查看了屬性的w3c文檔。不幸的是,現在我更加困惑。我已經嘗試過以下幾個方面,但沒有成功:在svg本身中改變了寬度&高度屬性;將頁面高度&頁面寬度設置爲簡單頁面主元素中的「自動」;消除保證金屬性。我沒有看到任何指示區域主體以某種默認大小開始的內容。如何保持我的內容不被aft fop截斷?
這裏是XML:
<chart>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="600" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
<circle cx="100" cy="100" r="40" stroke="black" stroke-width="2" fill="green" />
</svg>
而這裏的XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master master-name="A4-portrait"
margin="10">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4-portrait">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:instream-foreign-object xmlns:svg="http://www.w3.org/2000/svg" content-width="600" content-height="300">
<svg:svg>
<xsl:copy-of select="/chart/svg:svg"/>
</svg:svg>
</fo:instream-foreign-object>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
的圖像應該顯示一個紅色&綠色圓圈重疊的,但它只是顯示綠色的一個左上角。我希望在我缺少的塊元素中有一個屬性,但我不知道哪個屬性。我看起來像塊被限制爲100px x 100px大小。
我錯過了哪些屬性,以及如何讓整個svg圖像正確顯示(兩個整圓重疊)?
感謝,
勃蘭特
PS:我會發送出該問題的形象,但我沒有足夠高的聲譽。
即使沒有測試...我看到這個:content-width =「600」content-height =「300」 300什麼?磅,英寸,英里...... –
爲了完全技術性,您呈現的SVG的高度設置爲100.它具有一個綠色圓圈,其中心點以100,100開始,半徑爲40.您將永遠不會看到下半部分的圓,永遠。 –