C# PDFSharp与c中的xml模板#

C# PDFSharp与c中的xml模板#,c#,pdf,pdfsharp,C#,Pdf,Pdfsharp,我在我的c#项目中使用PDFSharp。在我以前的工作中,我使用了来自aspose的PDF组件,在该组件中aspose提供了一个xml模板功能,在该功能中,我简单地定义了xml格式的PDF文档模板,并将其保存到硬盘上,然后从c#code打开该模板,抽取数据,结果它编写了一个PDF 这是安静的快速,我能够实现性能 我可以使用PDFSharp或任何其他免费开源组件实现同样的功能吗 我的意思是,我想以xml格式定义我的pdf文档,并使用任何开源组件,如pdfshpar或Itext等 请帮忙 谢谢PDF

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

这是安静的快速,我能够实现性能

我可以使用PDFSharp或任何其他免费开源组件实现同样的功能吗

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

请帮忙


谢谢

PDFsharp/MigraDoc不支持XML模板

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


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

PDFsharp/MigraDoc不支持XML模板

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


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

我不知道您是否仍在处理此问题,但以下是我尝试过的方法

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

  • 对于文本,只需在编写时添加标记,例如ASP.Net
  • 对于图像,您可以尝试在图像的url或注释中放置类似
    的标记
  • 对于表,这会变得复杂,或者:
    • 您可以在注释中放置一个带有标记
      的空白表
    • 您可以创建包含列和第一行(如果有标题)的表,并在注释中添加标记
    • 您可以创建两个表,一个用于“空数据”,另一个类似于前面的表,包含列和第一行。在这种情况下,空表的注释中的标记类似于
      ,源中的数据的注释中的标记类似于
一旦MigraDoc加载了“模板”,就很容易递归地扫描元素并替换标记。
这可能不是创建文档的最快方法,但每次客户端希望在报表中添加空间时,它都可以避免我重新编译整个应用程序。

我不知道您是否仍在处理此问题,但以下是我尝试过的方法

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

  • 对于文本,只需在编写时添加标记,例如ASP.Net
  • 对于图像,您可以尝试在图像的url或注释中放置类似
    的标记
  • 对于表,这会变得复杂,或者:
    • 您可以在注释中放置一个带有标记
      的空白表
    • 您可以创建包含列和第一行(如果有标题)的表,并在注释中添加标记
    • 您可以创建两个表,一个用于“空数据”,另一个类似于前面的表,包含列和第一行。在这种情况下,空表的注释中的标记类似于
      ,源中的数据的注释中的标记类似于
一旦MigraDoc加载了“模板”,就很容易递归地扫描元素并替换标记。
这可能不是创建文档的最快方法,但每次客户端希望在报表中添加空格时,它都可以避免我重新编译整个应用程序。

他们声称支持XML,但我没有尝试。点击这里-@Żubrówka:您可以从XML或任何其他数据源导入数据,但您不能使用XML创建模板。他们声称支持XML,但我没有尝试。点击这里-@Żubrówka:你可以从XML或任何其他数据源导入数据,但你不能使用XML创建模板。你能给我举个例子吗?提供一个例子并不容易。我将尽我所能提供一个链接。我正在完成一个完整的模块,但这里有一个模板示例:非常感谢这个示例。我期待着完整的模块。我更新了一个自述文件,解释了DocumentModel。根据我真正想要的,它仍然是不完整的,但是很好地展示了它能做什么。你能用一个例子来启发我吗?提供一个例子并不容易。我将尽我所能提供一个链接。我正在完成一个完整的模块,但这里有一个模板示例:非常感谢这个示例。我期待着完整的模块。我更新了一个自述文件,解释了DocumentModel。根据我真正想要的,它仍然是不完整的,但它可以很好地展示它的功能。