首页 > 解决方案 > 将共享路径中的图像添加到 PDF 文档 iTextSharp

问题描述

我在我的 ASP.net MVC 应用程序中使用带有 iTextSharp 的 XSLT 模板生成 PDF 文档。

我将在 DataSet 中输入 XSLT 模板并通过以下方法获取最终的 HTML 字符串

private static XmlDocument GetDataPopulatedXmlFromXslt(string xsltFilePath, DataSet dataToBePopulated)
{
    var xslCompiledTransform = new XslCompiledTransform();
    xslCompiledTransform.Load(xsltFilePath);
    var objectXmlDoc = new XmlDocument();
    objectXmlDoc.LoadXml(dataToBePopulated.GetXml());
    var strBuilder = new StringBuilder();
    using (var xmlWriter = new XmlTextWriter(new StringWriter(strBuilder)))
    {
        xslCompiledTransform.Transform(objectXmlDoc, xmlWriter);
        var xsltXmlOutDoc = new XmlDocument();
        xsltXmlOutDoc.LoadXml(strBuilder.ToString());
        return xsltXmlOutDoc;
    }
}

下一步将是创建 iTextSharp 文档,如下所示

public void ParseXhtmlContents(string xhtml)
{
    //Instantiate handler
    var elementhandler = new ElementHandler();
    //Bind a reader to text
    using (TextReader sr = new StringReader(xhtml))
    {
        //Parse
        XMLWorkerHelper.GetInstance().ParseXHtml(elementhandler, sr);
    }

    //Loop through each element
    foreach (var element in elementhandler.Elements)
    {
        var div = element as PdfDiv;
        if (div != null)
            foreach (var table in div.Content.OfType<PdfPTable>())
            {
                table.HeaderRows = 1;
            }
        _iTextDocument.Add(element);
    }
}

在 xhtml 字符串中,我将有图像标签,如<img src="\\network\subfolder\image.png">

仅当为每个用户组提供文件夹文件夹的权限时,此图像才会加载到我的最终 PDF 中。

需要从此路径中删除 EVERYONE 权限并向所需用户提供访问权限。

谁能指出需要向哪个用户组提供权限才能将图像加载到文档中?

标签: c#asp.net-mvcpdfitext

解决方案


第 1 步:打开 IIS。然后在您的 Web 应用程序中添加一个虚拟目录。

在此处输入图像描述

第 2 步:然后将您的共享路径映射到第 1 步中添加的虚拟目录

在此处输入图像描述

第3步:现在点击连接为..

在此处输入图像描述

第 4 步:设置您想要连接共享路径的所需用户的凭据。

在此处输入图像描述

第 5 步:现在 IIS 配置部分已经结束,您需要开始在 html 中使用 src="Image/Image.png"。


推荐阅读