如何将屏幕上的图像添加到PDF(使用Itextsharp)

时间:2019-06-27 17:08:15

标签: image itext

我需要使用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)

这是我尝试过的方法,但出现错误“ Tha路径不正确”:

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)

1 个答案:

答案 0 :(得分:0)

如果有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)