2011-09-01 85 views
2

我目前正在从PDF获取页面,然后尝试编辑该特定页面。 当我做编辑它不保存在PDF本身。使用PDFBox从Java编辑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(); 
+0

你真的想救它到'c:\ 1 \ 1.pdf'(在'c:\'的文件夹'1'中)? – dacwe

+0

没有必要我只是测试,但问题是,当我做保存并去1.pdf我发现AAA没有被添加到页面的最底部位置0,0 而当我更改PDPageContentStream并将true改为false我得到页面被AAA覆盖 – CRL88

+0

我已经为您添加另一个插入“AAA”而不覆盖页面的代码的问题给你,所以我想知道你为什么来发布这个问题再次 –

回答

0

该代码与我正在做的这是正确的。

问题不是代码,而是生成pdf的方式是在1.2版本。 我需要能够知道我能做些什么来改变这是一个V-的PDF 1.2

0

请使用下面的代码/更新

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

它的工作对我来说

+1

实际上在操作代码中存在多个问题,他选择在他的答案中指责的1.2很可能不是问题。但我怀疑回答这个老问题会导致什么。 – mkl