【问题标题】:Batch delete text box in PDF [closed]PDF中的批量删除文本框[关闭]
【发布时间】:2017-09-05 22:22:28
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: pdf


    【解决方案1】:

    简单,

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

    pdfSweep(顾名思义)为 iText 提供编辑功能。 您可以在给定矩形(以及很快的正则表达式)的情况下编辑特定页面或页面范围内的内容。

    pdfSweep 然后将删除所有落在给定矩形内的内容。

    您也可以简单地创建编校注释,然后让 Adob​​e 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

    【讨论】:

    • 谢谢 Joris,但我希望有一个稍微简单的解决方案。也许使用基于 red gui 的 PDF 编辑器工具?
    • 据我所知,一旦您想要进行任何类型的内容处理(尤其是批量处理),它很快就会升级为必须编写一些代码。
    • 有道理。那么,iText7 和 pdfSweep 是免费的吗?我只是安装它们,以你的例子,编译并运行它吗?显然根据我的需要调整它
    • 两者都是开源和 AGPL 许可的。这意味着您可以在非商业环境中免费使用它们。如果你开源你的代码,你也可以在商业环境中免费使用它们。如果您不想(或不能)开源代码,并且希望将它们用于商业用途,则需要获得许可协议。
    • 我的是非商业用途,所以没有问题
    【解决方案2】:

    在 Adob​​e Acrobat 中做起来并不难,也不需要第三方软件。打开 Acrobat 窗口右侧的注释下拉菜单。在那里,您可以看到包含文档中所有文本框的列表。现在,使用 Control 或 Shift 键 + 鼠标左键选择要删除的所有文本框,以最适合您的需要。如果要全部删除,左键单击列表中的第一个项目,然后将列表向下滚动到底部,按住 Shift 键并左键单击底部的项目。然后最后使用鼠标右键选择删除。现在他们走了。

    【讨论】:

      猜你喜欢
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 2011-08-26
      • 2014-03-29
      • 1970-01-01
      相关资源
      最近更新 更多