4

iTextSharpを使用してPDFにWeb画像を追加しようとしています

ローカル画像に使用するのと同じコードを使用しようとしています

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();
}
4

2 に答える 2

4

最初に画像をダウンロードするには、httpWebリクエストを行う必要があります。

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に書き込んでください。

于 2012-08-03T04:08:45.777 に答える
3

他の投稿された回答とは異なり、個別のHTTPリクエストを作成する必要はありません。呼び出すときは絶対URIを使用するようにしてくださいImage.GetInstance()

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);
}

これは、オーバーロードされたメソッド呼び出しについて明確に文書化されています

于 2012-08-03T10:21:28.907 に答える