2016-08-02 31 views
1

Ich habe unten Code zum Drucken der PDF-Datei versucht, aber es funktioniert nicht in MS-Office-Dokumenten!Wie programmiere ich MS-Office-Dokumente in Android von SD-Karte?

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(); 
       } 
      } 
     } 

Es zeigt leeres Dokument für MS-Office-Dateien.

Bitte ich brauche Ihre Hilfe ...

Vielen Dank im Voraus

Antwort

0

PrintDocumentAdapter unterstützt nur PDF-Dateien, da der Android Druckrahmen nur PDF-Dateien unterstützt. Sie müssen eine Bibliothek oder einen Befehl finden, den Sie ausführen können, z. B. auf Ihrem Server (z. B. unoconv), der Ihre Dateien in das PDF-Format konvertiert.