【问题标题】:Creating Invoice Pdf with itext shows in single page. want to split it multiple pages with page number使用 itext 创建发票 Pdf 显示在单页中。想用页码拆分多页
【发布时间】:2019-11-05 22:30:59
【问题描述】:

我正在使用 android itext lib 创建一个 pdf。它在单页中显示完整的数据。我想将单页拆分为 A4 大小的多页,底部有页码。

 private void callDocument(File file, Bitmap screen) throws Exception {
    try {

        com.itextpdf.text.Rectangle pagesize = new com.itextpdf.text.Rectangle(webview.getWidth(), webview.getHeight());
        Document document = new Document(pagesize, 0f, 0f, 0f, 0f);
        PdfWriter.getInstance(document, new FileOutputStream(file));
        document.open();
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        screen.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        addImage(document, byteArray);
        document.close();
        sendEmailToGuest();

    } catch (Exception e) {
        e.printStackTrace();
    }

}

想要将单页拆分为多页

【问题讨论】:

    标签: java android itext pdf-generation


    【解决方案1】:

    您可以这样创建文档:

    Document pdfDoc = new Document(PageSize.A4, 0f, 0f, 0f, 0f);
    

    如果您希望页面旋转为横向,您可以在.A4 之后添加.Rotate() 如果达到内容的最大高度,iText 将创建新页面。

    看看这个答案https://stackoverflow.com/a/11206227/5840866关于页面末尾页码的类似问题。你也可以使用PdfPageEventHelper

    还可以查看官方 iText 网站上的这些惊人示例,这些示例可能会为您提供帮助 https://itextpdf.com/en/resources/examples/itext-7/event-handlers-and-renderers

    【讨论】:

    • Thanx Artion Hasani。我已经尝试过这段代码,但它以矩形方式创建了完整工作表的 1/4 部分。它还按比例分配宽度和高度。这不是我的要求。无论如何感谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多