Добавление пользовательского кода (представления) в заголовок DinkToPdf

#c# #html #dinktopdf

#c# #HTML #динктопдф

Вопрос:

Я создаю html представления stringbuilder и использую DinkToPDF их для преобразования этого HTML-кода в PDF. Я смог добавить верхний и нижний колонтитулы, используя следующее (путем создания статических HTML страниц:

 var objectSettings = new ObjectSettings
        {
            PagesCount = true,
            HtmlContent = await _template.Build(data, hostUrl),
            //HeaderSettings = { HtmUrl = hostUrl   "/views/v1/getview?reportName=AcademicTranscriptamp;viewName=test.htmlamp;themeName=SchoolTheme_SchoolId", 
            HeaderSettings = { HtmUrl = hostUrl   _swaggerConfig.BasePath   "/views/v1/getview?reportName=AcademicTranscriptamp;viewName=portraitheader.html",
                Line = true, Right = "[page]/[sitepages]", Spacing = 5 },
            FooterSettings = { HtmUrl = hostUrl   _swaggerConfig.BasePath   "/views/v1/getview?reportName=AcademicTranscriptamp;viewName=portraitfooter.html",
                Line = true },
        };
 

Это отлично работает, но мне нужно добавить пользовательское html представление как часть заголовка, которое содержит такие сведения, как имя, фамилия, адрес и т.д.

Есть ли способ добавить пользовательскую страницу (имеется в виду Html-теги и т.д. с информацией из базы данных) в заголовок?

Я надеюсь, что мой вопрос имеет смысл.

Спасибо за любую помощь.

Ответ №1:

Похоже, что на данный момент существует 2 способа настройки содержимого заголовка документа в настройках заголовков в DinkToPDF:

  1. заполните Left , Center , Right свойства обычным текстом
  2. передайте путь к заголовочному файлу в формате HTML в HtmUrl свойстве

Таким образом, вы можете получить необходимые данные из базы данных, заполнить файл заголовка HTML с помощью средства визуализации HTML, подобного этому, передать путь к файлу заголовка HeaderSettings.HtmUrl свойству, сгенерировать свой PDF-документ с помощью DinkToPDF и впоследствии удалить файл заголовка.

Пример генерации HTML-файлов по шаблону можно найти здесь