Как я могу конвертировать HTML-контент в pdf с изображениями
Я работаю с Asp.Net MVC 3. У меня есть некоторый html-контент в БД. Этот контент содержит несколько изображений. Я пытаюсь сгенерировать pdf-файл. Сообщения-это нормально. Однако мне не удается получить изображения. Я пробовал разные приложения, такие как Rotativa, ITextSharp и т. д.
Rotativa отлично работает на местном, однако на prod. сервер у него выходит из строя. У меня нет разрешения устанавливать Rotativa на prod.
Я искал в течение нескольких недель, и ITextSharp работает нормально. Однако не может получить изображения. Просто опубликуйте текст. Есть ли способ опубликовать Html-контент со всеми элементами (таблицами, изображениями и т. д.)
<pre lang="c#"> <pre> public byte[] GetPDF(string pHTML) { byte[] bPDF = null; MemoryStream ms = new MemoryStream(); TextReader txtReader = new StringReader(pHTML); // 1: create object of a itextsharp document class Document doc = new Document(PageSize.A4, 25, 25, 25, 25); // 2: we create a itextsharp pdfwriter that listens to the document and directs a XML-stream to a file PdfWriter oPdfWriter = PdfWriter.GetInstance(doc, ms); Dictionary<string, object> interfaceProps = new Dictionary<string, object>() { {"img_provider", new CustomItextImageProvider()} }; // 3: we create a worker parse the document HTMLWorker htmlWorker = new HTMLWorker(doc); htmlWorker.InterfaceProps = interfaceProps; // 4: we open document and start the worker on the document doc.Open(); htmlWorker.StartDocument(); // 5: parse the html into the document htmlWorker.Parse(txtReader); // 6: close the document and the worker htmlWorker.EndDocument(); htmlWorker.Close(); doc.Close(); bPDF = ms.ToArray(); return bPDF; } public void DownloadPDF(int Id = 0) { var report= _report.Select(Id); string HTMLContent = ""; HTMLContent += "<div style=text-align:center; width:60%;'><h2>" + report.Heading+ "</h2></div>" + "<br/><br/><br/><br/>" + "<p>" + report.Content+ "</p>" + "<center>Center this text!</center>"; Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=" + "PDFfile.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(GetPDF(HTMLContent)); Response.End();
Что я уже пробовал:
1-Поиск в интернете в течение 15 дней.
2-Читайте все больше и больше контента.
3 - попросить друзей.
4-выпил еще кофе.
5-не спал 3 дня.
Maciej Los
Что касается 5. - ложитесь спать, отдыхайте и возвращайтесь к работе ;)
Итак: преобразование HTML в PDF в .NET
FoxRoot
Спасибо :) Однако у меня нет доступа установить что-то на сервере:/
[no name]
Проверьте, помогает ли это Преобразование HTML в PDF с помощью кода C#
FoxRoot
Спасибо. Я собираюсь почитать после некоторого сна :)