android新建html文件类型,打印 HTML 文档

如需在 Android 上打印简单照片之外的内容,需要在打印文档中撰写文本和添加图形。在 Android 框架中,您可以使用 HTML 以最少的代码撰写文档并进行打印。

在 Android 4.4(API 级别 19)中,

本节课介绍如何快速构建包含文本和图形的 HTML 文档,并使用

加载 HTML 文档

要使用

此视图对象通常用作 Activity 布局的一部分。但是,如果您的应用未使用

创建在加载 HTML 资源后启动打印任务的

将 HTML 资源加载到

以下代码示例演示了如何创建简单的

Kotlin

private var mWebView: WebView? = null

private fun doWebViewPrint() {

// Create a WebView object specifically for printing

val webView = WebView(activity)

webView.webViewClient = object : WebViewClient() {

override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest) = false

override fun onPageFinished(view: WebView, url: String) {

Log.i(TAG, "page finished loading $url")

createWebPrintJob(view)

mWebView = null

}

}

// Generate an HTML document on the fly:

val htmlDocument =

"

Test Content

Testing, testing, testing...

"

webView.loadDataWithBaseURL(null, htmlDocument, "text/HTML", "UTF-8", null)

// Keep a reference to WebView object until you pass the PrintDocumentAdapter

// to the PrintManager

mWebView = webView

}Java

private WebView mWebView;

private void doWebViewPrint() {

// Create a WebView object specifically for printing

WebView webView = new WebView(getActivity());

webView.setWebViewClient(new WebViewClient() {

public boolean shouldOverrideUrlLoading(WebView view, String url) {

return false;

}

@Override

public void onPageFinished(WebView view, String url) {

Log.i(TAG, "page finished loading " + url);

createWebPrintJob(view);

mWebView = null;

}

});

// Generate an HTML document on the fly:

String htmlDocument = "

Test Content

Testing, " +

"testing, testing...

";

webView.loadDataWithBaseURL(null, htmlDocument, "text/HTML", "UTF-8", null);

// Keep a reference to WebView object until you pass the PrintDocumentAdapter

// to the PrintManager

mWebView = webView;

}

注意:请确保用于生成打印任务的调用发生在上一部分中创建的

注意:以上示例代码保存了

如需在页面中添加图形,请将图形文件放在项目的 assets/ 目录中,并在

Kotlin

webView.loadDataWithBaseURL(

"file:///android_asset/images/",

htmlBody,

"text/HTML",

"UTF-8",

null

)Java

webView.loadDataWithBaseURL("file:///android_asset/images/", htmlBody,

"text/HTML", "UTF-8", null);

Kotlin

webView.loadUrl("https://developer.android.com/about/index.html")Java

// Print an existing web page (remember to request INTERNET permission!):

webView.loadUrl("https://developer.android.com/about/index.html");

使用

您不能向文档中添加页眉或页脚,包括页码。

HTML 文档的打印选项不包括打印特定范围的页面,例如:不支持打印一个 10 页 HTML 文档中的第 2 到 4 页。

不支持包含 CSS 打印属性(例如横向属性)的 HTML 文档。

您不能在 HTML 文档中使用 JavaScript 触发打印作业。

注意:布局中包括的

如果您希望创建自定义程度更高的打印输出并完全控制打印页上的内容绘制,请转到下一课:打印自定义文档。

创建打印作业

创建

Kotlin

private fun createWebPrintJob(webView: WebView) {

// Get a PrintManager instance

(activity?.getSystemService(Context.PRINT_SERVICE) as? PrintManager)?.let { printManager ->

val jobName = "${getString(R.string.app_name)} Document"

// Get a print adapter instance

val printAdapter = webView.createPrintDocumentAdapter(jobName)

// Create a print job with name and adapter instance

printManager.print(

jobName,

printAdapter,

PrintAttributes.Builder().build()

).also { printJob ->

// Save the job object for later status checking

printJobs += printJob

}

}

}Java

private void createWebPrintJob(WebView webView) {

// Get a PrintManager instance

PrintManager printManager = (PrintManager) getActivity()

.getSystemService(Context.PRINT_SERVICE);

String jobName = getString(R.string.app_name) + " Document";

// Get a print adapter instance

PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter(jobName);

// Create a print job with name and adapter instance

PrintJob printJob = printManager.print(jobName, printAdapter,

new PrintAttributes.Builder().build());

// Save the job object for later status checking

printJobs.add(printJob);

}

此示例保存了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值