2017-10-20 164 views
1

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

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

有一些奇怪的问题,在生成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(); 

手机文件管理器图片

enter image description here

电脑文件浏览器图片

enter image description here

+0

什么叫电脑文件浏览器是什么意思?模拟器通过Android设备监视器? –

+0

我的意思是在Mac上的Android文件传输和Ubuntu上的文件浏览器(当我将手机连接到计算机时,该文件在计算机上不可见) –

+0

不,它不会是这样,可能是您在将数据传输到Mac时出现问题。如果您的文件已创建并且可以在移动设备上打开,这意味着您的代码工作已经完成并且工作正常,请尝试正确地复制/传输文件 –

回答

0

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

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

尝试下面的步骤,并再次检查

  • 进入“设置”
  • 选择“应用程序“
  • 显示所有应用程序(菜单”显示系统“)
  • 选择系统应用程序”媒体存储“
  • 选择“存储”
  • 清除缓存和清除存储
  • 重启手机,再等待一段时间介质存储索引所有的文件
+0

另外它不显示在Ubuntu的文件资源管理器上 –

+0

为什么不能使用USB传输将文件共享到您的计算机 –

+0

其实我要部署这个在谷歌播放应用程序,这就是为什么我不想限制用户 –