我一直在使用EvoPdf版本3.5而没有任何问题,但突然间它无法从SSL读取样式表。
string html = "<link href=\"https://www.domain.com/styles.css\" rel=\"stylesheet\" type=\"text/css\" />Test";
PdfConverter pdfConverter = new PdfConverter();
byte[] bytes = pdfConverter.GetPdfBytesFromHtmlString(html);
如果从http
加载样式表,它可以正常工作。在另一个IIS上,样式表可以从SSL中读取。
我不知道如何解决这个问题。它可以是DNS问题吗?
答案 0 :(得分:4)
原因是服务器上禁用了SSL 3.0,而低于4.0的EVO HTML到PDF转换器的版本没有完全支持TLS,因此在访问HTTPS文档或资源时可能无法在所有服务器上正常工作。如果HTML文档中的HTTPS URL引用了这些资源,则可能导致错误,缺少图像和样式。
答案 1 :(得分:0)
您可以尝试从chrome商店下载pdf viewer。它已经为ssl pdf做好了准备,它正在为我工作。
答案 2 :(得分:0)
将网站移至新的Web服务器后,我遇到了此问题。 EvoPdf的支持团队建议我更改CSS参考,以通过IP进行修改:
Dim csspath As String = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + ResolveUrl("~/") + "Styles/MyStyles.css"
Dim rootIP As String = System.Net.Dns.GetHostEntry(Request.Url.Host).AddressList(0).ToString()
csspath = csspath.Replace("mydomain.com", rootIP)
这当然是一种解决方法,但是在无法在Web服务器或IIS中找到问题的根源之后,此问题得以解决。