Добавление таблицы в существующий PDF с itext5 в kotlin - PullRequest
2 голосов
/ 30 января 2020

Я новичок ie в программировании на Java / kotlin, и это мой первый проект. У меня есть существующий файл PDF, созданный в другом действии (занятие1) с itext, переданный другому занятию (занятие2) с намерением "pdfPath". Я хочу открыть этот PDF-файл и добавить таблицу в конце этого PDF-файла с данными, полученными в деятельности2. Но каждый раз, когда я пытаюсь это сделать, моя программа удаляет все в этом PDF-файле и просто создает другой PDF-файл с таблицей. Вот код:

            val pdfPath = intent.getStringExtra("pdfPath")
            val mDoc = Document()
            var writer = PdfWriter.getInstance(mDoc, FileOutputStream(pdfPath))
            mDoc.open()

            var table = PdfPTable(2)
            var imgTec = Image.getInstance(StoredPath)
            var cell = PdfPCell(imgTec)
            table.addCell(cell)

            cell = PdfPCell(Phrase("Signature"))
            cell.setBorder(Rectangle.NO_BORDER);
            table.addCell(cell)
            mDoc.add(table)
            mDoc.close()

1 Ответ

0 голосов
/ 30 января 2020

Наконец-то сделал это:

val pdfPath = intent.getStringExtra("pdfPath")
val reader = com.itextpdf.text.pdf.PdfReader(pdfPath)
val pdfName_write = "TEST_" + SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date()) + ".pdf"
val pdfPath_write = Environment.getExternalStorageDirectory().toString() + "/" + pdfName_write
val stamper = PdfStamper(reader, FileOutputStream(pdfPath_write))
val column = ColumnText(stamper.getUnderContent(1))

//Adjust the position of the rectangle
val rectPage = Rectangle(36F,36F,30F, 20F)

column.setSimpleColumn(rectPage)
var table = PdfPTable(2)

//Creating cell 1
var cell = PdfPCell(Phrase("TEST1"))
table.addCell(cell)
column.addElement(table)

//Creating cell 2
cell = PdfPCell(Phrase("TEST2"))
table.addCell(cell)
column.addElement(table)
column.go()

stamper.setFormFlattening(true)
stamper.close()
reader.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...