IWebHostEnvironment _env;
using var pck = model.CreateWorkbook(_env.WebRootPath); // Create the workbook
pck.Workbook.ConfigureFonts(cfg =>
{
cfg.FontDirectories.Add(Path.Combine(_env.ContentRootPath, "data", "Fonts"));
// collects events for display, InMemoryFontLogger is an implementation of the IFontLogger interface,
// written for this sample.
cfg.Logger = new InMemoryFontLogger(FontLogSeverity.Information);
});
// a method that returns a DataTable with data
var dataTable = GetDataTable();
var tableRange = sheet.Cells["A1"].LoadFromDataTable(dataTable, true, TableStyle);
var table = sheet.Tables.GetFromRange(tableRange);
table.ShowFirstColumn = model.ShowFirstColumn;
table.ShowLastColumn = model.ShowLastColumn;
table.ShowColumnStripes = model.ShowColumnStripes;
table.ShowRowStripes = model.ShowRowsStripes;
if(model.PrintTitles)
{
// Repeat the table's header row at the top of every printed page
int headerRow = table.Address.Start.Row;
sheet.PrinterSettings.RepeatRows = new ExcelAddress(headerRow + ":" + headerRow);
}
if(model.FitToPage)
{
sheet.PrinterSettings.FitToPage = true;
sheet.PrinterSettings.FitToWidth = 1;
sheet.PrinterSettings.FitToHeight = 1;
}
using var ms = new MemoryStream();
pck.Workbook.Worksheets[0].SaveAsPdf(ms);
return File(ms.ToArray(), ContentTypePdf, "EPPlus Sample 3.pdf");
Scanning fonts...
Runs the PDF export with the current table settings and shows which fonts and fallbacks were used.