如何将recyclerView列表转换为itext PDF?

问题描述 投票:0回答:1

我想将recyclerView列表添加到itext PDF文档中, recyclerview是根据用户输入创建的,我不知道用户将添加多少项目, 并且recyclerView的每一项都包含很多文本。

我该怎么做?

java android pdf android-recyclerview itext
1个回答
0
投票

无论用户添加什么项目,它都会被添加到一个列表中,然后该列表填充recyclerView。因此,您可以轻松地迭代列表,并为列表中的每个元素添加 pdf 中的详细信息。下面是一个示例,您可以在这里找到完整的代码。

private void createPdf(Order order) throws FileNotFoundException, DocumentException { File docsFolder = new File(Environment.getExternalStorageDirectory() + "/Documents"); if (!docsFolder.exists()) { docsFolder.mkdir(); } String pdfName = order.getOrderId() + "ST.pdf"; // This is the list of product items, that populates the recyclerView List<ProductItem> items = order.getItemsList(); File pdfFile = new File(docsFolder.getAbsolutePath(), pdfName); OutputStream output = new FileOutputStream(pdfFile); Document document = new Document(PageSize.A4); // We create a table to store different details of each product PdfPTable table = new PdfPTable(new float[]{3, 5, 3, 3}); // This is some formatting done to make it look good table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); table.getDefaultCell().setFixedHeight(28); table.setTotalWidth(PageSize.A4.getWidth()); table.setWidthPercentage(100); table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE); // We add the headers for each column of the table table.addCell("Product Id"); table.addCell("Name"); table.addCell("Quantity"); table.addCell("Price"); table.setHeaderRows(1); PdfPCell[] cells = table.getRow(0).getCells(); for (PdfPCell cell : cells) { cell.setBackgroundColor(BaseColor.LIGHT_GRAY); } // Here we iterate over the list, and for every product in the list we add a row in the table with details of the product. for (ProductItem item : items) { table.addCell(String.valueOf(item.getProductId())); table.addCell(String.valueOf(item.getProductName())); int quantity = item.getProductQuantity(); table.addCell(String.valueOf(quantity)); table.addCell(String.valueOf(item.getProductPrice() * quantity)); } // Now we add the table to the document PdfWriter.getInstance(document, output); document.open(); document.add(table); document.close(); }
    
© www.soinside.com 2019 - 2024. All rights reserved.