2

如何将HTML字符串(即时创建)转换为PDF仅使用本机PrintedPdfDocumentAPI19 或更高版本)?我寻找不需要添加任何外部库的解决方案。

4

2 回答 2

0

这个答案可能会有所帮助。随意进行任何更改以适应。

创建pdf文件。

PrintAttributes.Builder builder = new PrintAttributes.Builder();
builder.setColorMode(PrintAttributes.COLOR_MODE_COLOR);
builder.setMediaSize(PrintAttributes.MediaSize.ISO_A1); // or ISO_A0
builder.setMinMargins(PrintAttributes.Margins.NO_MARGINS);
builder.setResolution(new PrintAttributes.Resolution("1", "label", 300, 300));

PrintedPdfDocument document = new PrintedPdfDocument(this, builder.build());
PdfDocument.Page page = document.startPage(1);

View content = content;

content.draw(page.getCanvas());
document.finishPage(page);

File file = new File(getExternalFilesDir(null).getAbsolutePath(), "doc.pdf");
document.writeTo(new FileOutputStream(file));
document.close();

获取pdf文件:

File file_ = new File(filePATH)
于 2021-10-13T21:12:39.407 回答
0

如果 HTML 非常有限,您可以尝试TextView一些 HTML 到Spanned转换器(例如,Html.fromHtml())。

或者,正如我在评论中指出的那样,您可以使用WebView,尽管您指出它不符合您的业务要求,而且我不确定您是否可以访问 PDF。

否则,您唯一的无库选项是将 HTML 发送到服务器,该服务器可以向您返回 PDF。

于 2015-12-11T17:00:35.490 回答