2016-08-02 7 views
1

私はPDFファイルを印刷するために以下のコードを試しましたが、MS-Officeドキュメントでは動作しません!MS-OfficeドキュメントをSDカードからアンドロイドでプログラムで印刷するにはどうすればよいですか?

PrintManager printManager = (PrintManager) getActivity() 
       .getSystemService(Context.PRINT_SERVICE); 

PrintDocumentAdapter printAdapter = 
       wView.createPrintDocumentAdapter(); 
String jobName = getString(R.string.app_name) + " Document"; 
printManager.print(jobName, pda, null); 

PrintDocumentAdapter pda = new PrintDocumentAdapter() { 

     @Override 
     public void onWrite(PageRange[] pages, ParcelFileDescriptor destination, CancellationSignal cancellationSignal, WriteResultCallback callback) { 
      InputStream input = null; 
      OutputStream output = null; 

      try { 

       input = new FileInputStream(file); 
       output = new FileOutputStream(destination.getFileDescriptor()); 

       byte[] buf = new byte[1024]; 
       int bytesRead; 

       while ((bytesRead = input.read(buf)) > 0) { 
        output.write(buf, 0, bytesRead); 
       } 

       callback.onWriteFinished(new PageRange[]{PageRange.ALL_PAGES}); 

      } catch (FileNotFoundException ee) { 
       //Catch exception 
      } catch (Exception e) { 
       //Catch exception 
      } finally { 
       try { 
        input.close(); 
        output.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 

MS-Officeファイルには空白のドキュメントが表示されます。 Androidの印刷フレームワークはPDFファイルのみをサポートしているので

私はあなたの助けを必要としてください...事前に

おかげ

答えて

0

PrintDocumentAdapterは、PDFファイルをサポートしています。ファイルをPDF形式に変換するサーバー(たとえば、unoconv)で、実行可能なライブラリやコマンドを見つける必要があります。

関連する問題