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




Я сталкивался с этой проблемой много раз, то же самое в 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/
Вы открыты для api микросервиса на основе Laravel, который затем использует такой пакет (github.com/Maatwebsite/Laravel-Excel) для удовлетворения ваших потребностей?