HTMLWorker itextSharp image src

时间:2014-06-11 07:39:32

标签: c# image itextsharp

我正在尝试使用以下内容使用HTMLWorker:

  public static string toWorks(string s)
        {

            string fontpath = System.Web.HttpContext.Current.Server.MapPath("~/Content/");
            BaseFont bf = BaseFont.CreateFont(fontpath + "ARIALUNI.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            var f = new Font(bf, 10, Font.NORMAL);

            //     var p = new Paragraph { Alignment = Element.ALIGN_LEFT, Font = f };
            var styles = new StyleSheet();
            styles.LoadTagStyle(HtmlTags.SPAN, HtmlTags.FONTSIZE, "10");
            styles.LoadTagStyle(HtmlTags.BODY, HtmlTags.ENCODING, BaseFont.IDENTITY_H);

            using (var sr = new StringReader(s))
            {
                List<IElement> list = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(sr, styles);
                //  var elements = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(sr, styles);
                foreach (var e in list)
                {
                    list.Add(e);
                }
                return list.ToString();
            }
            return null;

        }

它转换:

src="/Content/UserFiles/635380078478327671/Images/test.png

要:

C:\Content\UserFiles\635380078478327671\Images\test.png

任何建议。

1 个答案:

答案 0 :(得分:1)

请比较以下两个例子:

如果您使用第一个示例呈现带有图像的HTML文件,您可能不会成功。第二个示例介绍了ImageProvider实现。

getImage()界面的ImageProvider方法中,您可以获得有关图像路径的信息。由你来解释这条道路。例如:如果路径为/Content/UserFiles/635380078478327671/Images/test.png,则可以通过从路径加载字节来创建Image对象,可能是在对路径进行一些小的更改之后。

如果您没有创建ImageProvider课程,iText会做一次猜测来找到路径。在你的情况下,这个猜测是错误的。

您可以在此处找到C#等效示例:http://tinyurl.com/itextsharpIIA2C09