Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android兼容库,用于从pdf文件创建图像?_Android_Image_Pdf - Fatal编程技术网

Android兼容库,用于从pdf文件创建图像?

Android兼容库,用于从pdf文件创建图像?,android,image,pdf,Android,Image,Pdf,是否有任何兼容的android库可以将pdf页面转换为图像?我发现有几个java库(pdfbox、jpod、jpedal、icepdf)适合我的需要,但它们给了我编译错误(基于awT或swt)。我目前正在android上制作一个pdf浏览器,如果我不必从头开始编写pdf解码的话,那就太棒了 您的最佳选择是此库: 这是一个C项目,因此您需要使用JNI进行调用。您最好的选择是使用以下库: 这是一个C项目,因此您需要使用JNI进行调用。谢谢您的帮助。我检查了项目并使用了库(APV项目基于该库)。很好用

是否有任何兼容的android库可以将pdf页面转换为图像?我发现有几个java库(pdfbox、jpod、jpedal、icepdf)适合我的需要,但它们给了我编译错误(基于awT或swt)。我目前正在android上制作一个pdf浏览器,如果我不必从头开始编写pdf解码的话,那就太棒了

您的最佳选择是此库:


这是一个C项目,因此您需要使用JNI进行调用。

您最好的选择是使用以下库:


这是一个C项目,因此您需要使用JNI进行调用。

谢谢您的帮助。我检查了项目并使用了库(APV项目基于该库)。很好用!非常感谢,上帝保佑。

谢谢你的帮助。我检查了项目并使用了库(APV项目基于该库)。很好用!非常感谢,上帝保佑。

使用itextpdf5.3.1.jar

以下是从pdf中提取图像的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);`enter code here`
    PdfReader reader;

    File file = new File("/sdcard/vineeth/anni.prc");
    try{
        reader = new PdfReader(file.getAbsolutePath());

        for (int i = 0; i < reader.getXrefSize(); i++) {
            PdfObject pdfobj= reader.getPdfObject(i);
            if (pdfobj == null || !pdfobj.isStream()) {
                continue;
            }

            PdfStream stream = (PdfStream) pdfobj;
            PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE);

            if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) {
                byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream);
                FileOutputStream out = new FileOutputStream(new 
                File(file.getParentFile(),String.format("%1$05d", i) + ".jpg"));
                out.write(img); out.flush(); out.close();
            }
        }
    } catch (Exception e) { }
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);`在此处输入代码`
PDF阅读器;
File File=新文件(“/sdcard/vineeth/anni.prc”);
试一试{
reader=newpdfReader(file.getAbsolutePath());
对于(int i=0;i
使用itextpdf5.3.1.jar

以下是从pdf中提取图像的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);`enter code here`
    PdfReader reader;

    File file = new File("/sdcard/vineeth/anni.prc");
    try{
        reader = new PdfReader(file.getAbsolutePath());

        for (int i = 0; i < reader.getXrefSize(); i++) {
            PdfObject pdfobj= reader.getPdfObject(i);
            if (pdfobj == null || !pdfobj.isStream()) {
                continue;
            }

            PdfStream stream = (PdfStream) pdfobj;
            PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE);

            if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) {
                byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream);
                FileOutputStream out = new FileOutputStream(new 
                File(file.getParentFile(),String.format("%1$05d", i) + ".jpg"));
                out.write(img); out.flush(); out.close();
            }
        }
    } catch (Exception e) { }
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);`在此处输入代码`
PDF阅读器;
File File=新文件(“/sdcard/vineeth/anni.prc”);
试一试{
reader=newpdfReader(file.getAbsolutePath());
对于(int i=0;i
以上答案对我都没有帮助,因此我正在编写解决方案

使用此库和以下代码,您可以可靠地将PDF页面转换为图像(JPG、PNG):

DecodeServiceBase decodeService=new DecodeServiceBase(new PdfContext());
decodeService.setContentResolver(mContext.getContentResolver());
//跑得有点长
decodeService.open(Uri.fromFile(pdf));
int pageCount=decodeService.getPageCount();
for(int i=0;i

您应该在后台完成这项工作,即使用
异步任务
或类似的方法,因为许多方法需要计算或IO时间(我已在注释中标记了它们)。

上述答案对我都没有帮助,因此我正在编写解决方案

使用此库和以下代码,您可以可靠地将PDF页面转换为图像(JPG、PNG):

DecodeServiceBase decodeService=new DecodeServiceBase(new PdfContext());
decodeService.setContentResolver(mContext.getContentResolver());
//跑得有点长
decodeService.open(Uri.fromFile(pdf));
int pageCount=decodeService.getPageCount();
for(int i=0;i