2011-11-17 30 views
0

我正在使用ItextSharp庫在按鈕上生成PDF文件,單擊我的SharePoint網站。我想在圖片駐留在Sharepoint的圖片文件夾上的pdf上使用徽標。我無法做到這一點。要加載到從Sharepoint服務器映像文件夾創建的pdf文件中的圖像

有人可以幫助我。

下面是我正在使用的代碼,它是從window32獲取我不想要的實例。

protected void button1_OnClick(object sender, EventArgs e) 
    { 
     Font Arial = FontFactory.GetFont("Arial", 12, BaseColor.GREEN); 
     Font Verdana = FontFactory.GetFont("Verdana", 16, Font.BOLDITALIC, new BaseColor(125, 88, 15)); 
     string imagepath = SPContext.Current.Web + "/_layouts/Images/Image1.png"; 
     using (var ms = new MemoryStream()) 
     { 
      using (var document = new Document(PageSize.A4,50,50,15,15)) 
      { 
       PdfWriter.GetInstance(document, ms); 
       document.Open(); 
       Paragraph img = new Paragraph(); 
       Image jpg = Image.GetInstance(imagepath); --- Getting an error here stating "Could not find a part of the path 'c:\windows\system32\inetsrv\CustomSystem\_layouts\Images\Image1.png'" 
       img.Add(jpg); 
      } 
     } 
     } 

請幫忙!

回答

0

我不是太熟悉SharePoint開發,但你的問題是這一行:

string imagepath = SPContext.Current.Web + "/_layouts/Images/Image1.png"; 

此字符串必須是絕對路徑路徑,如c:\www\sites\image.png,而不是相對它是正確的現在。我可以告訴它的親戚,因爲當你問ASP.Net來爲你找點東西,但是你沒有指定一個路徑時,它看起來在%WINDOWS%

我不知道你是如何使用SPContext.Current.Web,但根據.ToString()上的文檔,它返回的是網站的標題,如果你像字符串一樣連接它,會發生什麼。我的猜測是,你不需要這樣做,但可能是錯的。

如果layouts文件夾是您正在使用的文件是,那麼你應該能夠使用Server.MapPath得到絕對路徑的文件夾的子文件夾:

string imagepath = Server.MapPath("_layouts/Images/Image1.png"); 
+0

感謝您的回覆,我把它通過利用字符串的ImagePath = Page.Server.MapPath的工作( 「/ _佈局/圖片/ ImageFolder/Image1.gif」); – Janet

0

我已經做了這樣的我的SharePoint網站

string url = "http://fspl-dsktp-038:8000/Style%20Library/FSPL/CorporateLogo.png"; 

//iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(Server.MapPath("images") + "//images/FSPL LOGO.png"); 

iTextSharp.text.Image logo =iTextSharp.text.Image.GetInstance(url); 
logo.ScaleAbsolute(90, 90); 
Imagecell.AddElement(logo); 
gvTable.AddCell(Imagecell); 
相關問題