我有一個過程,其中的html存儲在數據庫中的圖像鏈接。圖像也存儲在數據庫中。我創建了一個從數據庫讀取圖像的控制器動作。我正在生成的路徑類似/File/Image?path=Root/test.jpg
。 這個圖像路徑嵌入在HTML中img標籤一樣<img alt="logo" src="/File/Image?path=Root/001.jpg" />
使用itextsharp創建pdf與數據庫中的圖像
我嘗試使用iTextSharp的,以從數據庫中讀取HTML和創建PDF文檔
string _html = GenerateDocumentHelpers.CommissioningSheet(fleetId);
string _html = GenerateDocumentHelpers.CommissioningSheet(fleetId);
Document _document = new Document(PageSize.A4, 80, 50, 30, 65);
MemoryStream _memStream = new MemoryStream();
PdfWriter _writer = PdfWriter.GetInstance(_document, _memStream);
StringReader _reader = new StringReader(_html);
HTMLWorker _worker = new HTMLWorker(_document);
_document.Open();
_worker.Parse(_reader);
_document.Close();
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=Commissioning.pdf");
Response.ContentType = "application/pdf";
Response.Buffer = true;
Response.OutputStream.Write(_memStream.GetBuffer(), 0, _memStream.GetBuffer().Length);
Response.OutputStream.Flush();
Response.End();
return new FileStreamResult(Response.OutputStream, "application/pdf");
此代碼給了我一個非法字符錯誤。這來自圖像標籤,它不識別?和=字符,有沒有辦法,我可以使用img標籤呈現這個html,這樣當我創建一個pdf時,它將呈現數據庫中的html和圖像,並創建一個pdf,或者如果itextsharp無法做到這一點,你可以提供給我任何其他可以完成此任務的第三方開源工具?
謝謝,作品像一個魅力! – user1230089 2012-03-07 22:37:40
@Chris,因爲你的代碼在「using」裏面,是否真的需要doc.Close()? – Alexandre 2014-03-17 21:09:09
你是對的,我只是喜歡我的命令來平衡對方。如果我明確地使用open,那麼我想明確地使用close。個人喜好。 – 2014-03-17 21:28:12