我有一个过程,其中的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