Как экспортировать PDF с использованием библиотеки Rotativa

При экспорте PDF-файлов с несколькими таблицами с использованием библиотеки Rotativa возникает проблема, когда заголовки таблиц перекрываются данными таблицы, если данные выходят за пределы одной страницы, что приводит к нечеткому и нечитаемому содержимому.

public ActionResult ReportGeneratePdfTest(string projectname, int? year, int? month)
        {
            try
            {
                ViewBag.year = year;
                ViewBag.Month = month;
                ReportsNewViewModel obj = new ReportsNewViewModel
                {
                    Year = year,
                    Month = month,
                    ProjectName = projectname
                };
                ViewBag.layoutcase = true;

                if (year.HasValue && month.HasValue)
                {
                    obj = ReportsSectionCallMethod(projectname, (int)year, (int)month);
                }

                // Generate the PDF with custom settings
                return new ViewAsPdf("ReportsSectionMethod", obj)
                {
                    FileName = "Under_Construction_Thermal_Project_Broad_Status_Report.pdf",
                    PageMargins = new Rotativa.Options.Margins(10, 10, 10, 10),
                    PageSize = Rotativa.Options.Size.A3,
                    PageOrientation = Rotativa.Options.Orientation.Portrait,
                    CustomSwitches = "--page-offset 0", 
                };
            }
            catch (Exception ex)
            {
                // Log the exception or handle it as needed
                throw;
            }
        }
Влас
Вопрос задан28 августа 2024 г.

1 Ответ

2

Экспорт PDF с использованием библиотеки Rotativa

Rotativa – это мощная библиотека для ASP.NET MVC, которая позволяет создавать PDF-файлы из HTML-шаблонов. Она упрощает процесс экспорта данных в PDF-формат, предоставляя простой и удобный интерфейс.

Установка Rotativa

  1. Добавление Rotativa в проект: Используйте менеджер пакетов NuGet, чтобы добавить библиотеку Rotativa в ваш проект ASP.NET MVC:

    Install-Package Rotativa
    

Создание PDF-файла

  1. Создание контроллера: В контроллере ASP.NET MVC создайте действие, которое будет генерировать PDF-файл.

    using System.Web.Mvc;
    using Rotativa;
    
    public class HomeController : Controller
    {
        public ActionResult ExportPdf()
        {
            // Создание объекта ViewAsPdf
            var pdf = new ViewAsPdf("Index");
    
            // Установка заголовка для PDF-файла
            pdf.FileName = "my-document.pdf";
    
            // Возвращение PDF-файла
            return pdf;
        }
    }
    
    • ViewAsPdf("Index"): Создает объект ViewAsPdf, который использует шаблон “Index” для генерации PDF-файла.
    • pdf.FileName = "my-document.pdf": Задает имя файла для экспортируемого PDF-документа.
    • return pdf: Возвращает PDF-файл в браузер пользователя.
  2. Создание представления: Создайте представление “Index” (или любое другое, которое вы используете), которое будет рендериться в PDF.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Мой PDF-документ</title>
        <style>
            body {
                font-family: sans-serif;
            }
    
            h1 {
                font-size: 24px;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
    
        <h1>Заголовок</h1>
    
        <p>Текст документа.</p>
    
    </body>
    </html>
    

Дополнительные настройки

Rotativa предоставляет ряд опций для настройки процесса экспорта:

ОпцияОписание
FileNameЗадает имя файла для PDF-документа.
PageMarginsУстанавливает поля страницы.
PageSizeЗадает размер страницы (например, A4, Letter).
OrientationУстанавливает ориентацию страницы (Portrait, Landscape).
CustomSwitchesПозволяет использовать дополнительные параметры для HTML-рендеринга.

Пример использования:

var pdf = new ViewAsPdf("Index")
{
    FileName = "my-document.pdf",
    PageMargins = { Top = 20, Bottom = 20, Left = 20, Right = 20 },
    PageSize = Size.A4,
    Orientation = Orientation.Portrait
};

SEO-оптимизация

Важно оптимизировать PDF-файлы для SEO, чтобы повысить их видимость в поисковой выдаче.

  • Ключевые слова: Включайте ключевые слова в название файла, метаданные и текст документа.
  • Метаданные: Задайте правильное название, автора, тему и ключевые слова в метаданных PDF-файла.
  • Интерактивные элементы: Используйте аннотации, ссылки и интерактивные элементы для повышения вовлеченности пользователей.
  • Оптимизация изображения: Оптимизируйте размер и формат изображений, используемых в PDF-файле.
  • Sitemap: Добавьте PDF-файлы в Sitemap для индексации их поисковыми системами.

Рекомендации

  • Название файла: Используйте информативное название файла, содержащее ключевые слова.
  • Содержимое: Содержимое PDF-файла должно быть четким, лаконичным и оптимизированным для чтения.
  • Размер файла: Слишком большой размер файла может негативно сказаться на скорости загрузки.

Rotativa – это ценный инструмент для создания PDF-файлов в ASP.NET MVC. Используйте ее возможности для экспорта данных в удобном формате, а также помните об оптимизации PDF-файлов для SEO, чтобы обеспечить их доступность и индексацию поисковыми системами.

Юлия
Ответ получен10 сентября 2024 г.

Ваш ответ

Загрузить файл.