【问题标题】:Add image using itextsharp使用 itextsharp 添加图像
【发布时间】:2017-09-13 07:11:17
【问题描述】:

我正在尝试以 PDF 格式导出数据,现在我尝试使用 itext sharp 在 PDF 中添加图像我尝试这样做,但这显示错误..尝试下面的代码,但是当我在 PDF 文件中添加图像时显示错误我添加文字成功

Private Sub ExportGridToPDF()

        Dim headerText As String = "file"


        Response.ContentType = "application/pdf"
        Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf")
        Response.Cache.SetCacheability(HttpCacheability.NoCache)
        Dim sw As New StringWriter()
        Dim hw As New HtmlTextWriter(sw)
        GridView1.AllowPaging = False

        GridView1.DataBind()
        GridView1.RenderControl(hw)
        Dim sr As New StringReader(sw.ToString())
        Dim pdfDoc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A1, 10.0F, 10.0F, 10.0F, 0.0F)

        Dim beginning As New iTextSharp.text.Chunk(headerText)
        Dim p1 As New iTextSharp.text.Phrase(beginning)
        Dim p2 As New iTextSharp.text.Phrase()
        p2.Add(p1)
        Dim p As New iTextSharp.text.Paragraph()
        p.Add(p2)
        Dim htmlparser As New HTMLWorker(pdfDoc)
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream)

        pdfDoc.Open()
        pdfDoc.Add(p)

         Dim im As Image = iTextSharp.text.Image.GetInstance(imagepath + "/mikesdotnetting.tif")

    pdfDoc.Add(im)


        htmlparser.Parse(sr)
        pdfDoc.Close()
        Response.Write(pdfDoc)
        Response.End()
    End Sub

在这部分

        Dim im As Image = iTextSharp.text.Image.GetInstance(imagepath + "/mikesdotnetting.tif")

    pdfDoc.Add(im)

这表明这一行有错误

 Dim jpg As Image = iTextSharp.text.Image.GetInstance(New Uri(url))

错误

 **Value of type 'iTextSharp.text.Image' cannot be converted to 'System.Web.UI.WebControls.Image'.**    

有什么办法吗?

【问题讨论】:

    标签: image itext


    【解决方案1】:

    您在同一代码中使用来自不同包/命名空间的两个名为 Image 的类。那是模棱两可的。您应该使用完全限定的名称。

    我不是 .Net 开发人员,但如果这是 Java,你会做这样的事情:

    Dim im As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(imagepath + "/mikesdotnetting.tif")
    

    您的问题是由于您创建了一个jpg 类型的变量System.Web.UI.WebControls.Image,但是您将一个iTextSharp.text.Image 类型的对象分配给该变量。很明显这是行不通的。

    当您在两个不同的命名空间 System.Web.UI.WebControlsiTextSharp.text 中有两个同名的类 (Image) 时,应避免引入歧义。

    阅读Resolving an ambiguous reference了解更多信息。

    【讨论】:

    • 我的坏我删除了我在顶部创建的但仍然显示错误
    • 这是.net问题
    • 您使用哪种语言并不重要。无论您使用 Java、.NET 还是任何其他技术,这个概念都是相同的。您的 .NET 老师告诉您,在不同的 .NET 库中有许多名为 Image 的类。这可能会导致歧义问题,因为编译器可能不知道要使用哪个 Image 类。您可以使用完全限定名称来消除歧义。如果您在编程课上专心学习,或者您是自学成才(对我来说就是这种情况:我是从书本上学到的,而不是从学校学到的),那么您知道
    • 另外,您没有阅读我的回答。代码是 C# 代码,而不是 Java 代码。
    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多