我的目标是将我的可填写pdf文档转换为图像,然后将其保存到Kumulos上的数据库中。我在使用PDFTron转换pdf文档时遇到问题。我得到的错误是该文件不存在。但是,我可以拉取文件并在应用程序中查看它。
switch (Global.g){
case 1:
InputStream is = res.openRawResource(R.raw.incident_report);
try{
doc = new PDFDoc(is);
}catch (PDFNetException e){
doc = null;
e.printStackTrace();
}catch (IOException e){
doc = null;
e.printStackTrace();
}
try {
mPDFViewCtrl.setDoc(doc);
save_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
String output_path = "../../raw/Output/";
PDFDraw draw=new PDFDraw(); // PDFDraw class is used to rasterize PDF pages.
ObjSet hint_set=new ObjSet();
PDFDoc doc=new PDFDoc((mPDFViewCtrl + "incident_report.pdf"));
// Initialize the security handler, in case the PDF is encrypted.
doc.initSecurityHandler();
draw.setDPI(72); // Set the output resolution is to 72 DPI.
// Use optional encoder parameter to specify JPEG quality.
Obj encoder_param=hint_set.createDict();
encoder_param.putNumber("Quality", 80);
// Traverse all pages in the document.
for (PageIterator itr=doc.getPageIterator(); itr.hasNext();) {
Page current=(Page)(itr.next());
String filename=output_path+"incident_report"+current.getIndex() + ".jpg";
System.out.println(filename);
draw.export(current, filename, "JPEG", encoder_param);
}
doc.close();
}catch(PDFNetException e){
e.printStackTrace();
}
finish();
}
});
cancel_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
} catch (PDFNetException e) {
e.printStackTrace();
}
break;
答案 0 :(得分:0)
以下行看起来不正确。
PDFDoc doc=new PDFDoc((mPDFViewCtrl + "incident_report.pdf"));
应该只是
PDFDoc doc=mPDFViewCtrl.getDoc();
这应该可以解决您无法读取的错误。
查看您的代码,但还有许多其他问题。
这是更正后的代码
InputStream is = res.openRawResource(R.raw.incident_report);
try{
doc = new PDFDoc(is);
doc.initSecurityHandler(); // handle passwordless but encrypted files
}catch (PDFNetException e){
doc = null;
e.printStackTrace();
}catch (IOException e){
doc = null;
e.printStackTrace();
}
try {
mPDFViewCtrl.setDoc(doc);
save_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
String output_path = "../../raw/Output/";
PDFDraw draw=new PDFDraw();
draw.setDPI(72);
ObjSet hint_set=new ObjSet();
Obj encoder_param=hint_set.createDict();
encoder_param.putNumber("Quality", 80);
// Get PDF being viewed and get read lock
PDFDoc doc=mPDFViewCtrl.getDoc();
mPDFViewCtrl.docLockRead();
for (PageIterator itr=doc.getPageIterator(); itr.hasNext();) {
Page current=(Page)(itr.next());
String filename=output_path+"incident_report"+current.getIndex() + ".jpg";
System.out.println(filename);
draw.export(current, filename, "JPEG", encoder_param);
}
}catch(PDFNetException e){
e.printStackTrace();
}finally {
mPDFViewCtrl.docUnlockRead(); // release read lock
}
finish();
}
});
cancel_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
} catch (PDFNetException e) {
e.printStackTrace();
}