2013-08-29 61 views
3

MigraDoc在應用程序目錄中提供插入圖像。 實施例:在MigraDoc表中插入「http」圖片

Section section = document.AddSection();  
section.AddImage("../../SomeImage.png"); 

當我在.AddImage參數添加http圖像路徑它顯示「圖像未找到」。在PDF中。

有什麼辦法可以在MigraDoc生成的PDF中插入http圖像嗎?

回答

4

不,您不能通過HTTP參考插入圖像。

將圖像下載到本地文件夾並將此本地副本添加到MigraDoc文檔。

使用PDFsharp時,不需要本地文件;一個Image對象可以用來代替。對於XImage.FromURI

代碼可以在這裏找到(對於PDFsharp):
http://forum.pdfsharp.de/viewtopic.php?p=4851&sid=4898a4ff0b0437cfdbb80bc48bdfed36#p4851

代碼,允許MigraDoc不要使用動態影像(沒有臨時本地文件需要)可以在這裏找到:
http://forum.pdfsharp.de/viewtopic.php?p=4123&sid=4898a4ff0b0437cfdbb80bc48bdfed36#p4123

更新:
使用PDFsharp 1.50 beta 2及更高版本,可輕鬆添加內存中的圖像(byte []等)。如果你只有一個HTTP引用,你仍然需要自己下載圖片。但您不再需要臨時文件或修補的MigraDoc版本。
More information on the MigraDoc site

訣竅很簡單:你的圖像轉換爲一個字符串,並通過作爲與「BASE64:」文件名前綴。

static string MigraDocFilenameFromByteArray(byte[] image) 
{ 
    return "base64:" + 
      Convert.ToBase64String(image); 
}