Как создать собственную переменную PageSize для создания PDF-документа с помощью iTextpdf - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу создать PDF-документ, используя iTextpdf 7, но я не хочу использовать любой из размеров страницы по умолчанию.

Я хочу установить ширину и высоту моего формата бумаги, но когда я пытаюсьсделать это, используя 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 или что-нибудь в этом роде.Я просто хочу создать свой собственный размер страницы, но я не могу понять, что не так с моим кодом.Что я могу сделать, чтобы решить эту проблему?

1 Ответ

1 голос
/ 28 сентября 2019

Rectangle и PageSize - это разные типы, хотя PageSize расширяет Rectangle, но конструктор Document ожидает PageSize.В Netbeans используйте CTRL-SPACE, чтобы увидеть больше во время работы: enter image description here

Пожалуйста, замените

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

на:

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