Convertir archivo TXT a documento PDF en .NET

Categoría del blog: PDFOffice.NET

01.07.2021

A menudo es necesario convertir texto formateado a un documento PDF. Si el texto tiene un formato complejo, puede tomar mucho tiempo y código para convertir el texto formateado a contenido PDF.

Desde la versión 10.1 de VintaSoft Imaging .NET SDK se hizo posible editar documentos DOCX y XLSX existentes. Uno puede usar esta función para eliminar la necesidad de convertir un texto formateado a contenido PDF programáticamente. En lugar de escribir mucho código para convertir texto formateado, se puede crear un documento DOCX con el formato necesario e insertar el texto requerido en el documento ya formateado. Posteriormente, el documento DOCX creado se puede convertir fácilmente a PDF utilizando las funciones del VintaSoft Imaging .NET SDK.

Con base en el método descrito anteriormente, se puede crear fácilmente un conversor de TXT a PDF siguiendo estos pasos:
1. Con MS Word, cree el documento DOCX txtTemplate.docx:
2. En el código de la aplicación:
Este enfoque proporciona flexibilidad y facilidad de personalización para el convertidor: para cambiar los parámetros del documento de salida solo es necesario cambiar los parámetros de la plantilla txtTemplate.docx usando MS Word.


Aquí hay un ejemplo de código que demuestra cómo convertir un archivo TXT a un documento PDF:
// The project, which uses this code, must have references to the following assemblies:
// - Vintasoft.Imaging
// - Vintasoft.Imaging.Office.OpenXml
// - Vintasoft.Imaging.Pdf

/// <summary>
/// Tests conversion from TXT file to a PDF document.
/// </summary>
public static void Test()
{
    ConvertTxtFileToPdfDocument("Products.txt", "txtTemplate.docx", "Products.pdf");
}

/// <summary>
/// Converts specified text file to a PDF document.
/// </summary>
/// <param name="txtFilename">The TXT filename.</param>
/// <param name="docxTemplateFilename">The DOCX template filename.</param>
/// <param name="outputPdfFilename">The output PDF filename.</param>
public static void ConvertTxtFileToPdfDocument(string txtFilename, string docxTemplateFilename, string outputPdfFilename)
{
    string text = System.IO.File.ReadAllText(txtFilename, System.Text.Encoding.Unicode);
    ConvertTextToPdfDocument(System.IO.Path.GetFileName(txtFilename), text, docxTemplateFilename, outputPdfFilename);
}

/// <summary>
/// Converts specified text to a PDF document.
/// </summary>
/// <param name="text">The text.</param>
/// <param name="title">The document title.</param>
/// <param name="docxTemplateFilename">The DOCX template filename.</param>
/// <param name="outputPdfFilename">The output PDF filename.</param>
public static void ConvertTextToPdfDocument(string title, string text, string docxTemplateFilename, string outputPdfFilename)
{
    // create DocxDocumentEditor and use DOCX file as a document template
    using (Vintasoft.Imaging.Office.OpenXml.Editor.DocxDocumentEditor editor =
        new Vintasoft.Imaging.Office.OpenXml.Editor.DocxDocumentEditor(docxTemplateFilename))
    {
        // replace text "[title]" by document title
        editor.Body.ReplaceText("[title]", title);

        // if document body does not contain text "[content]"
        if (!editor.Body.Contains("[content]"))
            throw new ArgumentException("Template file must be contains '[content]' text.");

        // replace text "[content]" by text content
        editor.Body["[content]"] = text;

        // export DOCX document to a PDF document
        editor.Export(outputPdfFilename);
    }
}