当前位置: 首页 > 面试题库 >

使用Java编辑PDF文本

公羊俭
2023-03-14
问题内容

有没有办法可以从Java编辑PDF?
我有一个PDF文档,其中包含需要使用Java替换的文本占位符,但是我看到的所有库都是从头开始创建PDF并具有小的编辑功能。
无论如何,我可以编辑PDF吗?


问题答案:

您可以使用iText做到这一点。我用以下代码对其进行了测试。它会在现有PDF的每一页上添加一段文本和一个红色圆圈。

/* requires itextpdf-5.1.2.jar or similar */
import java.io.*;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.*;

public class AddContentToPDF {

    public static void main(String[] args) throws IOException, DocumentException {

        /* example inspired from "iText in action" (2006), chapter 2 */

        PdfReader reader = new PdfReader("C:/temp/Bubi.pdf"); // input PDF
        PdfStamper stamper = new PdfStamper(reader,
          new FileOutputStream("C:/temp/Bubi_modified.pdf")); // output PDF
        BaseFont bf = BaseFont.createFont(
                BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); // set font

        //loop on pages (1-based)
        for (int i=1; i<=reader.getNumberOfPages(); i++){

            // get object for writing over the existing content;
            // you can also use getUnderContent for writing in the bottom layer
            PdfContentByte over = stamper.getOverContent(i);

            // write text
            over.beginText();
            over.setFontAndSize(bf, 10);    // set font and size
            over.setTextMatrix(107, 740);   // set x,y position (0,0 is at the bottom left)
            over.showText("I can write at page " + i);  // set text
            over.endText();

            // draw a red circle
            over.setRGBColorStroke(0xFF, 0x00, 0x00);
            over.setLineWidth(5f);
            over.ellipse(250, 450, 350, 550);
            over.stroke();
        }

        stamper.close();

    }
}


 类似资料:
  • 问题内容: 有谁知道用PHP编辑PDF的好方法?最好是开源/零许可证费用方法。:) 我是否正在考虑打开PDF文件,替换PDF中的文本然后写出PDF的修改版本? 我过去曾使用FPDF以编程方式创建PDF文件,但有时发现它有些笨拙。 问题答案: 如果您采用“填空”方法,则可以将文本精确地定位在页面上的任何位置。因此,将丢失的文本添加到文档中相对容易(即使不是很乏味)。例如,使用Zend Framewo

  • 在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。 所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。 现在,我们就把上次的'hello, world'程序用文本编辑器写出来,保存下来。 那么问题来了:文本编辑器到底哪家强? 推荐两款文本编辑器: 一个是Sublime Text,

  • 在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。 所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。 现在,我们就把上次的'hello, world'程序用文本编辑器写出来,保存下来。 那么问题来了:文本编辑器到底哪家强? Visual Studio Code! 我们推荐微软出

  • 我正在使用iText向现有pdf文件添加文本。它适用于简单的pdf,但与AcroForms的pdf存在问题。 我的代码: 错误消息:“此文档在Adobe Acrobat Reader DC中启用了扩展功能。文档自创建以来已更改,扩展功能的使用不再可用。请与作者联系以获取此文档的原始版本。” 并且没有我想添加到文件中的文本 知道我错过了什么吗?

  • 是否可以编辑不能在C#中填写的PDF格式 > 现有的PDF包含图像、填充了数据和文本的表格。 已经尝试了itextsharp,但无法识别任何操作数据的AcroFields。

  • 我在尝试使用iText编辑pdf文档时遇到以下异常。这个问题是非常零星的,就像有时它是工作的,有时它是抛出错误。 下面是我用来编辑的代码: