Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
Java 如何将现有的A4 PDF文档转换为A5小册子?_Java_Itext - Fatal编程技术网

Java 如何将现有的A4 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

我正在尝试使用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
    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()
方法添加一些额外的参数即可。我假设你在学校学习了足够的数学来计算这些参数的值。无论如何,我现在还有另一份工作要做。