如何将base64转换为pdf?

Nom*_*ain 11 android

给定base64输入,我如何将其转换为Android中的PDF文件?

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
        setContentView(R.layout.activity_main);
        // Get the PDF file to encode it into Base64
        File file = new File("/mnt/sdcard/download/Base64.pdf");
        try {
            // Files is from Guava library
            Files.toByteArray(file);
            // Encoded into Base64
            byte[] temp = Base64.encode(Files.toByteArray(file), Base64.DEFAULT);
            // For testing purposes, wrote the encoded string to file
            writeToFile(Base64.encodeToString(temp, Base64.DEFAULT).toString());

        } catch (IOException e) {
            Log.d(tag, "File.toByteArray() error");
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我能够使用http://www.webutils.pl/index.php?idx=base64来测试PDF文件是否正确编码.但我希望能够自己将base64解码为PDF.我该怎么办?

编辑1

按照Saneesh CS的建议尝试以下代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
        setContentView(R.layout.activity_main);
        // Get the PDF file to encode it into Base64
        File file = new File("/mnt/sdcard/download/Base64.pdf");
        try {
            // Files is from Guava library
            Files.toByteArray(file);
            // Encoded into Base64
            byte[] temp = Base64.encode(Files.toByteArray(file), Base64.DEFAULT);
            // Tried with the below line, but same result.
            byte[] temp1 = Base64.encode(Files.toByteArray(file), 0);
            // For testing purposes, wrote the encoded string to file
//          writeToFile(Base64.encodeToString(temp, Base64.DEFAULT).toString());
            final File dwldsPath = new File(Environment.getExternalStorageDirectory(), "test7.pdf");
            byte[] pdfAsBytes = Base64.decode(temp, 0);
            FileOutputStream os;
            os = new FileOutputStream(dwldsPath, false);
            os.write(pdfAsBytes);
            os.flush();
            os.close();
        } catch (IOException e) {
            Log.d(tag, "File.toByteArray() error");
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

以上代码有效.

San*_*San 18

final File dwldsPath = new File(DOWNLOADS_FOLDER + fileName + ".pdf");
byte[] pdfAsBytes = Base64.decode(txt, 0);
FileOutputStream os;
os = new FileOutputStream(dwldsPath, false);
os.write(pdfAsBytes);
os.flush();
os.close();
Run Code Online (Sandbox Code Playgroud)

试试这个代码.txt是base64编码的字符串.

  • 要保存在/ storage / emulated / 0 / Download中,请更改:DOWNLOADS_FOLDER,用于:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+“ /” (2认同)