FoxRoot Ответов: 1

Как я могу конвертировать 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

Спасибо. Я собираюсь почитать после некоторого сна :)

1 Ответов

Рейтинг:
1

FoxRoot

Спасибо. Я использую VS2010, MVC 3

sonymon mishra

Что вы используете, Razor или ASPX в качестве движка просмотра?

FoxRoot

Спасибо за проявленный интерес. Я использую бритву.

sonymon mishra

Надеюсь, это поможет
https://www.codeproject.com/Questions/1044376/Export-MVC-Razor-View-to-pdf-without-iTextSharp-Ra