PDF Excel экспорт клиент и сервер

HTML-таблица, диаграммы, изображения могут быть содержимым отчета. Пользователь может скачать отчет о просмотре или запланировать восстановление этих отчетов по электронной почте. Нужен движок для выдачи в формате PDF и Excel как на стороне клиента, так и на стороне сервера. Использование Angular 5 с фронтальной стороны и Spring Boot с поддержкой.

Пробовал Kendo UI ... он генерирует PDF на стороне клиента, но не уверен, как это сделать в планировщике загрузки Spring с использованием kendo

Вы открыты для api микросервиса на основе Laravel, который затем использует такой пакет (github.com/Maatwebsite/Laravel-Excel) для удовлетворения ваших потребностей?

jeremykenedy 02.09.2018 19:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
5
1
507
1

Ответы 1

Я сталкивался с этой проблемой много раз, то же самое в JavaScript, C# или Java, обычно требования такие же. Чтобы позволить создавать отчеты, некоторые из них основаны только на тексте, но другие кажутся более сложными, с форматированным текстом, таблицами, изображениями и даже диаграммами. Хорошо известно, что существует множество инструментов для создания отчетов, например DevExpress XtraReports, Crystal Reports, Джаспер отчеты, Службы отчетов MS и даже больше MS Word Interop для создания пользовательских отчетов в формате Docx / PDF, MS Excel Interop, но ни одна из этих технологий не является такой простой и мощной, как iText ( для Java) или iTextSharp (для .Net). Эта библиотека позволяет создавать мощные PDF-документы, отчеты, книги и т. д.. Взгляните на iText в книге действий, чтобы иметь хорошее представление обо всех вещах, которые вы можете делать с iText. Загрузка PDF-файла на клиентскую сторону - это вопрос очистка потока PDF с использованием подходящего Тип MIME: «application / pdf».

    public Image CreateNewLogo()
    {
        string imageURL = HttpContext.Current.Server.MapPath(PDFResources.ImagesPath) + "/Logo.png";
        Image img = Image.GetInstance(imageURL);
        img.ScaleToFit(270f, 90f);
        img.SpacingBefore = 5f;
        img.SpacingAfter = 5f;
        img.Alignment = Element.ALIGN_LEFT;

        return img;
    }

    public void CreateHeader()
    {
        string div = Resources.OFR_Resources.h1_div + " " + data.DescDivision;
        string zona = Resources.OFR_Resources.h1_zona + " " + data.DescZona;
        Image logo = CreateNewLogo();

        PdfPTable table = new PdfPTable(2);         table.DefaultCell.Border = Rectangle.NO_BORDER;
        PdfPCell cellDZ = new PdfPCell();           cellDZ.Border = Rectangle.NO_BORDER;

        Paragraph pd = NewParagraphHeader(div);     pd.Alignment = Element.ALIGN_RIGHT;
        Paragraph pz = NewParagraphHeader(zona);    pz.Alignment = Element.ALIGN_RIGHT;
        cellDZ.AddElement(pd);                      cellDZ.AddElement(pz);            
        table.AddCell(logo);                     table.AddCell(cellDZ);

        document.Add(table);
    }

    public void CreateContent()
    {
        string s1_p1 = Resources.OFR_Resources.s1_p1.Replace("[FECHA_SOLICITUD]", string.Format("{0: dd MM yyyy}", data.Solicitud.fechaAlta));
        s1_p1 = s1_p1.Replace("[RAZON_SOCIAL]", data.Solicitud.dsNombreDenRS);
        s1_p1 = s1_p1.Replace("[DIRECCION_SOLICITANTE]", data.DireccionSolicitante);

        PdfPTable table = new PdfPTable(2); table.DefaultCell.Border = Rectangle.NO_BORDER;
        Paragraph p_fecha       = NewParagraphN(Resources.OFR_Resources.s1_fecha.Replace("[FECHA_ACTUAL]", DateTime.Now.ToLongDateString()));
        Paragraph p_oficio      = NewParagraphN(Resources.OFR_Resources.s1_oficio);
        Paragraph p_asunto      = NewParagraphN(Resources.OFR_Resources.s1_asunto);

        PdfPCell cellRigth = new PdfPCell();
        cellRigth.AddElement(p_fecha);
        cellRigth.AddElement(p_asunto);
        cellRigth.Border = Rectangle.NO_BORDER;

        table.AddCell("");
        table.AddCell(cellRigth);
        document.Add(table);
    }

См .: https://itextpdf.com/

Другие вопросы по теме