Я заинтересован в создании документа 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)
}
}