2011-09-01 86 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