Android 上 xml Layout view 生成pdf文件
2018-01-29 12:07
836 查看
前言,以前生成PDF,是靠盲布的。效率非常不高,再次做类似项目决定将XML Layout View转换成pdf,这个布局就由xml文件来实现,xml再使用上ConstraintLayout,那简直就是「所见即所得」了。非常的方便。这里把这个方案分析给大家。
系统版本: Android 4.4.2 +
平台:不限
来源:stackoverflow,具体链接找不到了。:(
注意事项:
1. 使用LayoutInflater反射出来的View不行;
2. 将要转换成pdf的xml view文件include到一个界面中,将其设置成android:visibility=”invisible”就可以实现,不显示,但是能转换成PDF;
3. 设置成gone不行;
系统版本: Android 4.4.2 +
平台:不限
public static void createPdfFromView(View content, final String pdfPath) { if (content == null || pdfPath == null) { Log.e(TAG, "content and pdfPath can not be null!"); return; } // create a new document PdfDocument document = new PdfDocument(); // crate a page description PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder( PrintAttributes.MediaSize.ISO_A4.getWidthMils() * 72 / 1000, PrintAttributes.MediaSize.ISO_A4.getHeightMils() * 72 / 1000, 1) .create(); // start a page PdfDocument.Page page = document.startPage(pageInfo); // draw something on the page // LayoutInflater li = LayoutInflater.from(getApplicationContext()); // View content = li.inflate(R.layout.activity_welcome, null); Canvas canvas = page.getCanvas(); content.draw(canvas); // finish the page document.finishPage(page); // add more pages // write the document content FileOutputStream os = null; try { Log.i(TAG, "String:" + pdfPath); os = new FileOutputStream(pdfPath); document.writeTo(os); os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // close the document document.close(); } }
来源:stackoverflow,具体链接找不到了。:(
注意事项:
1. 使用LayoutInflater反射出来的View不行;
2. 将要转换成pdf的xml view文件include到一个界面中,将其设置成android:visibility=”invisible”就可以实现,不显示,但是能转换成PDF;
3. 设置成gone不行;
相关文章推荐
- android findview 自动生成工具 xml布局文件自动转换类模板代码工具
- Android开发之View与Layout XML文件之间的理解
- Android Layout Binder(在线将XML中View find出来,生成java代码的工具)
- Android生成PDF文件、webview加载本地PDF或者网络PDF
- 类似Lazy Android的插件,根据layout的xml文件自动生成findViewById代码
- 【Android】Android Layout Binder——根据layout布局文件自动生成findViewById的java代码的神器
- Android Layout Binder(在线将XML中View find出来,生成java代码的工具)
- Android中layout.xml文件中加载自定义的View类
- Android中将xml布局文件转化为View树的过程分析(下)-- LayoutInflater源码分析
- Android程序调试时生成main.out.xml文件
- 用eclipse开发android,xml-layout文件不自动提示,Java代码可以自动提示
- 跟大家分享下Android布局文件layout.xml的一些属性值。
- Android生成XML文件
- 如何利用Android XmlSerializer生成XML文件
- android利用pull技术来解析和生成xml文件
- Eclipse编写Android程序时layout的xml里的id不能在R.java里自动生成
- 用Trewview生成树:利用xml文件生成树结点
- Android程序调试时生成main.out.xml文件,报错: Resource entry main is already defined
- 用Trewview生成树:利用xml文件生成树结点
- Android使用PULL解析和生成XML文件