Android如何将XML布局转换为PDF?
我有一个表格,当当前填写时,在提交时会发送到一个专用的电子邮件地址。我希望有机会提供其他选择。比如将其保存为PDF文件。表单在main.xml布局中完成。是否可以将xml布局转换为PDF格式?如果是这样的话,有人能给我指出一个好例子的方向吗Android如何将XML布局转换为PDF?,android,xml,pdf,Android,Xml,Pdf,我有一个表格,当当前填写时,在提交时会发送到一个专用的电子邮件地址。我希望有机会提供其他选择。比如将其保存为PDF文件。表单在main.xml布局中完成。是否可以将xml布局转换为PDF格式?如果是这样的话,有人能给我指出一个好例子的方向吗 非常感谢您可以查看此链接: 指示 创建XML布局 首先创建XML布局。给它以像素为单位的尺寸(以及它的所有子视图),并根据比例1:1.41的横向或纵向比例 page1.xml <?xml version="1.0" encoding="utf-8"?
非常感谢您可以查看此链接: 指示
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="2115px"
android:layout_height="1500px"
android:background="@color/white">
<TextView android:id="@+id/tv_hello"
android:textColor="@color/black"
android:textSize="27px"
android:textStyle="bold"
android:padding="6px"/>
</RelativeLayout>
PdfDocument doc = new PdfDocument(ctx);
// add as many pages as you have
doc.addPage(page);
doc.setRenderWidth(2115);
doc.setRenderHeight(1500);
doc.setOrientation(PdfDocument.A4_MODE.LANDSCAPE);
doc.setProgressTitle(R.string.gen_please_wait);
doc.setProgressMessage(R.string.gen_pdf_file);
doc.setFileName("test");
doc.setInflateOnMainThread(false);
doc.setListener(new PdfDocument.Callback() {
@Override
public void onComplete(File file) {
Log.i(PdfDocument.TAG_PDF_MY_XML, "Complete");
}
@Override
public void onError(Exception e) {
Log.i(PdfDocument.TAG_PDF_MY_XML, "Error");
}
});
doc.createPdf(ctx);
或者使用PdfDocument.Builder
new PdfDocument.Builder(ctx).addPage(page).filename("test").orientation(PdfDocument.A4_MODE.LANDSCAPE)
.progressMessage(R.string.gen_pdf_file).progressTitle(R.string.gen_please_wait).renderWidth(2115).renderHeight(1500)
.listener(new PdfDocument.Callback() {
@Override
public void onComplete(File file) {
Log.i(PdfDocument.TAG_PDF_MY_XML, "Complete");
}
@Override
public void onError(Exception e) {
Log.i(PdfDocument.TAG_PDF_MY_XML, "Error");
}
}).create().createPdf(this);
您可以使用它在几行代码内轻松完成-
PdfGenerator.getBuilder()
.setContext(context)
.fromLayoutXMLSource()
.fromLayoutXML(R.layout.layout_print,R.layout.layout_print)
.setDefaultPageSize(PdfGenerator.PageSize.A4)
.setFileName("Test-PDF")
.build();
此外,您还可以在
.build()中传递回调(PdfGeneratorListener()
)
若要通知pdf生成是否已完成或因异常而失败谷歌上应该有教程。我似乎只能找到根据活动而不是布局创建的教程。我不知道这一点,但您是否浏览了此链接?这可能会对您有所帮助,我也再次找到了此链接。谢谢。在阅读第三个链接时,似乎没有一个快速点击转换xml pdf的方法。
PdfGenerator.getBuilder()
.setContext(context)
.fromLayoutXMLSource()
.fromLayoutXML(R.layout.layout_print,R.layout.layout_print)
.setDefaultPageSize(PdfGenerator.PageSize.A4)
.setFileName("Test-PDF")
.build();