Конвертировать HTML в PDF в .NET

У меня была такая же ошибка. Я нашел решение проблемы сейчас. Проблема заключалась в том, что клиентская программа заканчивалась до того, как сервер прочитал потоки.

393
задан Amedee Van Gasse 9 December 2015 в 16:10
поделиться

11 ответов

предложение Winnovative библиотека.Net PDF, которая поддерживает ввод HTML. Они предлагают неограниченное бесплатная демонстрационная версия . В зависимости от того, как Вы хотите развернуть свой проект, это могло бы быть достаточно.

13
ответ дан Stewart 10 December 2015 в 02:10
поделиться
  • 1
    Спасибо. Это решение работало на меня. – Jamshid Hashimi 27 March 2013 в 21:10

Это зависит от любых других требований, которые Вы имеете.

действительно простой А, но не легко развертываемое решение должен использовать управление WebBrowser для загрузки HTML и затем использования печати Метода печати к локально установленному принтеру PDF. Существует несколько свободных доступных принтеров PDF, и управление WebBrowser является частью платформы .NET.

РЕДАКТИРОВАНИЕ: Если Вы, HTML является XHtml, который можно использовать PDFizer, чтобы сделать задание.

3
ответ дан Rune Grimstad 10 December 2015 в 02:10
поделиться

Если Вам действительно не нужна истинная библиотека.Net PDF, существует многочисленное свободный HTML к инструментам PDF , многие из которых могут работать от командной строки.

Одно решение состояло бы в том, чтобы выбрать одного из тех и затем записать тонкую обертку вокруг этого в C#. Например, как сделано в это учебное руководство .

6
ответ дан Stewart 10 December 2015 в 02:10
поделиться

PDF Vision хорошее. Однако для его использования необходимо иметь полное доверие. Я уже написал по электронной почте и спросил, почему мой HTML не конвертируется на сервере, но он отлично работает на localhost.

3
ответ дан 22 November 2019 в 23:35
поделиться

Последнее обновление: сентябрь 2019

Это - список опций для HTML к преобразованию PDF в.NET, которую я соединил (некоторые освобождают некоторых заплаченных)

, Если ни одна из опций выше не помогает Вам, можно ли всегда искать пакеты NuGet https://www.nuget.org/packages? q=html+pdf

6
ответ дан 22 November 2019 в 23:35
поделиться

Я тоже некоторое время назад искал это. Я наткнулся на HTMLDOC http://www.easysw.com/htmldoc/ ​​, бесплатное приложение командной строки с открытым исходным кодом, которое принимает HTML-файл в качестве аргумента и выводит из него PDF-файл. У меня это неплохо сработало для моего побочного проекта, но все зависит от того, что вам действительно нужно.

Компания, которая его производит, продает скомпилированные двоичные файлы, но вы можете бесплатно загрузить и скомпилировать из исходного кода и использовать его бесплатно. Мне удалось скомпилировать довольно недавнюю ревизию (для версии 1.9), и я намерен выпустить для нее двоичный установщик через несколько дней, поэтому, если вам интересно, я могу предоставить ссылку на нее, как только я ее опубликую.

Редактировать (25.02.2014): Похоже, что документы и сайт перемещены на http://www.msweet.org/projects.php?Z1

2
ответ дан 22 November 2019 в 23:35
поделиться

Попробуйте этот компонент преобразования PDF Duo .Net для преобразования HTML в PDF из приложения ASP.NET без использования дополнительных DLL.

передать строку HTML или файл, или поток для создания PDF. Используйте приведенный ниже код (пример C #):

string file_html = @"K:\hdoc.html";   
string file_pdf = @"K:\new.pdf";   
try   
{   
    DuoDimension.HtmlToPdf conv = new DuoDimension.HtmlToPdf();   
    conv.OpenHTML(file_html);   
    conv.SavePDF(file_pdf);   
    textBox4.Text = "C# Example: Converting succeeded";   
}   

Примеры Info + C # / VB вы можете найти по адресу: http://www.duodimension.com/html_pdf_asp.net/component_html_pdf.aspx

0
ответ дан 22 November 2019 в 23:35
поделиться

Хорошо, с использованием этой технологии ....

src можно скачать с здесь , это необходимо nant

0
ответ дан 22 November 2019 в 23:35
поделиться

Обновление: Теперь я бы рекомендовал PupeteerSharp по wkhtmltopdf.

Try wkhtmtopdf. Это лучший инструмент, который я нашел до сих пор.

Для .NET вы можете использовать эту маленькую библиотеку , чтобы легко вызвать утилиту командной строки wkhtmtopdf.

186
ответ дан 22 November 2019 в 23:35
поделиться

Другой прием можно использовать управление WebBrowser, ниже является моим полным рабочим кодом

, URL Присвоения к управлению текстовым полем в моем случае

  protected void Page_Load(object sender, EventArgs e)
{

   txtweburl.Text = "https://www.google.com/";

 }

Ниже является кодом для, генерируют экран с помощью потока

  protected void btnscreenshot_click(object sender, EventArgs e)
  {
    //  btnscreenshot.Visible = false;
    allpanels.Visible = true;
    Thread thread = new Thread(GenerateThumbnail);
    thread.SetApartmentState(ApartmentState.STA);
    thread.Start();
    thread.Join();

}

private void GenerateThumbnail()
{
    //  btnscreenshot.Visible = false;
    WebBrowser webrowse = new WebBrowser();
    webrowse.ScrollBarsEnabled = false;
    webrowse.AllowNavigation = true;
    string url = txtweburl.Text.Trim();
    webrowse.Navigate(url);
    webrowse.Width = 1400;
    webrowse.Height = 50000;

    webrowse.DocumentCompleted += webbrowse_DocumentCompleted;
    while (webrowse.ReadyState != WebBrowserReadyState.Complete)
    {
        System.Windows.Forms.Application.DoEvents();
    }
}

В ниже кода, я сохранил файл PDF после загрузки

        private void webbrowse_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // btnscreenshot.Visible = false;
    string folderPath = Server.MapPath("~/ImageFiles/");

    WebBrowser webrowse = sender as WebBrowser;
    //Bitmap bitmap = new Bitmap(webrowse.Width, webrowse.Height);

    Bitmap bitmap = new Bitmap(webrowse.Width, webrowse.Height, PixelFormat.Format16bppRgb565);

    webrowse.DrawToBitmap(bitmap, webrowse.Bounds);


    string Systemimagedownloadpath = System.Configuration.ConfigurationManager.AppSettings["Systemimagedownloadpath"].ToString();
    string fullOutputPath = Systemimagedownloadpath + Request.QueryString["VisitedId"].ToString() + ".png";
    MemoryStream stream = new MemoryStream();
    bitmap.Save(fullOutputPath, System.Drawing.Imaging.ImageFormat.Jpeg);



    //generating pdf code 
     Document pdfDoc = new Document(new iTextSharp.text.Rectangle(1100f, 20000.25f));
     PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
     pdfDoc.Open();
     iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(fullOutputPath);   
     img.ScaleAbsoluteHeight(20000);
     img.ScaleAbsoluteWidth(1024);     
     pdfDoc.Add(img);
     pdfDoc.Close();
     //Download the PDF file.
     Response.ContentType = "application/pdf";
     Response.AddHeader("content-disposition", "attachment;filename=ImageExport.pdf");
     Response.Cache.SetCacheability(HttpCacheability.NoCache);
     Response.Write(pdfDoc);
     Response.End();


}

, можно также отослать мое самое старое сообщение для получения дополнительной информации: Навигация к веб-странице была отменена, получив сообщение в веб-форме

asp.net
0
ответ дан 22 November 2019 в 23:35
поделиться

Для преобразования HTML в PDF на C # используйте ABCpdf .

ABCpdf может использовать механизмы рендеринга Gecko или Trident, поэтому ваша HTML-таблица будет выглядеть так же, как в FireFox и Internet Explorer.

На сайте www.abcpdfeditor.com есть онлайн-демонстрация ABCpdf. Вы можете использовать это, чтобы сначала проверить, как будут отображаться ваши таблицы, без необходимости загружать и устанавливать программное обеспечение.

Для визуализации целых веб-страниц вам потребуются функции AddImageUrl или AddImageHtml. Но если все, что вам нужно, это просто добавить текст в стиле HTML, вы можете попробовать функцию AddHtml, как показано ниже:

Doc theDoc = new Doc();
theDoc.FontSize = 72;
theDoc.AddHtml("<b>Some HTML styled text</b>");
theDoc.Save(Server.MapPath("docaddhtml.pdf"));
theDoc.Clear();

ABCpdf - коммерческое название программного обеспечения, однако стандартную версию часто можно получить бесплатно по специальному предложению.

-1
ответ дан 22 November 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: