1

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

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

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

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

请帮忙

谢谢

4

2 回答 2

5

我不知道您是否仍在为此工作,但这是我尝试过的。

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

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

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

于 2012-10-22T09:27:07.317 回答
0

PDFsharp/MigraDoc 不支持 XML 模板。

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

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

于 2011-12-31T18:35:24.410 回答