我想使用iTextpdf 7创建pdf文档,但是我不想使用任何默认的页面大小。
我想设置纸张尺寸的宽度和高度,但是当我尝试使用Rectangle()
类来设置纸张尺寸时,它显示了错误并且无法创建任何内容。
我以前从未使用过该库,也不知道如何做得好。
这是我编写的代码的示例:
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或类似的东西。我只想创建自己的页面大小,但无法弄清楚代码有什么问题。我该怎么解决?
答案 0 :(得分:1)
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);