在我的应用中,我需要能够创建可打印文档的大量数据。
我已经发现我可以使用Android 4.4及更高版本中包含的打印服务。我可以创建一个HTML文档并在每个页面的Canvas
上打印或绘制。
Printing HTML Document或Printing Custom Document
但我的问题是,我有很多内容,需要正确格式化。如果我必须将一个大型HTML文档编写为字符串,那将是一个阴影......我需要创建一个很好的格式并从我的应用程序添加数据。
对我来说,理想的解决方案是制作布局文件,对其进行充气,用数据填充TextViews和ListViews,然后打印该视图。但是打印HTML文档只允许来自WebView
的打印,但我没有找到任何方法在View
上添加Layout
或Canvas
(只是相反,我认为这是因为Canvas是一个布局元素,可以包含在视图中但不包含其他布局元素。)
有没有办法打印我的视图或它的布局?
如果没有,有没有办法创建一个比在字符串中写出更容易的HTML文档?或者将View
的所有内容绘制为Canvas
?
答案 0 :(得分:0)
实际上有一种方法可以将View
的所有内容添加到Canvas
。它是:
view.draw(canvas);
public void draw (Canvas canvas)
在API级别1中添加手动渲染此视图(及其所有视图) 孩子们到给定的画布。视图必须已经完整 调用此函数之前的布局。实现视图时 实现onDraw(android.graphics.Canvas)而不是覆盖它 方法。如果确实需要覆盖此方法,请调用超类 版本
<强>参数强>
canvas 呈现视图的Canvas。
这实际上是我一直在寻找的方法。