【问题标题】:PDFDocument File savePDFDocument 文件保存
【发布时间】:2018-04-01 06:35:24
【问题描述】:

对不起,如果这个问题已经被问过了, 我在这个问题上搜索了很多,但没有得到解决方案。

我正在开发一个使用PDFDocument android 库生成PDF 文件的android 应用程序。

有一个奇怪的问题,生成PDF文件后,它在手机的文件资源管理器中可见,但在计算机的文件资源管理器中不可见(例如Mac的Android文件传输,Windows的我的电脑和Ubuntu的文件资源管理器),我想我在代码中遗漏了一些东西。请帮忙。

这是我的代码

    PdfDocument document = new PdfDocument();

    PdfDocument.PageInfo pageinfo = new  PdfDocument.PageInfo.Builder(PAGEWIDTH,PAGEHEIGHT,1).create();


    PdfDocument.Page page = document.startPage(pageinfo);

    Canvas canvas = page.getCanvas();

    Paint paint = new Paint();


    paint.setTextSize(getResources().getDimension(R.dimen.textsize));
    paint.setTextAlign(Paint.Align.CENTER);

        paint.setColor(ContextCompat.getColor(getApplicationContext(),R.color.colorName));
    canvas.drawText(getResources().getString(R.string.app_name),PAGEWIDTH/2,50,paint);


    document.finishPage(page);


    String targetPdf = "/sdcard/documents/myfile.pdf";
    File filepath = new File(targetPdf);
    try {

    filepath.createNewFile();

    document.writeTo(new FileOutputStream(filepath));
    Toast.makeText(getApplicationContext(),
    getResources().getString(R.string.success),
    Toast.LENGTH_SHORT).show();


    }
    catch (IOException e){
    e.printStackTrace();
    Toast.makeText(getApplicationContext(),
    getResources().getString(R.string.error) + e.toString(),
    Toast.LENGTH_LONG).show();
    }

    document.close();

手机文件资源管理器图片

计算机文件资源管理器图像

【问题讨论】:

  • 电脑文件浏览器是什么意思?模拟器通过 Android 设备监视器?
  • 我的意思是 Mac 上的 Android 文件传输和 Ubuntu 上的文件资源管理器(当我将手机连接到计算机时,该文件在计算机上不可见)
  • 不,不会这样,可能是您在将数据传输到 Mac 时遇到问题。如果您的文件已创建并且能够在手机中打开,这意味着您的代码工作已完成并且工作正常。请尝试正确复制/传输文件
  • 如您在上图中所见,名为“myfile.pdf”的文件在手机的文件夹下可见,但是当我在 Mac 上打开“Android 文件传输”时,除了每隔一个文件文件可见。
  • 我认为它没有正确保存文件

标签: java android file pdf filewriter


【解决方案1】:

如果您的文件已创建并且能够在移动设备中打开,则意味着您的代码工作已完成并且可以正常工作。由于您能够从手机保存和打开文件,现在问题不在于代码,而在于将数据传输到 mac(如您所述)。

在某些情况下Android File Transfer 没有列出herehere 提到的所有文件

尝试以下步骤并再次检查

  • 转到“设置”
  • 选择“应用”
  • 显示所有应用程序(菜单“显示系统”)
  • 选择系统应用“媒体存储”
  • 选择“存储”
  • 清除缓存和清除存储
  • 重启手机并等待一段时间,让 Media Storage 再次索引您的所有文件

【讨论】:

  • 为什么不能使用 USB 传输将文件共享到您的计算机
  • 其实我打算在google play上部署这个应用,所以我不想限制用户
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多