从Rotativa PDF文件中丢失图像

时间:2014-08-04 14:15:33

标签: css asp.net asp.net-mvc pdf pdf-generation

我们正在使用Rotativa在网络服务器上保存页面的永久PDF副本。以下是构建和保存它的ASP.NET MVC 4代码:

 var pdfResult = new ActionAsPdf("Index", new { orderId = orderValidated.orderID }) { FileName = filePath };

 var binary = pdfResult.BuildPdf(ControllerContext);

 // writes only if the file does not exist, we need to keep first authentic print of it.
 if (System.IO.File.Exists(filePath) == false)
 {
    System.IO.File.WriteAllBytes(filePath, binary);
 }

我们在页面<head>部分中使用特定的'css'文件进行打印:

<head>
  <link media=all href="/Content/invoice.css" type=text/css rel=stylesheet>
  <link media=print href="/Content/printInv.css" type=text/css rel=stylesheet>      
</head>

'css'打印版本包含:

#logo {background: url(/assets/images/logo-plain.gif) no-repeat; height: 56px}

并且PDF文档中缺少* .gif图像(屏幕上显示)。

有关它缺失原因的任何想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我认为这是Rotativa的一个问题。

我要解决的是使用image标签插入背景图像,然后使用css定位它:

   #bg {
        position: absolute;
        top: 8px;
        left: 0px;
        z-index: 0;
    }

<img src="@Url.Content("~/content/background-image.jpg")" id="bg" />

答案 1 :(得分:0)

据我所知,Rotativa存在gif图像问题。尝试使用jpg或png。