使用iTextSharp时难以将图像插入PDF

时间:2012-06-27 14:29:54

标签: asp.net-mvc-3 xml-parsing itextsharp

在设置为我的MVC3应用程序动态生成PDF的方法时,我引用了this blog post

我想一切正常,直到我想要将图像添加到PDF中。

这是我在没有图像的情况下正常运行的确切视图:

@model MyApp.Models.Student

@{
    Layout = null;
}


<?xml version="1.0" encoding="UTF-8" ?>
<itext creationdate="2/4/2013 5:49:07 PM" producer="iTextSharpXML">
    <paragraph leading="18.0" font="unknown" size="16.0" align="Center">
        <chunk>Orders in PDF</chunk>
    </paragraph>
    <paragraph leading="18.0" font="unknown" size="10.0" align="Center">
        <chunk>First Name: @Html.DisplayFor(model => model.FirstMidName) </chunk><newline />
        <chunk>Last Name: @Html.DisplayFor(model => model.LastName)</chunk><newline />
    </paragraph>
    <paragraph leading="18.0" font="unknown" size="10.0" align="Default">
    <chunk font="unknown" size="12.0">Orders:</chunk><newline />
    </paragraph>
</itext>

以下是我尝试用来包含图片的内容:

<?xml version="1.0" encoding="UTF-8" ?>
<itext creationdate="2/4/2013 5:49:07 PM" producer="iTextSharpXML">
    <paragraph leading="18.0" font="unknown" size="16.0" align="Default">
        <chunk>Orders in PDF</chunk>
        <image url="/Content/images/myImage.jpg" plainwidth="194.0" plainheight="202.0" />
    </paragraph>
    <paragraph leading="18.0" font="unknown" size="10.0" align="Default">
        <chunk>First Name: @Html.DisplayFor(model => model.FirstMidName) </chunk><newline />
        <chunk>Last Name: @Html.DisplayFor(model => model.LastName)</chunk><newline />
    </paragraph>
    <paragraph leading="18.0" font="unknown" size="10.0" align="Default">
    <chunk font="unknown" size="12.0">Orders:</chunk><newline />
    </paragraph>
</itext>

当尝试使用图像生成PDF时,当应用尝试解析(Exception Occurred)xml以生成pdf时,我收到textHandler.Parse(xmldoc);错误。错误的内部异常状态:"The network path was not found.\r\n"。我假设我遇到了这个问题,因为我不知道如何将图像包含在这个iTextSharpXML页面中,我无法找到有关如何操作的正确文档。

我只是想将图像置于PDF顶部 - 我应该如何正确地格式化?

更新

如果我将'image'标记更改为如下所示:

<paragraph leading="18.0" font="unknown" size="16.0" align="Center">
    <chunk>Orders in PDF</chunk>
    <img src="/Content/images/myImage.jpg" />
</paragraph>

我可以生成PDF,但不显示图像 - 没有错误,但它看起来与没有图像的第一个pdf相同。

2 个答案:

答案 0 :(得分:1)

您需要为图片标记

提供绝对网址
<image url="http://myserver/Content/images/myImage.jpg"/>

答案 1 :(得分:1)

我有同样的问题,我能够使用此代码设置查看图像:

<image url="@Context.Server.MapPath("/Content/images/myImage.jpg")" />