2017-10-17 5 views
-1

J'ai un fichier html avec le formulaire et le canevas qui doit être rempli par quelqu'un (inclure le dessin sur le canevas).
Comment convertir le html avec le contenu après avoir rempli le formulaire en fichier PDF et enregistrez le PDF sur l'appareil?
J'ai googlé, mais je n'ai trouvé aucune bonne solution.Conversion de contenu HTML en fichier pdf

Mise à jour: Tous les html, css, js fichiers sont dans le dossier assest.

Répondre

0

Vous pouvez utiliser iText

Vous devez d'abord ajouter dependency-:

dependencies { 
compile 'com.itextpdf:itextg:5.5.11' 
} 

Exemple de code

private void createPDF (String pdfFilename){ 

    //path for the PDF file to be generated 
    String path = "docs/" + pdfname; 
    PdfWriter pdfWriter = null; 

    //create a new document 
    Document document = new Document(); 

    try { 

    //get Instance of the PDFWriter 
    pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(path)); 

    //document header attributes 
    document.addAuthor("betterThanZero"); 
    document.addCreationDate(); 
    document.addProducer(); 
    document.addCreator("MySampleCode.com"); 
    document.addTitle("Demo for iText XMLWorker"); 
    document.setPageSize(PageSize.LETTER); 

    //open document 
    document.open(); 

    //To convert a HTML file from the filesystem 
    //String File_To_Convert = "docs/SamplePDF.html"; 
    //FileInputStream fis = new FileInputStream(File_To_Convert); 

    //URL for HTML page 
    URL myWebPage = new URL("http://demo.mysamplecode.com/"); 
    InputStreamReader fis = new InputStreamReader(myWebPage.openStream()); 

    //get the XMLWorkerHelper Instance 
    XMLWorkerHelper worker = XMLWorkerHelper.getInstance(); 
    //convert to PDF 
    worker.parseXHtml(pdfWriter, document, fis); 

    //close the document 
    document.close(); 
    //close the writer 
    pdfWriter.close(); 

    } 

    catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } catch (DocumentException e) { 
    e.printStackTrace(); 
    }  

} 

EDIT

Ci-dessous code fonctionne pour moi d'obtenir le fichier html de assests dossier -:

InputStream is = getAssets().open("test.html"); 
InputStreamReader fis = new InputStreamReader(is); 

Vous pouvez modifier

URL myWebPage = new URL("http://demo.mysamplecode.com/"); 
InputStreamReader fis = new InputStreamReader(myWebPage.openStream()); 

à

InputStream is = getAssets().open("test.html"); 
InputStreamReader fis = new InputStreamReader(is); 

mai, Aide vous. Bonne programmation :)

+0

@tal avez-vous essayé cela – UltimateDevil

+0

Il y a un problème avec vos dépendances. studio android montre moi un message d'erreur: "Impossible de résoudre: com.itextpdf: itextg: 5.5.11" j'essaie de chercher le fichier jar mais c'est aussi le même problème. tu as une idée? – tal

+0

essayer d'utiliser compiler 'com.itextpdf: itextg: 5.5.10' celui-ci travaille pour moi – UltimateDevil

0

Je n'ai pas assez réputation pour commenter, mais je voudrais ajouter que, afin d'obtenir la réponse de UltimateDevil au travail, je devais ajouter les dépendances Gradle suivantes:

compile 'com.itextpdf:itext-pdfa:5.5.10' 
compile group: 'com.itextpdf.tool', name: 'xmlworker', version: '5.5.10'