Aspose HTML в PDF Css не рендеринг последовательно через таблицу - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь сгенерировать 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;
}

Но вывод не соответствует. Я прилагаю скриншот вывода. enter image description here

...