C# 选择PDF转换后缺少的内容

C# 选择PDF转换后缺少的内容,c#,html,asp.net-mvc,pdf,selectpdf,C#,Html,Asp.net Mvc,Pdf,Selectpdf,因此,我使用SelectPDF将MVC视图的html转换为PDF,但由于某些原因,PDF中缺少大量内容 我已经在我用MVC制作的其他网站上测试了这个程序,它们很有效 因此,根据自述文件的建议,我使用此代码生成 SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf(); SelectPdf.PdfDocument doc = converter.ConvertUrl(HTMLPath); //SelectPdf.PdfDocument do

因此,我使用SelectPDF将MVC视图的html转换为PDF,但由于某些原因,PDF中缺少大量内容

我已经在我用MVC制作的其他网站上测试了这个程序,它们很有效

因此,根据自述文件的建议,我使用此代码生成

SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
SelectPdf.PdfDocument doc = converter.ConvertUrl(HTMLPath);
//SelectPdf.PdfDocument doc = converter.ConvertHtmlString(ViewHTML);

doc.Save(PDFSavePath);
doc.Close();
因此
HTMLSave
path是从呈现的MVC视图创建的HTML文件的位置。而
ViewHTML
包含字符串形式的HTML

这就是HTML的外观(文件和视图看起来完全相同,我仔细检查了HTML是否被错误捕获):

但这就是PDF的外观:

绝对悲惨

不确定它是否有用,但以下是HTML:


不幸的是,由于HTML的MVC视图,所有HTML都在一行上。似乎用于呈现页面的HTML/css引擎不支持字体大小的vh、vw。这是所有转换器的常见问题,因此,如果需要将页面转换为pdf,您可能应该尝试更改此设置


后来的更新:似乎有大众的支持,但不支持vh。这就是“每个”字出现的原因。他们在css中使用vw。

我要做的第一件事是从源代码中删除两个样式表,然后再次运行它。看看它是否真的包括丢失的对象。如果是这样的话,你就把它缩小到了CSS问题上。从那里开始。该HTML字符串是无效的。它嵌套了一个
标记,而不是一个
,看起来有一些验证错误。也许你应该调查一下。另外,请确保链接了正确的样式表