2012-11-21 33 views
0

我正在研究用于编辑现有PDF文件中文本样式的C#控制台应用程序,例如将文本样式更改为粗体或斜体或添加font-family,更改文本颜色...在pdf文档中编辑文本样式

我用iTextSharp的库,但遇到了以下问题:

  1. PDF文档中的薄空间被修剪。
  2. 当从现有文档中提取文本时,文本样式完全被忽略(我的意思是字体,粗体,斜体......)
  3. 从PDF文件提取内容时,不会读取特殊格式的数学,图像和文本

是否有任何其他库或任何建议如上所述编辑PDF文件? PDF文档中

+0

这将是很难提取文本与文本格式,至于第一个任务和第三个任务,我可以建议你一个图书馆Spire.PDF为.NET,它可以阅读PDF图像和文本甚至特殊文本,如草药这是从右到左写的。然而,据我所知,它不支持提取字体,粗体等文字。 – 2012-11-22 06:53:24

+0

似乎是一个有趣的工具,虽然它不是一个nopen源工具,我会试一试谢谢@michelle –

回答

1

你所遇到的问题,有些话......

1薄空间被修剪。

薄空间一般是通过水平坐标移位产生的。不幸的是,同样的技术用于字距调整,即使相邻字符看起来更好。如果在解析页面时遇到这样的水平转换,解析器必须启发式地决定并且有时是错误的。如果您的文件存在,这种启发式方法似乎失败。

2当提取现有文档的文本,该文本样式完全忽略了(我的意思是字体,加粗,italic..etc)

就是说的RenderListener您使用的问题。与iText(夏普)捆绑在一起的听众目前专注于文本。他们可以很容易地扩展到也传输字体信息。

但是,您应该知道,PDF不知道粗体,斜体等。如果文档质量好,xxx和xxx粗体是单个字体,并且在质量较差的文档中,穷人可以通过以微小的偏移量打印两次字形来生成粗体,或者可以通过适当的倾斜转换矩阵生成倾斜的外观。

3数学,图像和特殊格式文本提取PDF文件

内容时,不看如果你有样品为此,请在这里或在itext-questions mailing list提供给他们。可以肯定的是,您已经实现了在测试时监听图像事件的RenderListener

因此,1是一个普遍问题,可能有更好的算法,但无法以100%安全的方式解决。 2仅需要您基于现有文本中的一个实现适当的RenderListener;实际上在为iText创建一个RichTextExtractionStrategy时有一些讨论。但是,3必须更强烈地检查。

从本质上讲,iText(夏普)不是唯一具有文本解析能力的PDF库,它们每个都有自己的优势。它确实提供了一个框架,可以用来从文档文本样式中检索尽可能多的信息。

我正在它的设计编辑 在现有的PDF文件中的文本样式C#控制台应用程序,例如更改文本 风格是在粗体或斜体或加FONT-FAMILY,更改文本 颜色等等。

考虑到同一字体系列中的不同字体或不同样式可能具有明显不同的宽度,这是一个相当大的成就。这可能会导致丑陋的外观或需要重新排版文本,这是PDF不太适合的。

+0

这真的很有用@mkl ,非常感谢你..我发现了一个提取策略的实现,可以帮助我解决样式问题。我会尽快向你发送我正在处理的样本到itextsharp邮件列表,再次感谢 –