2012-08-03 68 views
3

我想一个Web图像添加到使用iTextSharp的添加Web图像PDF

我试图使用你会使用一个本地图像

using (var pdfDoc = new Document()) 
using (var pdfWriter = PdfWriter.GetInstance(pdfDoc, pdfStream)) { 
    pdfDoc.Open(); 
    Image tif = Image.GetInstance("www.myimage.com"); 
    pdfDoc.Add(tif); 
    pdfDoc.Close(); 
} 

回答

2

与其他发布的答案相反,你做不是需要做出单独的HTTP请求。只是打电话Image.GetInstance()时,请确保您使用an absolute URI

string url = "http://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Pollinationn.jpg/320px-Pollinationn.jpg"; 
using (Document document = new Document()) { 
    PdfWriter.GetInstance(document, Response.OutputStream); 
    document.Open(); 
    Image img = Image.GetInstance(url); 
    document.Add(img); 
} 

这是clearly documented for the overloaded method call

3

你有相同的代码的PDF首先制作一个http网页请求来下载图片。

public Image DownloadImageFromURL(string url) 
{ 
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(filename); 
    httpWebRequest.AllowWriteStreamBuffering = true;    
    httpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";    
    httpWebRequest.Timeout = 30000; //30 seconds 
    webResponse = httpWebRequest.GetResponse();  
    webStream = webResponse.GetResponseStream(); 
    Image downloadImage = Image.FromStream(webStream);    
    webResponse.Close(); 
    return downloadImage; 
} 

//in your code 
    using (var pdfDoc = new Document()) 
using (var pdfWriter = PdfWriter.GetInstance(pdfDoc, pdfStream)) { 
    pdfDoc.Open(); 
    Image tif = DownloadImageFromURL("www.myimage.com"); 
    pdfDoc.Add(tif); 
    pdfDoc.Close(); 
} 

使用此方法制作HttpWebRequest并下载图像。现在把它写成pdf。