2013-08-19 77 views
0

我想一个html文件转换为PDF 我的代码是将HTML转换成PDF android系统

Document document = new Document(); 
boolean mExternalStorageAvailable = false; 
boolean mExternalStorageWriteable = false; 
String state = Environment.getExternalStorageState(); 
if (Environment.MEDIA_MOUNTED.equals(state)) { 
    mExternalStorageAvailable = mExternalStorageWriteable = true; 
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
    mExternalStorageAvailable = true; 
    mExternalStorageWriteable = false; 
} else { 
    mExternalStorageAvailable = mExternalStorageWriteable = false; 
} 
String file = null; 
if (mExternalStorageWriteable) { 
    file = Environment.getExternalStorageDirectory() + "/abcd.pdf"; 
} 

document.open(); 
PdfCopy writer = new PdfCopy(document, new FileOutputStream(file)); 

InputStream is = new FileInputStream(Environment.getExternalStorageDirectory()+"/new1.html"); 

PdfReader reader = new PdfReader(is); 

PdfImportedPage page; 
int n = reader.getNumberOfPages(); 
page = writer.getImportedPage(reader, n); 
Image instance = Image.getInstance(page); 
document.add(instance); 

document.close(); 
Toast.makeText(this, "pdf created", Toast.LENGTH_LONG).show(); 

我已经使用itextpdf-5.4.3.jar。 同时运行此代码我得到一个异常“找不到PDF头标识” ......任何一个可以帮助我

回答

0

的错误是因为你试图读取HTML文件使用PdfReader PDF文档。

您可以参阅“iText in Action”一书中的HtmlMovies1示例,该示例使用已弃用的HTMLWorker进行HTML到PDF的转换,或查看新的XML Worker项目的API文档。

1

This class独立于iText工作。 不过来编译,它必须在包装 “.../JAVA /安卓/打印/”

下面是一个简单的代码示例:

PdfConverter converter = PdfConverter.getInstance(); 
File file = new File(Environment.getExternalStorageDirectory().toString(), "file.pdf"); 
String htmlString = "<html><body><p>WHITE (default)</p></body></html>"; 
converter.convert(getContext(), htmlString, file); 
// By now the pdf has been printed in the file.