Android:创建用于打印的文档

时间:2015-08-12 09:13:32

标签: android html printing android-canvas

在我的应用中,我需要能够创建可打印文档的大量数据。

我已经发现我可以使用Android 4.4及更高版本中包含的打印服务。我可以创建一个HTML文档并在每个页面的Canvas上打印或绘制。

Printing HTML DocumentPrinting Custom Document

但我的问题是,我有很多内容,需要正确格式化。如果我必须将一个大型HTML文档编写为字符串,那将是一个阴影......我需要创建一个很好的格式并从我的应用程序添加数据。

对我来说,理想的解决方案是制作布局文件,对其进行充气,用数据填充TextViews和ListViews,然后打印该视图。但是打印HTML文档只允许来自WebView的打印,但我没有找到任何方法在View上添加LayoutCanvas(只是相反,我认为这是因为Canvas是一个布局元素,可以包含在视图中但不包含其他布局元素。)

有没有办法打印我的视图或它的布局?

如果没有,有没有办法创建一个比在字符串中写出更容易的HTML文档?或者将View的所有内容绘制为Canvas

的方法

1 个答案:

答案 0 :(得分:0)

实际上有一种方法可以将View的所有内容添加到Canvas。它是:

view.draw(canvas);

来自Android Developer:View

  

public void draw (Canvas canvas)

     

在API级别1中添加手动渲染此视图(及其所有视图)   孩子们到给定的画布。视图必须已经完整   调用此函数之前的布局。实现视图时   实现onDraw(android.graphics.Canvas)而不是覆盖它   方法。如果确实需要覆盖此方法,请调用超类   版本

     

<强>参数

     

canvas 呈现视图的Canvas。

这实际上是我一直在寻找的方法。