2013-09-27 106 views
1

作为标题,我试图将A3尺寸的PDF重新调整为A4尺寸,我可以这样做。但在此之后,内容似乎仍然在A3范围内,但只有寻呼机的大小发生了变化。我的意思是内容在A4大小的寻呼机外溢出,并没有缩小。itext如何重新调整A3尺寸的PDF格式,内容为A4尺寸

这是我的代码:

Document document = new Document(PageSize.A4, 0,0,0,0); 
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("output file.pdf")); 
document.open(); 
PdfContentByte cb = writer.getDirectContent(); 
PdfReader reader = new PdfReader("input file.pdf"); 
for (int i = 1; i <= reader.getNumberOfPages(); i++){ 
    PdfImportedPage page = writer.getImportedPage(reader, i);    
    document.newPage(); 
    cb.addTemplate(page,0,0); 
} 
reader.close(); 
document.close(); 

任何人都可以提出建议,以解决这个问题,谢谢。

回答

1

它没有收缩因为你不告诉它缩小。

您的A3页面添加到使用

cb.addTemplate(page,0,0); 

这种方法,新增加了PDF的页面是在坐标0,0。

相反,你应该使用该方法的一个重载允许您将按比例缩小新PDF中的页面,例如

cb.addTemplate(page, 0.5, 0, 0, 0.5, 0, 0); 

cb.addTemplate(page, AffineTransform.getScaleInstance(0.5, 0.5)); 

PS:0.5以上最有可能不正确,它按比例缩小从A3到A5。最有可能的应该是0.5的平方根,从A3缩小到A4。