Конвертация TXT файла в PDF документ в .NET
1 июля 2021
// Проект, который использует данный код, должен иметь ссылки на следующие .NET сборки: // - Vintasoft.Imaging // - Vintasoft.Imaging.Office.OpenXml // - Vintasoft.Imaging.Pdf /// <summary> /// Тестирует конвертацию TXT файла в PDF документ. /// </summary> public static void Test() { ConvertTxtFileToPdfDocument("Products.txt", "txtTemplate.docx", "Products.pdf"); } /// <summary> /// Сконвертировать указанный текстовый файл в PDF документ. /// </summary> /// <param name="txtFilename">Имя текстового файла.</param> /// <param name="docxTemplateFilename">Имя шаблонного DOCX файла.</param> /// <param name="outputPdfFilename">Имя результирующего PDF файла.</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> /// Сконвертировать указанный текст в PDF документ. /// </summary> /// <param name="text">Текст.</param> /// <param name="title">Заголовок документа.</param> /// <param name="docxTemplateFilename">Имя шаблонного DOCX файла.</param> /// <param name="outputPdfFilename">Имя результирующего PDF файла.</param> public static void ConvertTextToPdfDocument(string title, string text, string docxTemplateFilename, string outputPdfFilename) { // создать объект DocxDocumentEditor и указать DOCX файл в качестве шаблона документа using (Vintasoft.Imaging.Office.OpenXml.Editor.DocxDocumentEditor editor = new Vintasoft.Imaging.Office.OpenXml.Editor.DocxDocumentEditor(docxTemplateFilename)) { // заменить текст "[title]" на заголовок документа editor.Body.ReplaceText("[title]", title); // если тело документа не содержит текст "[content]" if (!editor.Body.Contains("[content]")) // ошибка throw new ArgumentException("Template file must be contains '[content]' text."); // заменить текст "[content]" на текстовый контент editor.Body["[content]"] = text; // экспортировать DOCX документ в PDF документ editor.Export(outputPdfFilename); } }