2017-02-10 6 views
10

Ich versuche, eine PDF-Datei mit android.graphics.pdf zu erstellen. Mein Problem ist mit mehreren Seiten. Ich kann android.graphics.pdf html geben, das dann zu einem PDF gedruckt werden könnte. Das geht jetzt nicht, wenn Text die eingestellte Seitengröße überschreitet. Ist es möglich, den gesamten HTML-Code anzugeben und mehrere Seiten entsprechend dem Inhalt in Bezug auf die Seitengröße zu erstellen? Wie auch TCPDF :)Erstellen mehrerer Seiten von PDF mit android.graphics.pdf

Hinweis. Ich versuche zu vermeiden, separate mehrere Seiten zu erstellen, indem Sie die Höhe des Inhalts berechnen.

+0

versuchen hey auf diesen Link können Sie Ihre Antwort bekommen http://stackoverflow.com/a/36349822/2888952 – Arpan24x7

+0

Wird ein Fehler ausgelöst, wenn der Inhalt überläuft? – Michael

Antwort

0

Dazu müssen Sie das Glas iTextG zu einem Projekt hinzuzufügen:

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