C#或.NET中是否有API可用于编辑PDF文档?

7
有没有C#或.net的API可以编辑PDF文档?

比如说我需要取出特定的文字,并将其替换为自己的文字。

谢谢
nRk

1
@jheddings:http://meta.stackexchange.com/questions/15650/ban-lmgtfy-let-me-google-that-for-you-links - RCIX
请注意FAQ中声明:“没有问题太琐碎……” - RCIX
2个回答

8

根据iTextSharp教程所述,这是不可能的(以一种干净可靠的方式):

你不能使用iText“解析”现有的PDF文件,你只能逐页“阅读”它。这是什么意思?PDF格式只是一个画布,文本和图形放置在其中,没有任何结构信息。因此,在PDF文件中没有任何“iText对象”。在每一页中,可能会有许多“字符串”,但您无法使用这些字符串重建短语或段落。[...] 您无法通过说:“例如,将单词Louagie替换为Lowagie”来编辑现有的PDF文档。要实现这一点,您需要知道单词Louagie的确切位置,在其上绘制一个白色矩形,并在该白色矩形上绘制单词Lowagie。请避免这种“补丁”工作。请使用Adobe产品进行PDF编辑。


真是令人恼火的回答。没有提供证据表明这是不可能完成的。如果iText不能做到,那并不意味着它不能完成。 - Edward Olamisan
1
@EdwardOlamisan 不是证明,但你见过那些可以创建并发送PDF的复印机吗?它们只是扫描输入(没有OCR),将所有图像堆叠在一个PDF中,就这样。现在想象一下,如果你有来自该PDF的一个图像,你认为你能够以可靠的方式替换该图像上的一个单词(顺便说一句,在一堆像素中什么是单词)?如果您能够做到,re-capcha可能会感兴趣;) - user180100
在Adobe Acrobat Pro中打开PDF文件,您将能够编辑文档:添加/修改文本、添加/修改图像等。 - Edward Olamisan
@EdwardOlamisan 当然可以使用Photoshop来“替换文本”图像,但我非常确定Acrobat在您想要从此处的图像替换“部分”时无法做任何事情。 - user180100
@RC PDF流对象包含类型化对象。您可以编辑文本对象。您可以像编辑图像一样编辑图像对象。我不建议他们将图像OCR并让您将其作为文本进行编辑,尽管他们也可以这样做。但是,他们至少可以使用PDF规范中定义的基本对象。 - Edward Olamisan
显示剩余2条评论

2

有许多第三方库(如付费工具Aspose)可供使用,但没有真正的本地API。

尽管如此,PDF是一种开放标准,因此您可以了解文件的结构并自己解析它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接