Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
itext如何将A3大小的pdf内容重新缩放为A4大小_Pdf_Itext_Scale - Fatal编程技术网

itext如何将A3大小的pdf内容重新缩放为A4大小

itext如何将A3大小的pdf内容重新缩放为A4大小,pdf,itext,scale,Pdf,Itext,Scale,如标题所示,我正在尝试将A3大小的pdf重新缩放为A4大小,我可以做到这一点。但在那之后,内容似乎仍然是A3大小,但只有寻呼机大小发生了变化。我的意思是,内容在A4大小的寻呼机外溢出,并且没有缩小 这是我的密码: Document document = new Document(PageSize.A4, 0,0,0,0); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("output file.pd

如标题所示,我正在尝试将A3大小的pdf重新缩放为A4大小,我可以做到这一点。但在那之后,内容似乎仍然是A3大小,但只有寻呼机大小发生了变化。我的意思是,内容在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();
Document Document=新文档(PageSize.A4,0,0,0);
PdfWriter writer=PdfWriter.getInstance(文档,新文件outputStream(“output file.pdf”);
document.open();
PdfContentByte cb=writer.getDirectContent();
PdfReader reader=新的PdfReader(“input file.pdf”);
对于(inti=1;i它不会收缩,因为你没有告诉它收缩

您可以使用将A3页面添加到新PDF中

cb.addTemplate(page,0,0);
此方法在坐标0,0处按原样添加页面

相反,您应该使用该方法的重载,该方法允许您缩小新PDF中的页面

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

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

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