Я пытаюсь сгенерировать pdf из html строки или html файла, но CSS не рендерится согласованно во всем PDF. У моего Html есть таблица, а граница для таблицы для одних строк и столбцов темная, а для других - облегченная. Я использовал два подхода для этого, и я получаю одинаковый результат от обоих подходов.
Мой первый подход:
StringBuilder html = new StringBuilder();
string PdfHtmlTemplateHead = @"<!DOCTYPE html><html><head><style>";
html.Append(PdfHtmlTemplateHead);
html.Append(File.ReadAllText("E:\\CSS\\PdfCOOPPremManulifeCss.css"));
string PdfHtmlTemplateBody = @"</style></head><body> Body HTML HERE</body></html> ";
html.Append(PdfHtmlTemplateBody);
HtmlLoadOptions objLoadOptions = new HtmlLoadOptions();
objLoadOptions.PageInfo.Margin.Bottom = 10;
objLoadOptions.PageInfo.Margin.Top = 30;
objLoadOptions.PageInfo.Margin.Left = 10;
objLoadOptions.PageInfo.Margin.Right = 10;
objLoadOptions.PageInfo.Width = Aspose.Pdf.PageSize.A4.Width;
Document doc = new Document(new MemoryStream(Encoding.UTF8.GetBytes(html.ToString())), objLoadOptions);
string FileName = "Sample_" + DateTime.Now.ToString("dd-MM-yyyy") + ".pdf";
//Save PDF file on local hard drive or database or as you wish
doc.Save(@"E:\Aspose\" + FileName);
Мой второй подход:
String basePath = @"E:\CSS2\";
HtmlLoadOptions objLoadOptions = new HtmlLoadOptions(basePath);
objLoadOptions.PageInfo.Margin.Bottom = 10;
objLoadOptions.PageInfo.Margin.Top = 30;
objLoadOptions.PageInfo.Margin.Left = 10;
objLoadOptions.PageInfo.Margin.Right = 10;
objLoadOptions.PageInfo.Width = Aspose.Pdf.PageSize.A4.Width;
//Load HTML string into MemoryStream using Aspose document class
Document doc = new Document(@"E:\CSS2\testqc.html", objLoadOptions);
string FileName = "Sample_" + DateTime.Now.ToString("dd-MM-yyyy") + ".pdf";
//Save PDF file on local hard drive or database or as you wish
doc.Save(@"E:\Aspose\" + FileName);
I Я использую этот кусок CSS, чтобы применить границу в моей таблице:
table, tr{
border: 1px solid black;
border-collapse: collapse;
}
Но вывод не соответствует. Я прилагаю скриншот вывода.