iTextSharp会忽略图像的样式

时间:2014-07-25 07:39:16

标签: asp.net-mvc image razor itextsharp

.cshtml文件中的图片:

<img src="~/Content/images/imghead.png" style=" border:4px solid #ffffff; border-radius:10px; box-shadow: 2px 2px #f2f2f2; "/>

这应该是这样的:

enter image description here

它的外观如下:

enter image description here

编辑: 下面的行在HTML输出上生成第一个图像(圆角)。在pdf输出看起来像第二个图像。 样式没有受到关注。

 <tr>
     <td align="center" style=" height:120px; ">
        <img src="https://abcstorage.blob.core.windows.net/Images/head.png" style="border:4px solid #ffffff; border-radius:10px; box-shadow: 2px 2px #f2f2f2; " />
     </td>
</tr>

这是Render()方法:

using (var pdfDocument = new Document(PageSize.A3, HorizontalMargin, HorizontalMargin, 110, 30))
{
    PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDocument, outputMemoryStream);
    pdfWriter.CloseStream = false;
    pdfWriter.PageEvent = new PrintHeaderFooter();
    pdfDocument.Open();
    using (var htmlViewReader = new StringReader())
    {       
         XMLWorkerHelper.GetInstance().ParseXHtml(pdfWriter, pdfDocument, htmlViewReader);
    }
}

1 个答案:

答案 0 :(得分:0)

这不是MVC的工作原理,你采用的方式更像是Asp .net Webform风格。

使用css,或者如果需要动态更改,请使用ViewBag,例如(未测试):

动作

public ActionResult pdfOutput(string id, string pid)
{
    ViewBag.ImgHeadBorder=iTextSharp.text.Rectangle.BOX;
}

查看

@if(ViewBag.ImgHeadBorder != null)
{
<img id="imgHead" src="~/Content/images/imghead.png" style="border:@ViewBag.ImgHeadBorder"/>
}