Câu hỏi đầu tiên từ tôi; Tôi hiện đang sửa một dịch vụ vẽ đồ thị sử dụng XSLFO để chuyển đổi cú pháp của chúng tôi thành FO và chuyển đổi nó sang PDF cuối cùng.Hiển thị SVG bằng XSLFO
Trước đây chúng tôi đã sử dụng đồ thị PNG từ web trong xuất PDF, nhưng điều này tạo ra kết quả thực sự xấu xí, vì vậy chúng tôi đã quyết định đi với SVG cho PDF để thay thế.
Tuy nhiên, SVG dường như không mở rộng quy mô vào khung SVG đúng cách.
Đây là cú pháp trước khi chạy vào XSLFO:
<img src="someimage.svg">
Và đây là XSLFO Tôi đang sử dụng:
<xsl:template match="img">
<fo:block space-after="12pt">
<fo:instream-foreign-object width="20cm" height="15cm" content-width="scale-to-fit" content-height="scale-to-fit" scaling="uniform" background-color="#cccccc">
<svg:svg x="0" y="0" width="100" height="100" viewBox="0 0 100 100">
<svg:image x="0" y="0" width="100" height="100">
<xsl:if test="@src">
<xsl:attribute name="xlink:href">
<xsl:choose>
<xsl:when test="starts-with(@src, 'http://')">
<xsl:value-of select="@src"/>
</xsl:when>
<xsl:when test="starts-with(@src, 'https://')">
<xsl:value-of select="@src"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($baseurl, @src)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:if>
</svg:image>
</svg:svg>
</fo:instream-foreign-object>
</fo:block>
</xsl:template>
Các SVG không xuất hiện trong PDF, và nó dường như chứa trong canvas - nhưng vì bất kỳ lý do gì tôi không thể làm cho nó mở rộng đúng cách. Nó thực sự rất lớn, và kết quả là một phiên bản cực kỳ cắt của SVG.
Tôi đang hết đề xuất ở đây - có ai ở đây có trải nghiệm với điều này không?
PS: Hình ảnh được tạo bằng phiên bản Batik mới nhất và chiều rộng và chiều cao được đặt chính xác.