Конвертация TXT файла в PDF документ в .NET
01 июля 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);
}
}