如何创建我自己的 PageSize 变量以使用 iTextpdf 创建 PDF 文档

How to create my own PageSize variable to create a PDF document using iTextpdf

我想使用 iTextpdf 7 创建 pdf 文档,但我不想使用任何默认页面大小。

我想设置我的纸张尺寸的宽度和高度,但是当我尝试使用 Rectangle() class 进行设置时,它显示错误并且我无法创建任何东西。 我以前从未使用过这个库,我不知道如何做好。

这是我编写的代码示例:

   String url_file= "C:\Users\Mike89\Documents\PDFJava\pdfFiles\SALES\SALEINVOICE"+id+".pdf";

 PdfWriter writer = new PdfWriter(url_file);
 PdfDocument pdf = new PdfDocument(writer);            
 Rectangle pagesize = new Rectangle(148, 350);
 Document document = new Document(pdf, pagesize);
 document.setMargins(2, 2, 2, 2);

         Table table1 = new Table(UnitValue.createPercentArray(1)).useAllAvailableWidth().setBorder(Border.NO_BORDER);
    Cell cell1;
    cell1 = new Cell();
    cell1.add(new Paragraph("COMPANY NAME").setTextAlignment(TextAlignment.CENTER).setFontSize(5).setBold()).setBorder(Border.NO_BORDER);
    cell1.add(new Paragraph("DOCUMENT ID").setTextAlignment(TextAlignment.CENTER).setFontSize(5)).setBorder(Border.NO_BORDER);
    cell1.add(new Paragraph("COMPANY ADDRESS").setTextAlignment(TextAlignment.CENTER).setFontSize(5)).setBorder(Border.NO_BORDER);
    cell1.add(new Paragraph("TELEPHONE").setTextAlignment(TextAlignment.CENTER).setFontSize(5)).setBorder(Border.NO_BORDER);
    table1.addCell(cell1);
    document.add(table1);

   document.close();

netbeans 向我显示的错误:

 incompatible types: Rectangle cannot be converted to PageSize

我不想使用 PageSize.A8 或 A9 或 A10 或类似的东西。我只想创建自己的页面大小,但我无法弄清楚我的代码有什么问题。我能做些什么来解决这个问题?

Rectangle 和 PageSize 是不同的类型,虽然 PageSize 扩展了 Rectangle,但是 Document 构造函数需要一个 PageSize。在 Netbeans 中,使用 CTRL-SPACE 在工作时查看更多内容:

请替换这个

Rectangle pagesize = new Rectangle(148, 350);
Document document = new Document(pdf, pagesize);

有了这个:

PageSize pagesize = new PageSize(148, 350);
Document document = new Document(pdf, pagesize);