PDFSharp与xml模板在c#

本文关键字:xml PDFSharp | 更新日期: 2023-09-27 18:19:00

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

它安静而快速,我能够达到性能。

我可以使用PDFSharp或任何其他免费的开源组件实现相同的。

我的意思是我想定义我的pdf文档在xml格式和使用从任何开放好的开源组件,如pdfshpar或ittext等。

PDFSharp与xml模板在c#

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

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

  • 对于文本,只需添加标记,就像在编写时一样,例如,ASP。净<%MyMarker%>
  • 对于图片,你可以尝试在图片的url或者
  • 注释中加入一个标记,比如<%ImageURL%>
  • 对于表,这也变得复杂:
    • 你可以在注释
    • 中放置一个带有标记<%dataTable%>的空白表
    • 您可以创建包含列和第一行(如果有标题)的表,并在注释
    • 中添加标记。
    • 你可以创建2个表,一个为"空数据"和一个像以前的列和第一行。在这种情况下,标记将类似于空表注释中的<%MyTable{0}%>和源数据注释中的<%MyTable{1}%>

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

PDFsharp/MigraDoc不支持XML模板

你可以从代码(任何。net语言)创建文档,并在你需要的地方注入数据。

这可能比普通的报表生成器要多做一点工作,但它比任何基于模板的解决方案都要灵活得多。