gpt4 book ai didi

c# - 在 C# 中从 XML XSLT 创建 PDF 的最佳方式

转载 作者:数据小太阳 更新时间:2023-10-29 01:51:23 24 4
gpt4 key购买 nike

我需要创建 XML 记录的 PDF。我认为没有办法直接从 xml 创建 pdf 但使用 XSLT 或 XSL FO 我相信它可以完成。我一直在阅读大量文章,寻找使用 C# 执行此操作的好方法。

--> 在此期间最好的方法是什么?任何例子都会很棒。

我的场景:

我的 XML 看起来像:

<Products>
<Brand name="Test">
<Quantity value="2/>
<Price value="$20"/>
</Brand>
<Brand name="Test2">
<Quantity value="3/>
<Price value="$30"/>
</Brand>
<Brand name="Test3">
<Quantity value="4/>
<Price value="$40"/>
</Brand>
</Products>

我如何创建一个包含显示所有这些信息的表格的 pdf?

我知道有很多类似的问题,但其中大部分都已过时。非常感谢任何帮助。

最佳答案

过去我使用过一个名为 Ibex PDF Creator 的商业图书馆使用非常有效的 XSL-FO 标准从 XML 数据生成 PDF 文档。

这是我将如何使用它的示例:

XML 数据:

<DocumentRoot>
<!-- Some content -->
</DocumentRoot>

XSL-FO 布局:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/DocumentRoot">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:ibex="http://www.xmlpdf.com/2003/ibex/Format">
<ibex:properties
title="Some document"
subject=""
author=""
keywords=""
creator="" />
<fo:layout-master-set>
<fo:simple-page-master master-name="A4" page-width="210mm" page-height="297mm">
<fo:region-body margin-bottom="1cm" margin-top="3cm"/>
<fo:region-before extent="20mm"/>
<fo:region-after extent="8mm"/>
<fo:region-start extent="1mm"/>
<fo:region-end extent="1mm"/>
</fo:simple-page-master>
</fo:layout-master-set>
</<fo:root>
</xsl:template>
</xsl:stylesheet>

在 .NET 中生成 PDF 文档:

var data = new MemoryStream(dataBytes);
var layout = new MemoryStream(layoutBytes);
var pdf = new MemoryStream();

// Using the Ibex PDF Creator .NET API
var doc = new FODocument();
doc.generate(data, layout, pdf);

希望对您有所帮助。

关于c# - 在 C# 中从 XML XSLT 创建 PDF 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17589204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com