如何将pdf文件转换为图像?

时间:2019-07-15 12:23:37

标签: android image pdf

我正在尝试在我的Android应用中使用ML Kit文本识别API。但是它不适用于PDF,我需要一张图像。因此,我正在寻找一种将PDF转换为图像的方法。

我已经尝试了几种解决方案,但其中大多数不再可用。

注意:使用文件选择器在设备上选择PDF文件

private void extractText2(Uri uri) {
    try {
        Log.e("URI", uri.toString());
        FirebaseVisionImage image = FirebaseVisionImage.fromFilePath(getApplicationContext(), uri);
        FirebaseVisionTextRecognizer detector = FirebaseVision.getInstance().getOnDeviceTextRecognizer();

        Task<FirebaseVisionText> result =
                detector.processImage(image)
                        .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                            @Override
                            public void onSuccess(FirebaseVisionText firebaseVisionText) {
                                displayText(firebaseVisionText);
                            }
                        })
                        .addOnFailureListener(
                                new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        // Task failed with an exception
                                        // ...
                                    }
                                });
    } catch (Exception e) {
        Log.e("Erreur", e.getMessage());
    }
}

private void displayText(FirebaseVisionText result) {
    String resultText = result.getText();
    Log.e("Text trouvé:",resultText);
}

public void performFileSearch() {

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("image/*");
    startActivityForResult(intent, READ_REQUEST_CODE);
}

@Override
public void onActivityResult(int requestCode, int resultCode,
                             Intent resultData) {

    if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        Uri uri;
        if (resultData != null) {
            uri = resultData.getData();
            Log.i("---", "Uri: " + uri.toString());
            extractText2(uri);
        }
    }
}

上面的代码允许选择图像,然后文本识别效果很好。如果要选择pdf,则必须替换intent.setType(“ image / *”);与intent.setType(“ application / pdf”);但是文本识别API无法正常工作,这就是为什么我需要将所选的pdf文件转换为图像,然后使用文本识别

0 个答案:

没有答案