Главное Авторские колонки Вакансии Вопросы
Выбор редакции:
1 914 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как использовать C# для создания документов Word на основе шаблона

В этой статье я расскажу, как программно создавать документы Word из шаблона, заменяя заполнители (строки) новыми строками или изображениями с помощью Free Spire.Doc for .NET.
Мнение автора может не совпадать с мнением редакции

Обзор

Шаблон Word представляет собой документ с заранее определенной структурой, содержимым и стилями. Пользователям нужно только добавить или заменить небольшое количество контента, чтобы создать свои собственные документы. В этой статье я расскажу, как программно создавать документы Word из шаблона, заменяя заполнители (строки) новыми строками или изображениями с помощью Free Spire.Doc for .NET.

Установка Free Spire.Doc for .NET

Во-первых, нужно установить Free Spire.Doc for .NET. Мы можем сделать это через NuGet. Откройте Visual Studio, выберите меню «Tools» (Инструменты), затем выберите «NuGet Package Manager» (Менеджер пакетов NuGet) и «Package Manager Console» (Консоль менеджера пакетов). В консоли введите следующую команду:

Install-Package FreeSpire.Doc

Создание шаблона

Следующий скриншот показывает шаблон, созданный в MS Word. Строки вида «#name#», «#address#» являются заполнителями, которые будут заменены новыми строками. Заполнитель «#photograph#» будет заменен изображением. Не забудьте применить форматирование (размер шрифта, стиль шрифта, выравнивание и т. д.) к заполнителям, чтобы новый контент наследовал это форматирование.


Создание документа Word на основе шаблона в C#

Шаги по замене заполнителей в шаблоне Word с использованием Free Spire.Doc for .NET следующие:

  1. Создайте объект Document.
  2. Загрузите шаблон Word с помощью метода Document.LoadFromFile().
  3. Получите заполнители и новые строки, сохраненные в словаре.
  4. Замените заполнители новыми строками с помощью метода Document.Replace(string matchString, string newValue, bool caseSensitive, bool wholeWord).
  5. Замените заполнитель изображением с помощью пользовательского метода ReplaceTextWithImage(Document document, String stringToReplace, String imagePath).
  6. Сохраните документ в файл Word с помощью метода Document.SaveToFile().

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

using System;

using System.Collections.Generic;

using System.Drawing;

namespace ReplacePlaceholdersInWord

{

class Program

{

static void Main(string[] args)

{

// Создание объекта Document

Document document = new Document();

// Загрузка шаблона

document.LoadFromFile("C:\Users\Administrator\Desktop\Template.docx");

// Сохранение старых строк — «заполнителей» и новых строк в словаре

Dictionary replaceDict = new Dictionary();

replaceDict.Add("#name#«, «Kaila Smith»);

replaceDict.Add("#address#«, «123 Michigan Street, Bloomfield, MI94141»);

replaceDict.Add("#telephone#«, «537286»);

replaceDict.Add("#mail#«, «kaila@hotmail.com»);

replaceDict.Add("#nationality#«, «United States»);

replaceDict.Add("#birth#«, «July 12th, 1992»);

replaceDict.Add("#gender#«, «Female»);

//Замена строк новыми строками

foreach (KeyValuePair kvp in replaceDict)

{

document.Replace(kvp.Key, kvp.Value, true, true);

}

//Получение пути к изображению

String imagePath = «C:\Users\Administrator\Desktop\photo.jpg»;

// Замена строки в шаблоне на изображение

ReplaceTextWithImage(document, «#photograph#», imagePath);

// Сохранение файла документа

document.SaveToFile("ReplacePlaceholders.docx", FileFormat.Docx);

document.Close();

}

// Замена строки в документе Word на изображение

static void ReplaceTextWithImage(Document document, String stringToReplace, String imagePath)

{

TextSelection[] selections = document.FindAllString(stringToReplace, false, true);

Image image = Image.FromFile(imagePath);

int index = 0;

TextRange range = null;

foreach (TextSelection selection in selections)

{

DocPicture pic = new DocPicture(document);

pic.LoadImage(image);

range = selection.GetAsOneRange();

index = range.OwnerParagraph.ChildObjects.IndexOf(range);

range.OwnerParagraph.ChildObjects.Insert(index, pic);

range.OwnerParagraph.ChildObjects.Remove(range);

}

}

}

}

Файлы результатов:


Другие функции

Кроме создания Word-документов на основе шаблона, Free Spire.Doc for .NET также предоставляет множество других функций, таких как:

— Поддержка создания, изменения и чтения Word-документов

— Поддержка добавления, удаления и изменения элементов документа, таких как параграфы, таблицы, изображения и т. д.

— Поддержка настройки стилей документа, шрифтов, цветов и т. д.

— Поддержка экспорта Word-документа в форматы PDF, HTML, RTF и т. д.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.