将共享路径中的图像添加到PDF文档iTextSharp

时间:2018-10-31 11:56:47

标签: c# asp.net-mvc pdf itext

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

我将数据集输入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中。

需要从此路径中删除“所有人”权限,并提供对所需用户的访问权限。

任何人都可以指出需要向哪些用户组授予权限才能将图像加载到文档中吗?

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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

enter image description here

第3步:现在,单击“连接为”。

enter image description here

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

enter image description here

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