【发布时间】:2018-03-28 23:48:12
【问题描述】:
我有需要由某人填写的带有表单和画布的 html 文件(包括画布上的绘图)。
如何将填写表单后内容的html转换为PDF文件并将PDF保存在设备上?
我用谷歌搜索,但没有找到任何好的解决方案。
更新:所有的html、css、js文件都在assest文件夹中。
【问题讨论】:
我有需要由某人填写的带有表单和画布的 html 文件(包括画布上的绘图)。
如何将填写表单后内容的html转换为PDF文件并将PDF保存在设备上?
我用谷歌搜索,但没有找到任何好的解决方案。
更新:所有的html、css、js文件都在assest文件夹中。
【问题讨论】:
您可以使用iText
首先你需要添加依赖——:
dependencies {
compile 'com.itextpdf:itextg:5.5.11'
}
示例代码
private void createPDF (String pdfFilename){
//path for the PDF file to be generated
String path = "docs/" + pdfname;
PdfWriter pdfWriter = null;
//create a new document
Document document = new Document();
try {
//get Instance of the PDFWriter
pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(path));
//document header attributes
document.addAuthor("betterThanZero");
document.addCreationDate();
document.addProducer();
document.addCreator("MySampleCode.com");
document.addTitle("Demo for iText XMLWorker");
document.setPageSize(PageSize.LETTER);
//open document
document.open();
//To convert a HTML file from the filesystem
//String File_To_Convert = "docs/SamplePDF.html";
//FileInputStream fis = new FileInputStream(File_To_Convert);
//URL for HTML page
URL myWebPage = new URL("http://demo.mysamplecode.com/");
InputStreamReader fis = new InputStreamReader(myWebPage.openStream());
//get the XMLWorkerHelper Instance
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
//convert to PDF
worker.parseXHtml(pdfWriter, document, fis);
//close the document
document.close();
//close the writer
pdfWriter.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
编辑
下面的代码可以让我从 assests 文件夹中获取 html 文件 -:
InputStream is = getAssets().open("test.html");
InputStreamReader fis = new InputStreamReader(is);
你可以改变
URL myWebPage = new URL("http://demo.mysamplecode.com/");
InputStreamReader fis = new InputStreamReader(myWebPage.openStream());
到
InputStream is = getAssets().open("test.html");
InputStreamReader fis = new InputStreamReader(is);
愿,帮助你。快乐编码:)
【讨论】:
PdfConverter converter = PdfConverter.getInstance();
File file = new File(Environment.getExternalStorageDirectory().toString(), "file.pdf");
String htmlString = "html code here";
converter.convert(getContext(), htmlString, file);
【讨论】: