Java 如何将现有的A4 PDF文档转换为A5小册子?
我正在尝试使用itext实现A4 pdf到A5小册子格式的pdf,但它没有按照A5格式转换。任何人都可以提出建议,这将非常有帮助Java 如何将现有的A4 PDF文档转换为A5小册子?,java,itext,Java,Itext,我正在尝试使用itext实现A4 pdf到A5小册子格式的pdf,但它没有按照A5格式转换。任何人都可以提出建议,这将非常有帮助 public void manipulatePdf(String src, String dest) throws IOException, DocumentException { // Creating a reader PdfReader reader = new PdfReader(src); // step 1
public void manipulatePdf(String src, String dest)
throws IOException, DocumentException {
// Creating a reader
PdfReader reader = new PdfReader(src);
// step 1
Document document = new Document(PageSize.A5.rotate());
// step 2
PdfWriter writer
= PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
PdfContentByte canvas = writer.getDirectContent();
float a4_width = PageSize.A4.getWidth();
int n = reader.getNumberOfPages();
int p = 0;
PdfImportedPage page;
while (p++ < n) {
page = writer.getImportedPage(reader, p);
if (p % 2 == 1) {
canvas.addTemplate(page, 0, 0);
} else {
canvas.addTemplate(page, a4_width, 0);
document.newPage();
}
}
// step 5
document.close();
reader.close();
}
public void操作EPDF(String src,String dest)
抛出IOException,DocumentException{
//创造读者
PdfReader读取器=新PdfReader(src);
//第一步
文档=新文档(PageSize.A5.rotate());
//步骤2
PDF编写器
=PdfWriter.getInstance(文档,新文件输出流(dest));
//步骤3
document.open();
//步骤4
PdfContentByte canvas=writer.getDirectContent();
float a4_width=PageSize.a4.getWidth();
int n=reader.getNumberOfPages();
int p=0;
PDF导入页面;
while(p++
请描述问题所在。您正在此处创建A5文档:document document=新文档(PageSize.A5.rotate())代码>并且您正在向此文档添加页面。但是,如果原始页面不是标准页面,这些页面可能不会显示在预期位置。另外:由于操作的性质,所有交互功能都将丢失。请澄清您遇到的上述问题。感谢Bruno的回复,我的要求是需要创建一本A5格式的小册子。PDF可能包含200页或300页,所有这些都将转换为A5小册子格式。有什么需要做的改变,以显示在上述计划的确切位置。我也分享了样本A3小册子PDF。此A3小册子pdf使用itext程序从A4 pdf转换而来。同样,我们需要将A4转换为A5小册子。请检查这个链接:A4到A3小册子啊哈,现在我明白了问题:你忘了缩小页面。(有一段时间我把A3和A5混淆了,你也是。)所以你的问题的答案很简单:你可以通过缩小导入的页面来解决问题。只需向addTemplate()
方法添加一些额外的参数即可。我假设你在学校学习了足够的数学来计算这些参数的值。无论如何,我现在还有另一份工作要做。