背景
プロジェクトは、添付ファイルを閲覧するための新たなPDFを生成するために一緒にマージされますアップロードするには、顧客が必要となるが、一部のPDFのページの紙があまりにも多く、ちょうどコーナーA4サイズに合併後取る、ここでは、治療前にした方法です。
治療後:
コードの取り扱い
public static File pdfToA4(File file) {
Document document = new Document(PageSize.A4);
String filePath = file.getParent() + File.separator + UUID.randomUUID().toString() + ".pdf";
File FileA4 = new File(filePath);
try {
PdfReader pdfReader = new PdfReader(file.getPath());
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(filePath));
document.open();
PdfContentByte cb = pdfWriter.getDirectContent();
// 循环PDF的每一页 pdfWriter.getImportedPage(pdfReader, index) idnex从1开始
for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) {
// 新增一页,不然多页的PDF会重合到一页
document.newPage();
PdfImportedPage page = pdfWriter.getImportedPage(pdfReader, i);
// 计算缩小比例 以最大缩小比例为主
// pdfReader.getPageSize(index) index是从1开始不是0
float w = PageSize.A4.width() / pdfReader.getPageSize(1).width();
float h = PageSize.A4.height() / pdfReader.getPageSize(1).height();
float Scale = w > h ? h : w;
cb.addTemplate(page, Scale, 0, 0, Scale, 0, 0);
}
document.close();
} catch (Exception e) {
e.printStackTrace();
}
// 删除原来的文件
file.delete();
return FileA4;
}