【问题标题】:Is there any way to convert Composables into Pdf file?有什么办法可以将 Composables 转换为 Pdf 文件?
【发布时间】:2022-07-15 22:25:46
【问题描述】:

我希望允许用户从应用程序下载 PDF 格式的票证并将其存储在本地。我想以 PDF 格式获得完全相同的视图,这就是为什么我正在寻找将可组合文件转换为 PDF 的方法。直接将撰写视图转换为 Pdf 格式会很酷。这有可能实现吗?

1.) KotOrderTicket.kt

@Composable
fun KotOrderTicket(modifier: Modifier = Modifier) {
    var totalQuantity: Int = 0

    val rowModifier = Modifier
        .fillMaxWidth()

    val textCenterModifier = Modifier
        .fillMaxWidth()
        .wrapContentWidth(align = Alignment.CenterHorizontally)

    LazyColumn(
        modifier = modifier
            .fillMaxWidth(),
    ){
        item {
            KotDashedDivider()
            Text("Kitchen Order Ticket - Dinning", modifier = textCenterModifier)
            KotDashedDivider()
            Text("Running", modifier = textCenterModifier)
            KotDashedDivider()

            Row(
                modifier = rowModifier,
                horizontalArrangement = Arrangement.SpaceBetween,
            ){
                Text("Kot# 22")
                Text("Table T7")
            }
            Text("Date 2022-04-3 10: 23: 22")
            Text("Ready Till 2022-04-3 10: 23: 22")
            KotDashedDivider()

            Row(
                modifier = rowModifier,
                horizontalArrangement = Arrangement.SpaceBetween,
            ){
                Text("SN")
                Text("Item's Name")
                Text("Qty")
            }
            KotDashedDivider()
        }

        itemsIndexed(summaryItems) { index, item ->
            totalQuantity += (item.qty?.toInt() ?: 0)
            KotItemSummary(sn = index.toString(), name = item.productId.toString(), qty = item.qty.toString(), comment = "\"Nun kam rakhnu hai\"")
        }

        item {
            KotDashedDivider()
            Row(
                modifier = rowModifier,
                horizontalArrangement = Arrangement.SpaceBetween,
            ){
                Text("")
                Text("Total Qty: ")
                Text(totalQuantity.toString())
            }
            KotSpacer()
            Text("Remarks: ")
            Text("\"Please cook fast, i am so hungry\"")
        }
    }
}

2.) 这个视图看起来像这样。

【问题讨论】:

  • 不确定它是否可能,您是否考虑过首先将可组合转换为位图,然后将位图转换为 pdf ?我想有可能
  • 也许这篇文章对你有帮助:medium.com/@vipulthawre/…
  • @nglauber 我想这会有所帮助
  • 你找到解决办法了吗?

标签: android kotlin android-jetpack-compose


【解决方案1】:

您可以在 tutorial 的一部分之后将您的可组合文件转换为位图,然后使用 android 实用程序类 PdfDocument 将该位图放在 pdf 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    相关资源
    最近更新 更多