【问题标题】:HiQPdf not finding the cssHiQPdf 没有找到 css
【发布时间】:2017-10-31 10:44:40
【问题描述】:

我编写的网站需要将网页转换为 PDF 功能。在查看了 HiQPdf 看起来是最好的选项并完成了所有需要的选项后,目前我正在使用免费版本,直到测试完成。

因此,按照说明,我创建了网页并将其传递给 PDF 创建器以及一个位置,以查找所有链接项目(主要是 css)。代码去

var model = new SomeKindOfModel
{
    SetSomeStuff = stuff
};

string htmlToConvert = RenderRazorViews.RenderViewAsString(ControllerContext, "Print", model);
string baseUri = $"{Request.Url.Scheme}://{Request.Url.Authority}";

HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert, baseUri);

return new FileContentResult(pdfBuffer, "application/pdf");

相当标准的代码。

现在,当我从 Visual Studio 运行它时,它可以正常工作,生成的 pdf 看起来正确,一切都在正确的位置。当我发布到计算机上的文件系统时,它工作正常。当我将上述文件复制到另一台笔记本电脑并通过它的 ipAddress 访问它时,它工作正常。

当我使用 web 部署包将其放在主测试服务器上时,会出现问题。此时pdf已创建,文本在那里,但没有样式,一切都是白底黑字。如果我在 cshtml 文件中包含一些样式,那么就会被拾取。网站上的其他所有内容都可以正常工作。我已将本地 site.css 添加到引导程序包中,但它们都没有被拾取

我认为string baseUri 行没有将 pdf 创建者指向正确的位置,但我查看了变量中的内容并尝试了许多不同的变体,但没有任何效果。

我查看了htmlToConvert 中的文字,看起来正确,链接似乎指向了正确的方向。

即使将链接标签添加到页面中,并将 css 的位置硬编码到其中,也无法获取 css。

关于发布我在这里缺少的网站是否有一些巧妙的方法?尽管开发 ASP.NET MVC 应用程序多年,这是我第一次真正不得不发布一个网站,在我以前的公司,这总是别人的问题。在这里,这是我的。

【问题讨论】:

    标签: c# asp.net hiqpdf


    【解决方案1】:

    好的,经过大量测试,我尝试的每个 PDF 生成器都会出现问题。除了查看服务器上的 css 文件外,在其他任何地方进行测试都可以,但在服务器上进行测试会导致问题。

    我通过在 cshtml 文件中包含样式并进行足够的更改以使其看起来正确来解决它。这是我讨厌的解决方案,但它确实有效。

    【讨论】:

      【解决方案2】:

      你有没有设置像 var pdf = htmlToPdfConverter.ConvertHtmlToPdfDocument(html, "http://www.example.com/css/");这样的Base Url

      另请参阅此答案:Html to pdf with images using hiqpdf

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 2015-05-26
        • 1970-01-01
        • 2010-11-22
        相关资源
        最近更新 更多