【问题标题】:How to convert Byte Array to PDF file in Android?如何在 Android 中将字节数组转换为 PDF 文件?
【发布时间】:2012-01-28 11:45:49
【问题描述】:

我正在开发一个应用程序,我以字节数组的形式获取数据,我需要使用这个字节数组来创建一个新的 PDF 文件。我如何在 android 中实现这一点?

【问题讨论】:

  • 看看这个:stackoverflow.com/questions/1131116/…>

标签: java android


【解决方案1】:

使用FileOutputStream 及其write(byte[]) 方法。

#假设你有准备好以PDF格式写入的数据内容。

还有一些适用于 android 的 pdf writer api。

参见:

【讨论】:

  • 嗨 Jigar,我试过这个代码 FileOutputStream fileos=new FileOutputStream("Hello.pdf");但是当我尝试打开此文件时,我收到一条错误消息,提示 Adob​​e Reader 无法打开 Hello.pdf,因为它不是不支持的文件类型或文件已损坏...
  • 假设您有准备好以 PDF 格式写入的数据内容,请参阅更新
【解决方案2】:

这是从字节数组创建PDF的一种方法。

File dir = Environment.getExternalStorageDirectory();
File assist = new File("/mnt/sdcard/Sample.pdf");
try {
  InputStream fis = new FileInputStream(assist);

  long length = assist.length();
  if (length > Integer.MAX_VALUE) {
    Log.e("MainActivity", "cannnottt   readddd");
  }
  byte[] bytes = new byte[(int) length];
  int offset = 0;
  int numRead = 0;
  while (offset < bytes.length && (numRead = fis.read(bytes, offset, bytes.length - offset)) >= 0) {
    offset += numRead;
  }

  File data = new File(dir, "mydemo.pdf");
  OutputStream op = new FileOutputStream(data);
  op.write(bytes);
} catch (Exception ex) {
  Log.e("MainActivity", "" + ex.getMessage())
}

【讨论】:

  • 上述代码中更正的是File assistant=new File("/mnt/sdcard");
  • 当我试图打开这个文件时,我出现了一个错误,提示 Adob​​e reader 无法打开该文件,因为它不是不支持的文件类型或文件已损坏。
【解决方案3】:

您可以使用Common IO 库,它有助于简单地从文件转换为字节数组或从字节数组转换为文件。

   File mFile = new File(filePath);
  FileUtils.writeByteArrayToFile(mFile, yourArray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多