2012-08-03 74 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。