【问题标题】:How to add an image which is on the screen to PDF (with Itextsharp)如何将屏幕上的图像添加到 PDF(使用 Itextsharp)
【发布时间】:2019-06-27 17:08:15
【问题描述】:

我需要使用 ItextSharp 将图像添加到 PDF。当图像在服务器上时,我能够做到这一点,但现在屏幕上有一个图像,我不知道如何将它添加到 PDF。

这是从服务器添加图像的代码:

logo = Image.GetInstance(Server.MapPath("~/Imagens/208/6633/20190621_095626.jpg"))
    cb = writer.DirectContent
    logo.ScaleToFit(200, 200)
    logo.SetAbsolutePosition(20, 250)
    doc.Add(logo)

这是我尝试过的,但我得到了一个错误“路径不正确”:

logo = Image.GetInstance(Image1.ImageUrl)
    cb = writer.DirectContent
    logo.ScaleToFit(200, 200)
    logo.SetAbsolutePosition(200, 250)
    doc.Add(logo)

任何帮助将不胜感激。 提前谢谢你。

我将 Pavan 提供的代码转换为 VB.NET(见下文),但有一个错误我无法解决。

Dim converter As Drawing.ImageConverter = New Drawing.ImageConverter()
Dim b As Byte() = Converter.ConvertTo(Image1, GetType(Byte()))
Dim img As Image = New iTextSharp.text.Image(ImageDataFactory.create(b)) <==Here I got erro (new can not be used in a declared class 'Mustinherit')
img.ScaleToFit(200, 200)
img.SetAbsolutePosition(200, 250)
doc.Add(img)

【问题讨论】:

    标签: image itext


    【解决方案1】:

    如果您有可用的Image1 对象,则无需再次调用GetInstance()。因为GetInstance() 它自己会返回一个image

    要么直接分配给其他对象,要么直接使用它,如下所示(未测试)。

    ImageConverter converter = new ImageConverter(); 
    byte[] b = converter.ConvertTo(Image1, typeof(byte[])); 
    Image img = new Image(ImageDataFactory.create(b));
    img.ScaleToFit(200, 200)
    img.SetAbsolutePosition(200, 250)
    doc.Add(img)
    

    【讨论】:

    • 你好帕万。我按照您的建议做了,但出现错误提示“ScaleToFit 不是 Image1 的成员”
    • 你能告诉我,Image1 的类型是什么
    • 我有这个 来定义对象
    • 知道了。它不是 Itext 图像。我会给你一个更新的答案
    • Pavan.. 我将您的代码转换为 VB.NET,但出现了一个不知道如何解决的错误。请参阅上面的代码。
    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 2011-05-18
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多