我有兴趣创建一个文档pdf而不将其保存在设备的存储器中,我使用的编程语言是kotlin。
事实是,我对文件一旦创建就将其存储在手机的存储器中这一事实不感兴趣,而是在文件创建后就显示了文档的预览,然后我决定是否想要打印或通过邮件或其他方式发送,但是不要将其存储在设备上。
我一直在寻找一种做到这一点的方法,但是我没有在互联网上找到任何东西,因此,我非常感谢任何建议。
这是我的代码示例:
private fun createDocument() {
val proceedBtn: Button = findViewById(R.id.process_payment)
val invoiceDocument: String = "invoice.pdf"
try {
val document = Document()
//open to write
val instance = PdfWriter.getInstance(document, FileOutputStream())
document.open()
//settings
document.pageSize = PageSize.A2
document.addCreationDate()
document.addAuthor("John Doe")
document.addCreator("John Doe")
//font setting
val colorAccent = BaseColor(0, 153, 204, 255)
val headingFontSize = 20.0f
val valueFontSize = 26.0f
//custom Font
val fontName = BaseFont.createFont("assets/fonts/NotoSerif-Regular.ttf",
"UTF-8", BaseFont.EMBEDDED)
//Add Title to document
var titleStyle = Font(fontName, 36.0f, Font.NORMAL, BaseColor.BLACK)
addNewItem(document, "Order details", Element.ALIGN_CENTER, titleStyle)
val headingStyle = Font(fontName, headingFontSize, Font.NORMAL, colorAccent)
addNewItem(document, "Order No:", Element.ALIGN_LEFT, headingStyle)
var valueStyle = Font(fontName, 36.0f, Font.NORMAL, BaseColor.BLACK)
addNewItem(document, "1234567", Element.ALIGN_CENTER, valueStyle)
addLineSeparator(document)
addNewItem(document, "Order Date:", Element.ALIGN_LEFT, valueStyle)
addNewItem(document, "25/09/2019", Element.ALIGN_LEFT, valueStyle)
addLineSeparator(document)
addNewItem(document, "Acount Name:", Element.ALIGN_LEFT, headingStyle)
addNewItem(document, "John Doe", Element.ALIGN_LEFT, valueStyle)
addLineSeparator(document)
//Product detail
addLineSpace(document)
addNewItem(document, "Product Details", Element.ALIGN_CENTER, titleStyle)
addLineSeparator(document)
addNewItemWithLeftAndRight(document, "Pizza ", "(0,0%)", titleStyle, valueStyle)
addNewItemWithLeftAndRight(document, "12.0*10000", "12000.0", titleStyle, valueStyle)
addNewItemWithLeftAndRight(document, "Humburger ", "(0,0%)", titleStyle, valueStyle)
addNewItemWithLeftAndRight(document, "12.0*10", "120.0", titleStyle, valueStyle)
addLineSeparator(document)
addLineSpace(document)
addLineSpace(document)
addNewItemWithLeftAndRight(document, "Total", "12120.0", titleStyle, valueStyle)
//close
document.close()
Toast.makeText(this@InvoiceActivity, "Success", Toast.LENGTH_LONG).show()
printPDF()
} catch (e: Exception) {
Log.e("error", ""+e.message)
}
}
您可以在不保存pdf的情况下尝试此操作