2017-10-11 50 views
0

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

我已经测试过的程序上的其他网站我在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被错误地捕获):

HTML

但这是PDF的外观:

PDF 绝对悲惨...

不知道是否会有所帮助,但这里的HTML:

https://drive.google.com/open?id=0B8DiACLG11oYd3p5Tzc2ZlJQLVk

不幸的是,所有的HTML是在一行感谢MVC查看到HTML

+1

我会做的第一件事就是从源中删除两个样式表并再次运行它。看看它是否实际包含缺失的对象。如果是这样,你已经缩小到CSS问题。从那里出发。 –

+1

该HTML字符串无效btw。它有一个''和''嵌套代替'

',看起来像一些验证错误。也许你应该考虑一下。另外,请确保您链接的是正确的样式表 – zgood

回答

1

似乎使用的HTML/CSS引擎来渲染页面不支持VH,VW的字体大小。这是所有转换器的常见问题,因此如果您需要将页面转换为pdf,可能应该尝试更改此设置。

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