PDF中的批量删除文本框

时间:2017-09-05 22:22:29

标签: pdf

如何批量删除PDF中的多个文本框?

场景是我有许多PDF文档,每页的顶部和底部都有一个文本框,我想删除它。我可以使用Master PDF Editor等软件手动执行此操作,但该文档有500多页,我需要处理多个文档。我很确定这些是文本框而不是页眉/页脚。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

易,

将iText7与pdfSweep结合使用。 iText是一个PDF工具包,使您可以从PDF文档创建,编辑和提取信息。

pdfSweep(顾名思义)为iText提供了编辑功能。 给定矩形(很快就是正则表达式),您可以从特定页面或页面范围内编辑内容。

pdfSweep将删除属于给定矩形的所有内容。

您也可以简单地创建编辑注释,然后通过Adobe Reader批量删除它们。 iText还支持创建编校注释。

using (Stream stream = new FileStream(
fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
PdfReader pdfReader = new PdfReader(stream);
using (PdfStamper stamper = new PdfStamper(
    pdfReader, new FileStream(newFileName, FileMode.OpenOrCreate))) {
    int page = 1;
    iTextSharp.text.Rectangle rect =
        new iTextSharp.text.Rectangle(500, 50, 200, 300);
    PdfAnnotation annotation = new PdfAnnotation(stamper.Writer, rect);
    annotation.Put(PdfName.SUBTYPE, new PdfName("Redact"));
    annotation.Title = "My Author";
    annotation.Put(new PdfName("Subj"), new PdfName("Redact"));
    float[] fillColor = { 0, 0, 0 };
    annotation.Put(new PdfName("IC"), new PdfArray(fillColor));
    float[] fillColorRed = { 1, 0, 0 };
    annotation.Put(new PdfName("OC"), new PdfArray(fillColorRed));
    stamper.AddAnnotation(annotation, page);
}

}

iText和pdfSweep有java或C#。

在iText网站上有一个关于如何生成编辑注释的相当全面的示例: http://developers.itextpdf.com/question/how-create-and-apply-redactions