2017-02-10 22 views
10

Próbuję utworzyć plik PDF za pomocą pliku android.graphics.pdf. Mój problem dotyczy wielu stron. Mogę dać android.graphics.pdf html, który może być następnie wydrukowany do pliku PDF. Teraz to nie działa, jeśli tekst przepełnia ustawiony rozmiar strony. Czy możliwe jest nadanie mu całego html i utworzenie wielu stron w zależności od zawartości w odniesieniu do rozmiaru strony? Podobnie jak TCPDF :)Tworzenie wielu stron PDF przy użyciu android.graphics.pdf

Uwaga. Próbuję uniknąć tworzenia oddzielnych wielu stron, obliczając wysokość zawartości.

+0

hej spróbować tego linka może dostaniesz odpowiedź http://stackoverflow.com/a/36349822/2888952 – Arpan24x7

+0

Czy wystąpił błąd podczas przepełnienia zawartości? – Michael

Odpowiedz

0

Do tego trzeba dodać słoik z iTextG do projektu:

public void createandDisplayPdf(String text) { 

    Document doc = new Document(); 

    try { 
     String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Dir"; 

     File dir = new File(path); 
     if(!dir.exists()) 
      dir.mkdirs(); 

     File file = new File(dir, "newFile.pdf"); 
     FileOutputStream fOut = new FileOutputStream(file); 

     PdfWriter.getInstance(doc, fOut); 

     //open the document 
     doc.open(); 

     Paragraph p1 = new Paragraph(text); 
     Font paraFont= new Font(Font.COURIER); 
     p1.setAlignment(Paragraph.ALIGN_CENTER); 
     p1.setFont(paraFont); 

     //add paragraph to document 
     doc.add(p1);  

    } catch (DocumentException de) { 
     Log.e("PDFCreator", "DocumentException:" + de); 
    } catch (IOException e) { 
     Log.e("PDFCreator", "ioException:" + e); 
    } 
    finally { 
     doc.close(); 
    } 

    viewPdf("newFile.pdf", "Dir"); 
} 

// Method for opening a pdf file 
private void viewPdf(String file, String directory) { 

    File pdfFile = new File(Environment.getExternalStorageDirectory() + "/" + directory + "/" + file); 
    Uri path = Uri.fromFile(pdfFile); 

    // Setting the intent for pdf reader 
    Intent pdfIntent = new Intent(Intent.ACTION_VIEW); 
    pdfIntent.setDataAndType(path, "application/pdf"); 
    pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    try { 
     startActivity(pdfIntent); 
    } catch (ActivityNotFoundException e) { 
     Toast.makeText(TableActivity.this, "Can't read pdf file", Toast.LENGTH_SHORT).show(); 
    } 
} 
Powiązane problemy