Convertir Texto a PDF

Aspose.PDF para Android a través de Java proporciona la capacidad de convertir archivos de texto a formato PDF. En este artículo, demostramos cuán fácil y eficientemente podemos convertir un archivo de texto a PDF usando Aspose.PDF.

Cuando necesites convertir un archivo de texto a PDF, inicialmente lee el archivo de texto fuente en algún lector. Hemos utilizado StringBuilder para leer el contenido del archivo de texto. Instanciar el objeto Document y agregar una nueva página en la colección Pages. Crear un nuevo objeto de TextFragment y pasar el objeto StringBuilder a su constructor. Agregar un nuevo párrafo en la colección Paragraphs utilizando el objeto TextFragment y guardar el archivo PDF resultante utilizando el método Save de la clase Document.

Convertir archivo de texto plano a PDF

public void convertTXTtoPDF_Simple () {
        // Inicializar objeto documento

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

        // Instanciar un objeto Document llamando a su constructor vacío
        document=new Document();

        // Agregar una nueva página en la colección Pages del 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;
        }

        // Crear una instancia de TextFragment y pasar el texto del objeto reader a su
        // constructor como argumento
        TextFragment text=new TextFragment(stringBuilder.toString());

        // Agregar un nuevo párrafo de texto en la colección paragraphs y pasar el objeto
        // TextFragment
        page.getParagraphs().add(text);

        // Guardar archivo PDF resultante
        try {
            document.save(pdfDocumentFileName.toString());
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Convertir archivo de texto preformateado a 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());

        // Leer el archivo de texto como un array de cadenas
        List<String> lines;
        try {
            lines=Files.readAllLines(txtDocumentFileName, ENCODING);
        } catch (IOException e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Instanciar un objeto Document llamando a su constructor vacío
        document=new Document();

        // Agregar una nueva página a la colección Pages del Document
        Page page=document.getPages().add();
        int count=4;

        Font font=FontRepository.findFont("Droid Sans Mono");
        // Establecer márgenes izquierdo y derecho para una mejor presentación
        page.getPageInfo().getMargin().setLeft(20);
        page.getPageInfo().getMargin().setRight(10);
        page.getPageInfo().getDefaultTextState().setFont(font);
        page.getPageInfo().getDefaultTextState().setFontSize(12);

        for (String line : lines) {
            // verificar si la línea contiene el carácter "form feed"
            // ver https://en.wikipedia.org/wiki/Page_break
            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 {
                // Crear una instancia de TextFragment y
                // pasar la línea a su
                // constructor como argumento
                TextFragment text=new TextFragment(line);

                // Agregar un nuevo párrafo de texto a la colección de párrafos y pasar el objeto
                // TextFragment
                page.getParagraphs().add(text);
            }
        }
        // Guardar el archivo PDF resultante
        try {
            document.save(pdfDocumentFileName.toString());
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }