使用PDFBox从Java编辑PDF

使用PDFBox从Java编辑PDF,java,pdf,edit,pdfbox,Java,Pdf,Edit,Pdfbox,我目前正在从PDF获取一个页面,然后尝试编辑该特定页面。 当我进行编辑时,它不会保存在PDF中 这是我的代码,请有人帮忙 PDPage page = (PDPage) allPages.get(f); System.out.println(page); PDRectangle pageSize = page.findMediaBox(); float stringWidth = font.getStringWidth( "AAA" ); float centeredPosition = (pag

我目前正在从PDF获取一个页面,然后尝试编辑该特定页面。 当我进行编辑时,它不会保存在PDF中

这是我的代码,请有人帮忙

PDPage page = (PDPage) allPages.get(f);
System.out.println(page);
PDRectangle pageSize = page.findMediaBox();
float stringWidth = font.getStringWidth( "AAA" );
float centeredPosition = (pageSize.getWidth() - (stringWidth*fontSize)/1000f)/2f;

PDPageContentStream contentStream = new PDPageContentStream(pdoc,page,true,false);

contentStream.beginText();
contentStream.setFont( font, fontSize );
//contentStream.addLine(700, 700, 700, 1000);
contentStream.moveTextPositionByAmount(0 , 0);
contentStream.drawString( "AAA" );
contentStream.endText();
contentStream.close();

pdoc.save("C:/1/1.pdf");
pdoc.close();

我使用的代码是正确的

问题不在于代码,而在于生成PDF的方式是1.2版。
我需要能够知道我能做些什么来修改1.2版的PDF,我使用的代码是正确的

问题不在于代码,而在于生成PDF的方式是1.2版。
我需要能够知道我能做些什么来修改1.2版的PDF,请使用/更新下面的代码

contentStream = new PDPageContentStream(
                document, page, true, true);

它对我有效

请使用/更新以下代码

contentStream = new PDPageContentStream(
                document, page, true, true);

它对我有用

你真的想把它保存到
c:\1\1.pdf
(在
c:\
的文件夹
1
)吗?没必要,我只是测试了一下,但问题是,当我保存并转到1.pdf时,我发现AAA没有被添加到页面最底部的位置0,0,当我更改PDPageContentStream并将true更改为false时,我发现页面被AAAI覆盖。我在您的另一个问题中为您添加了代码,该代码插入“AAA”,而不覆盖页面,因此我想知道您为什么再次发布此问题?是否确实要将其保存到
c:\1\1.pdf
(在
c:\
的文件夹
1
中)?没有必要,我只是测试了一下,但问题是,当我保存并转到1.pdf时,我发现AAA没有添加到页面底部的位置0,0,当我更改PDPageContentStream并将true更改为false时,我发现页面被AAAI覆盖,在另一个问题y中为您添加了AAAI我们插入“AAA”的代码在没有覆盖页面的情况下,我想知道你为什么来再次发布这个问题。op的代码中实际上有多个问题,而他在回答中选择指责的1.2很可能不是问题。但我怀疑回答这个老问题会导致什么。op的代码中实际上有多个问题,而他选择的1.2他回答中的责备很可能不是问题所在,但我怀疑回答这个老问题是否会带来任何结果。