我是Java / kotlin编程的新手,这是我的第一个项目。
我有一个现有的pdf,使用itext在另一个 Activity (activity1)中创建,并以“pdfPath”的意图传递给另一个 Activity (activity2)。
我想打开该pdf文件,并在该pdf文件的末尾附加一个表格,其中包含在activity2中获取的数据。
但是每次我尝试时,我的程序都会消除该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()
最佳答案
终于做到了:
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()
关于android - 在Kotlin中使用itext5将表添加到现有PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59982526/