Конвертировать шаблон в HTML – Template to HTML- примеры C#
Aspose.HTML for .NET предлагает набор методов ConvertTemplate(), которые используются для преобразования HTML-шаблона в HTML-документ. Методы принимают несколько параметров, таких как путь к файлу шаблона, источник данных и параметры загрузки, и возвращают HTML-документ. Шаблон HTML (HTML Template) – это фрагмент кода HTML, содержащий заполнители для динамических данных. Эти заполнители называются выражениями и заключаются в двойные фигурные скобки, например: {{выражение}}. Источник данных предоставляет фактические значения для этих выражений. Метод ConvertTemplate() заменяет выражения в шаблоне значениями из источника данных, создавая полный HTML-документ. Этот метод можно использовать с различными типами источников данных, такими как XML и JSON.
В этой статье описывается, как конвертировать шаблон в HTML на примерах C# с использованием библиотеки Aspose.HTML for .NET.
Преобразование шаблона в HTML одной строкой кода
После того, как вы подготовили HTML-шаблон, вы можете преобразовать шаблон в HTML документ в своем приложении C# буквально с помощью одной строки кода! Для этого необходимо передать необходимые параметры методу
ConvertTemplate(sourcePath
, data
, options
, outputPath
).
1// Convert Template to HTML using C#
2
3// Convert template to HTML
4Converter.ConvertTemplate(
5 Path.Combine(DataDir, "template.html"),
6 new TemplateData(Path.Combine(DataDir, "data-source.json")),
7 new TemplateLoadOptions(),
8 Path.Combine(OutputDir, "template-with-single-line.html")
9);
Конвертировать Template в HTML документ
Давайте воспользуемся методом
ConvertTemplate(HTMLDocument
, TemplateData
, TemplateLoadOptions
, string
) для преобразования шаблона HTML в настоящий документ HTML. Метод принимает четыре параметра:
- В качестве источника шаблона используется объект
HTMLDocument
. - Объект
TemplateData
содержит данные, которые будут использоваться для заполнения шаблона. - Объект
TemplateLoadOptions
предоставляет опции для загрузки шаблона. - Строковый параметр используется для указания полного пути к файлу HTML в качестве результата преобразования.
Метод использует информацию из этих параметров для создания HTML-документа.
1// Populate HTML template with external XML data using C#
2
3// Prepare a path to an HTML source file
4string sourcePath = Path.Combine(DataDir, "template.html");
5
6// Prepare a path to an xml template data file
7string templateDataPath = Path.Combine(DataDir, "templateData.xml");
8
9// Define TemplateData object instance
10TemplateData templateData = new TemplateData(templateDataPath);
11
12// Prepare a path to the result file
13string resultPath = Path.Combine(OutputDir, "result.html");
14
15// Define default TemplateLoadOptions object
16TemplateLoadOptions options = new TemplateLoadOptions();
17
18// Initialize an HTML document as conversion source
19HTMLDocument document = new HTMLDocument(sourcePath, new Configuration());
20
21// Convert template to HTML
22Converter.ConvertTemplate(document, templateData, options, resultPath);
23
24// Clear resources
25document.Dispose();
Код создает экземпляр класса
HTMLDocument и использует метод
Converter.ConvertTemplate(), чтобы преобразовать файл шаблона (template.html) в документ HTML с использованием файла источника данных (templateData.xml). Метод принимает четыре параметра: объект HTMLDocument
, объект TemplateData
, созданный с использованием файла источника данных, объект TemplateLoadOptions
и путь к файлу для результирующего HTML-документа. Результирующий HTML-документ сохраняется по указанному пути к файлу (result.html). После преобразования объект document
удаляется.
Конвертировать Template в HTML документ на лету
Если ваш случай предполагает указание данных и создание шаблона на лету, вам необходимо выполнить несколько шагов:
- Подготовьте шаблон HTML и сохраните его в файл. Метод ConvertTemplate() принимает путь к файлу шаблона в качестве параметра (
sourcePath
). - Подготовьте источник данных JSON и XML и сохраните его в файл. Конструктор TemplateData() берет путь к этому файлу данных и создает объект данных для метода ConvertTemplate().
- Инициализируйте экземпляр класса TemplateLoadOptions, чтобы определить, совпадают ли имена шаблона и элемента данных, независимо от регистра или нет.
- Вызовите метод
ConvertTemplate() и передайте
sourcePath
,data
,options
иoutputPath
для него.outputPath
– путь для сохранения заполненного данными конечного файла HTML.
1// Populate an HTML template with structured JSON data using C#
2
3// Prepare a path to JSON data source file
4string jsonPath = Path.Combine(OutputDir, "data-source.json");
5
6// Prepare a JSON data source and save it to the file
7string data = @"{
8 ""FirstName"": ""John"",
9 ""LastName"": ""Doe"",
10 ""Address"": {
11 ""City"": ""Dallas"",
12 ""Street"": ""Austin rd."",
13 ""Number"": ""200""
14 }
15 }";
16File.WriteAllText(jsonPath, data);
17
18// Prepare a path to an HTML Template file
19string sourcePath = Path.Combine(OutputDir, "template.html");
20
21// Prepare an HTML Template and save it to the file
22string template = @"
23 <table border=1>
24 <tr>
25 <th>Person</th>
26 <th>Address</th>
27 </tr>
28 <tr>
29 <td>{{FirstName}} {{LastName}}</td>
30 <td>{{Address.Street}} {{Address.Number}}, {{Address.City}}</td>
31 </tr>
32 </table>
33 ";
34File.WriteAllText(sourcePath, template);
35
36// Prepare a path to the output file (data-filled template file)
37string outputPath = Path.Combine(OutputDir, "template-output.html");
38
39// Invoke Converter.ConvertTemplate() method in order to populate "template.html" with the data source from "data-source.json" file
40Converter.ConvertTemplate(sourcePath, new TemplateData(jsonPath), new TemplateLoadOptions(), outputPath);
Aspose.HTML предлагает бесплатные онлайн Конвертеры для преобразования HTML, XHTML, MHTML, EPUB, XML и Markdown файлы в различные популярные форматы. Вы можете легко конвертировать HTML в PDF, HTML в JPG, SVG to PDF, MHTML в PDF или MD в HTML. Просто выберите файл, выберите формат для преобразования, и все готово. Это быстро и совершенно бесплатно!
Вы можете скачать полные примеры и файлы данных с GitHub.