如何在android中将html和css转换为pdf文件?
我需要在Android应用程序中将具有如何在android中将html和css转换为pdf文件?,android,html,css,pdf-generation,itext,Android,Html,Css,Pdf Generation,Itext,我需要在Android应用程序中将具有CSS样式的复杂HTML文件转换为PDF文件。我尝试使用Android的IText库,但它无法解释CSS样式和一些标记。我已经搜索了很多,没有找到一个符合我要求的图书馆 我的函数创建PDF public static void createPdf(final String pdfName, final String html) { try { String outpath = Environment.getExternalStora
CSS
样式的复杂HTML
文件转换为PDF
文件。我尝试使用Android的IText
库,但它无法解释CSS
样式和一些标记。我已经搜索了很多,没有找到一个符合我要求的图书馆
我的函数创建PDF
public static void createPdf(final String pdfName, final String html) {
try {
String outpath = Environment.getExternalStorageDirectory() + pdfName;
OutputStream file = new FileOutputStream(new File(outpath));
Document document = new Document();
PdfWriter.getInstance(document, file);
document.open();
HTMLWorker htmlWorker = new HTMLWorker(document);
htmlWorker.parse(new StringReader(html));
document.close();
file.close();
} catch (IOException e) {
Log.d("error", "testPdf: " + e);
} catch (DocumentException e) {
Log.d("error", "testPdf: " + e);
}
}
示例HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style media="all">
body,html {
margin:0;
padding: 0;
}
.container {
position: relative;
width:1020px;
margin:20px auto 0 auto;
}
.box {
position: relative;
padding: 5px 10px;
background: #E4DFEC;
border:2px solid #000;
}
.box_panel {
margin:10px 0;
}
.box span {
width: 100px;
display: inline-block;
font:bold 11px/11px 'Calibri',sans-serif;
color:#000;
}
.labels {
margin: 5px 0;
margin-right:40px;
display: inline-block;
font-size: 0;
}
.input {
border:1px solid #000;
background: #fff;
padding:4px 3px;
font:11px/20px 'Calibri',sans-serif;
}
</style>
</head>
<body>
<div class="container">
<div class="box_panel">
<div class="box">
<div class="labels"><span>Test1 </span><span class="input w200">%test%</span></div>
<div class="labels"><span>Test2 </span><span class="input w200">%test%</span></div>
<div class="labels"><span>Test3: </span><span class="input w100">%test%</span></div>
</div>
</div>
</div>
</body>
</html>
正文,html{
保证金:0;
填充:0;
}
.集装箱{
位置:相对位置;
宽度:1020px;
保证金:20px自动0自动;
}
.盒子{
位置:相对位置;
填充物:5px10px;
背景:#E4DFEC;
边框:2倍实心#000;
}
.box_面板{
利润率:10px0;
}
.箱跨{
宽度:100px;
显示:内联块;
字体:粗体11px/11px“Calibri”,无衬线;
颜色:#000;
}
.标签{
保证金:5px0;
右边距:40px;
显示:内联块;
字号:0;
}
.输入{
边框:1px实心#000;
背景:#fff;
填充物:4px 3px;
字体:11px/20px“Calibri”,无衬线;
}
测试1%测试%
测试2%测试%
测试3:%test%
您的代码有什么问题?结果如何?你有问题吗?如何将html转换为pdf文件你还没有回答我的任何问题。你不是认真的。你在代码中使用了HTMLWorker
。请不要。它被弃用了,而且它只是非常基本的,更像是概念的证明。您应该改用XMLWorker
。