【问题标题】:PDFSharp with xml template in c#C#中带有xml模板的PDFSharp
【发布时间】:2011-12-28 11:07:09
【问题描述】:

我在我的 c# 项目中使用 PDFSharp。在我之前的工作中,我使用了 aspose 的一个 PDF 组件,并且在该组件中,ASPOSE 提供了一个 xml 模板功能,我在其中简单地以 xml 格式定义了 pdf 文档模板并将其保存到硬盘驱动器,然后从 c# 代码中打开该模板抽出我的数据,结果它正在编写一个pdf。

它很快就安静了,我能够达到表现。

我可以使用 PDFSharp 或任何其他免费的开源组件来实现相同的目标吗?

我的意思是我想以 xml 格式定义我的 pdf 文档,并使用任何开放的良好开源组件,如 pdfshpar 或 Itext 等。

请帮忙

谢谢

【问题讨论】:

    标签: c# pdf pdfsharp


    【解决方案1】:

    我不知道你是否还在努力,但这是我尝试过的。

    MigraDoc 可以导入和解释 MDDDL 格式。使用它很容易编写一个包含模板所有静态文本的“文本”文件。当涉及到动态内容时,一切都取决于您要添加的内容:

    • 对于文本,只需在书写时添加标记,例如 ASP.Net <%MyMarker%>
    • 对于图片,您可以尝试将<%ImageURL%> 之类的标记放在图片的网址或 cmets 中
    • 对于表格,这变得很复杂,要么:
      • 您可以在 cmets 中放置一个带有标记 <%dataTable%> 的空白表格
      • 您可以创建包含列和第一行(如果有标题)的表格,并在 cmets 中放置一个标记
      • 您可以创建 2 个表,一个用于“空数据”,另一个像以前一样,包含列和第一行。在这种情况下,对于空表,标记将类似于 cmets 中的 <%MyTable{0}%> 和源中数据的 cmets 中的 <%MyTable{1}%>。

    一旦 MigraDoc 加载了“模板”,就很容易递归地扫描元素并替换标记。 它可能不是创建文档的最快方法,但每次客户想要在报表中添加空格时,它使我不必重新编译整个应用程序。

    【讨论】:

    • 你能举个例子吗?
    • 不容易举个例子。我会尽力提供链接。
    • 我正在开发一个完整的模块,但这里有一个模板示例:github.com/TNTPOP/MigraDoc_Templating/blob/master/Templates/…
    • 非常感谢这个例子。我期待完整的模块。
    • 我更新了一个解释 DocumentModel 的自述文件。根据我真正想要的,它仍然不完整,但可以很好地了解它可以做什么。
    【解决方案2】:

    PDFsharp/MigraDoc 不支持 XML 模板。

    您可以从代码(任何 .NET 语言)创建文档,并在需要的地方输入数据。

    这可能比普通的报告生成器多一点工作,但它比任何基于模板的解决方案都为您提供更多的灵活性。

    【讨论】:

    • 他们声称支持 XML,但我没有尝试。在这里查看 - pdfsharp.com/PDFsharp/…
    • @Żubrówka:您可以从 XML 或任何其他数据源导入数据 - 但您不能使用 XML 创建模板。
    猜你喜欢
    • 2014-11-06
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多