用于排版文档的.NET库(PDF或类似文件)?

Ras*_*sto 8 .net pdf pdf-generation itextsharp kerning

编辑:更好的解释: 在为这个问题设置赏金之前,我想更清楚地说明我需要的东西:

我需要.NET库来生成可打印的文档.用户应该能够使用我的应用程序或使用外部工具(如Adobe Acrobat reader)打印他们看到的完全相同的文档.它不一定是用于生成PDF文档的库,任何满足上述条件的文档格式都可以.

我需要该库来支持以下场景:

场景1:

  1. 我用某种字体和颜色创建文本.
  2. 如果这个文字被打印,我问图书馆的宽度.
  3. 我根据来自2的信息计算该文本的位置(页面上的[X,Y]坐标),并让库在页面上的这个位置打印.

场景2:

  1. 我用上标中的一些部分创建了一个文本.文本的所有部分(正常和上标)都是相同(但可变)的字体.
  2. 我问图书馆打印时这个文字的宽度是多少.我得到了正确的答案,也考虑了普通文本和上标之间的字距.
  3. 我计算应打印此文本的页面上的位置([X,Y]坐标)(使用步骤2中的宽度).我让图书馆在这个位置打印出来.在页面上打印时,它具有上一步中库返回的宽度.

请注意第二种情况:我在上标中有一些部分的文本 - 例子AAA{v-superscript text}BBB({}括号中的文字是上标).库需要能够使用正确的字距调整来打印此文本.如果没有正确的字距调整,最后一个A和第一个上标v之间的差距将与上一个上标t和第一个上标之间存在相同的差距B.对于用户来说,看起来在A上标和上标之间有一个空格,v但在最后一个上标字母后面没有空格.所以文字看起来很难看.如果库要正确处理它,它将有方法AAA{v-superscript text}BBB一次打印整个文本,并指定其中的一部分是上标.然后它将在正常文本和上标之间使用正确的字距调整.

场景3:

  1. 我想在页面的精确点上打印由线条,圆圈,实心圆圈,字母和贝塞尔曲线组成的图片.我需要指定线条和圆圈的宽度.所有形状都需要以像素精度打印.

图书馆应该是免费的,而不是GPL(LGPL没问题).有什么东西可以让我做我需要的东西吗?可以用iTextSharp(版本4.1.6即LGPL而不是AGPL)来完成吗?或者也许使用固定文档?谢谢你的任何建议.


原始问题:

我需要为用户在.NET(C#)应用程序中排版复杂文档.这些文件的主要用途是用于印刷.

文档将包含文本和简单生成的图形.文本和图形的布局将是复杂的并且需要计算(换句话说,文档中的文本位置需要由我的代码控制,它不会由所选库自动完成).

以下是我的API要求:

  1. 返回给定字符串的精确宽度的函数,以及应该出现文本的给定字体
  2. 能够将文本定位到页面上的确切位置
  3. 在超级脚本中有文本的一部分
  4. 函数获取某些文本的精确宽度,该文本在上标中具有部分文本
  5. 能够添加图片甚至更好的选项来绘制简单的图形(给定厚度的线,给定半径/直径的实心圆)

它不一定是用于创建PDF文档的库 - 任何其他"你看到的将是什么将被打印"的文档格式也将如此.如果有WPF组件可以显示这样的文档,这是一个优势.我知道有iTextSharp,但用iTextSharp要求不容易.当然,满足上述要求的一些PDF生成库也是很好的解决方案.

感谢您提出任何建议,我也很乐意提供详细信息或更清晰的解释.

Mil*_*ric 0

  1. LaTeX:用于在生产中生成 PDF 的 LaTeX
  2. 对于像 Aspose 这样的 Pay 库:http://www.aspose.com/categories/.net-components/aspose.pdf-for-.net/default.aspx
  3. 纯 HTML 加上良好的 CSS 也可以很好地工作。
  4. 微软开放 XML:http://msdn.microsoft.com/en-us/library/bb448854.aspx

就其价值而言,我认为 iTextSharp 是其中最简单的一个。您可以在所有这些中做您想做的事情,但它们各有利弊。