Adobe Acrobat 提供了编辑 PDF 文件的功能。我想以编程方式使用此功能,我提供页码并编辑所有文本和/或图像。
有没有办法以编程方式做到这一点?
Adobe Acrobat 主要是基于 GUI 的应用程序。尽管 Adobe 提供了可用于扩展应用程序功能的Acrobat SDK,但如果您主要关心的是专门使用 Acrobat,则可能值得研究。
如果您正在寻找对 PDF 编辑的编程控制,我建议您考虑使用编程库。例如,我知道LEADTOOLS Redaction SDK(这是我熟悉的,因为我为供应商工作)具有执行您描述的功能。
一般方法(使用 C#)看起来像这样:
从 PDF 中提取特定页面并解析页面中的所有对象
PDFDocument document = new PDFDocument(pdfFileName);
PDFParsePagesOptions options = PDFParsePagesOptions.All;
document.ParsePages(options, 1, 1); // parses all objects for page 1
document.page
这将使用代表 PDF 中的文本和图像的多个PDFObject
对象填充每个对象。
然后,您可以使用这些对象的属性循环访问它们,为每个对象添加编辑,如下所示:
AnnRedactionObject redactionObject = new AnnRedactionObject();
redactionObject.Rect = bounds; // corresponding coordinates
redactionObject.Fill = AnnSolidColorBrush.Create("Black");
annotations.Add(redactionObject);
最后,添加了编校,最后一步是通过为文档设置编校选项来实现注释:
document.Annotations.RedactionOptions = new DocumentRedactionOptions();
document.Annotations.RedactionOptions.ViewOptions.Mode = DocumentRedactionMode.Apply;
document.Annotations.RedactionOptions.ViewOptions.ReplaceCharacter = '*';
document.Annotations.RedactionOptions.ConvertOptions.Mode = DocumentRedactionMode.Apply;
document.Annotations.RedactionOptions.ConvertOptions.ReplaceCharacter = '*';
罐头在查看时将被适当地编辑,document
或者可用于编写包含编辑的 PDF。