Convertir du texte en PDF

Aspose.PDF pour Android via Java offre la possibilité de convertir des fichiers texte au format PDF. Dans cet article, nous démontrons à quel point il est facile et efficace de convertir un fichier texte en PDF en utilisant Aspose.PDF.

Lorsque vous devez convertir un fichier texte en PDF, commencez par lire le fichier texte source avec un lecteur. Nous avons utilisé StringBuilder pour lire le contenu du fichier texte. Instancier un objet Document et ajouter une nouvelle page dans la collection Pages. Créer un nouvel objet TextFragment et passer l’objet StringBuilder à son constructeur. Ajouter un nouveau paragraphe dans la collection Paragraphs en utilisant l’objet TextFragment et enregistrer le fichier PDF résultant en utilisant la méthode Save de la classe Document.

Convertir un fichier texte brut en PDF

public void convertTXTtoPDF_Simple () {
        // Initialiser l'objet document

        File pdfDocumentFileName=new File(fileStorage, "demo_txt.pdf");
        File txtDocumentFileName=new File(fileStorage, "Conversion/rfc822.txt");

        // Instancier un objet Document en appelant son constructeur vide
        document=new Document();

        // Ajouter une nouvelle page dans la collection Pages du Document
        Page page=document.getPages().add();

        String string;
        StringBuilder stringBuilder=new StringBuilder();
        InputStream is;
        try {
            is=new FileInputStream(txtDocumentFileName);
        } catch (FileNotFoundException e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        BufferedReader reader=new BufferedReader(new InputStreamReader(is));
        while (true) {
            try {
                if ((string=reader.readLine()) == null) break;
            } catch (IOException e) {
                resultMessage.setText(e.getMessage());
                return;
            }
            stringBuilder.append(string).append("\n");
        }
        try {
            is.close();
        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Créer une instance de TextFragment et passer le texte de l'objet reader à son
        // constructeur en tant qu'argument
        TextFragment text=new TextFragment(stringBuilder.toString());

        // Ajouter un nouveau paragraphe de texte dans la collection de paragraphes et passer
        // l'objet TextFragment
        page.getParagraphs().add(text);

        // Enregistrer le fichier PDF résultant
        try {
            document.save(pdfDocumentFileName.toString());
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Convertir un fichier texte préformaté en PDF

    public void convertPreFormattedTextToPdf () {

        File txtDocumentFile=new File(fileStorage, "Conversion/rfc822.txt");
        File pdfDocumentFileName=new File(fileStorage, "demo_txt.pdf");
        Path txtDocumentFileName=Paths.get(txtDocumentFile.toString());

        // Lire le fichier texte comme un tableau de chaînes
        List<String> lines;
        try {
            lines=Files.readAllLines(txtDocumentFileName, ENCODING);
        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Instancier un objet Document en appelant son constructeur vide
        document=new Document();

        // Ajouter une nouvelle page à la collection Pages du Document
        Page page=document.getPages().add();
        int count=4;

        Font font=FontRepository.findFont("Droid Sans Mono");
        // Définir les marges gauche et droite pour une meilleure présentation
        page.getPageInfo().getMargin().setLeft(20);
        page.getPageInfo().getMargin().setRight(10);
        page.getPageInfo().getDefaultTextState().setFont(font);
        page.getPageInfo().getDefaultTextState().setFontSize(12);

        for (String line : lines) {
            // vérifier si la ligne contient le caractère "saut de page"
            // voir https://fr.wikipedia.org/wiki/Saut_de_page
            if (line.startsWith("\f")) {
                page=document.getPages().add();
                page.getPageInfo().getMargin().setLeft(20);
                page.getPageInfo().getMargin().setRight(10);
                page.getPageInfo().getDefaultTextState().setFont(font);
                page.getPageInfo().getDefaultTextState().setFontSize(12);
            } else {
                // Créer une instance de TextFragment et
                // passer la ligne à son
                // constructeur comme argument
                TextFragment text=new TextFragment(line);

                // Ajouter un nouveau paragraphe de texte à la collection de paragraphes et passer l'objet TextFragment
                page.getParagraphs().add(text);
            }
        }
        // Enregistrer le fichier PDF résultant
        try {
            document.save(pdfDocumentFileName.toString());
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }