ПРОДУКТЫСКАЧАТЬ  КУПИТЬ  ПОМОЩЬ БЛОГ   О КОМПАНИИ  
 
Визитная карточка
DOCX в PDF
RTF в PDF
>>HTML в PDF
Text в PDF
Разбиение и слияние PDF
Скачать
Купить
Online-demo
Документация
Новости

Как написать функцию для конвертирования HTML в PDF
на C# за 15 минут?

  • Преобразует все типы HTML: 3.2, 4.01, XHTML 1.01, HTML5;
  • Поддерживает CSS-стили;
  • Поддерживает локальные и удаленные HTML-документы.
  • Создает различные типы PDF, включая PDF/A;
  • Настраиваемые свойства страницы, верхний и нижний колонтитулы, номера страниц;
  • Добавление пользовательских водяных знаков.

Введение

Представьте, что, прочитав эту страницу, уже через 15 минут Вы сможете предоставить API Вашему приложению, чтобы преобразовать любой HTML-документ в формат PDF, используя C# или VB.Net! И мы Вам в этом поможем!

Для начала добавьте ссылку на сборку "PdfMetamorphosis.dll" (или установите пакет с NuGet):

            SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();

            if (p != null)
            {
                // Укажите параметры страницы.
                p.PageSettings.Size.A4();
                
                string htmlPath = @"c:\Отцы и дети.html";
                string pdfPath = @"c:\Отцы и дети.pdf";

                int result = p.HtmlToPdfConvertFile(htmlPath, pdfPath);
            }
          
		  


NuGet   Online Demo   Скачать, 8.3.7.7 (Июль 7, 2020)

Входные HTML-документы

«PDF Metamorphosis .Net» может читать и анализировать все типы HTML: 3.2, HTML 4.01, HTML5 с CSS и XHTML. Компонент не требует специальной версии HTML-формата, он будет работать с любой версией. Сборка имеет собственный HTML-парсер.

Скриптовые языки (такие как JQuery, JavaScript) не поддерживаются.

Если Вы хотите конвертировать HTML, насыщенный JavaScript и сложным CSS, в формат PDF, используйте другой наш компонент - «PDF Vision .Net»

Эти CSS теперь поддерживаются в текущей версии «PDF Metamorphosis .Net»:

background-color: border-top-style: border-color: font-size: margin-bottom:
background: border-right-style: border-top-color: font-family: margin-left:
border-collapse: border-bottom-style: border-right-color: font-weight: padding:
border: border-left-style: border-bottom-color: font-style: padding-top:
border-top: border-width: border-left-color: height: padding-right:
border-right: border-top-width: color: list-style-type: padding-bottom:
border-bottom: border-right-width: display: margin: padding-left:
border-left: border-bottom-width: direction: margin-top: page-break-after:
border-style: border-left-width: font: margin-right: page-break-before:
         
page-break-inside: text-indent: vertical-align:    
text-align: text-transform: width:    
text-decoration: visibility: white-space:    

PDF-документы на выходе

«PDF Metamorphosis .Net» может отображать PDF-документы, используя собственный класс PDF. Вы можете выбрать версию для вывода PDF: 1.2 -1.6, PDF / A.

Если вы ищете класс .NET (C#) для преобразования PDF в другие форматы, смотрите наш раздел «PDF Focus .Net».



Системные требования

Компонент совместим со всеми языками .NET и поддерживает все основные операционные системы.

«PDF Metamorphosis .Net» полностью написан на управляемом C#. Это делает его абсолютно автономным и независимым.

  • Windows
  • Linux
  • Mac OS

.NET Framework 4.0 and higher and .Net Core 2.0 and higher
  • .NET Framework 4.0, 4.5, 4.6.1 и выше.
  • .NET Core 2.0 и выше.

Некоторые примеры конвертации HTML в PDF на C# и VB.Net

1.Преобразование HTML-строки в PDF байты на C#:
            SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();

            if (p != null)
            {
                string htmlPath = @"c:\Доктор Живаго.htm";
                string pdfPath = Path.ChangeExtension(htmlPath, ".pdf");
                string htmlString = "";

                // 1.Получите HTML-контент.
                htmlString = ReadFromFile(htmlPath); 

                // 2. Преобразуйте HTML в PDF
                //Укажите BaseUrl, чтобы помочь конвертеру найти полный путь для относительных изображений, CSS.
                p.HtmlSettings.BaseUrl = Path.GetDirectoryName(Path.GetFullPath(htmlPath));
                byte[] pdfBytes = p.HtmlToPdfConvertStringToByte(htmlString);

                if (pdfBytes != null)
                {
                    // 3. Сохраните PDF-документ в файл для просмотра.
                    File.WriteAllBytes(pdfPath, pdfBytes);
                    System.Diagnostics.Process.Start(pdfPath);
                }
            }
          
		  
2. Преобразование URL в PDF с помощью C#:
            SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();

            if (p != null)
            {
                string htmlPath = @"http://www.w3.org/";
                string pdfPath = @"c:\w3.pdf";

                //Конвертируйте HTML в PDF
                int result = p.HtmlToPdfConvertFile(htmlPath, pdfPath);
            }

          
		  
3. Преобразование HTML-файла в PDF-файл на VB.Net:
            Dim p As New SautinSoft.PdfMetamorphosis()

            ' Установите параметры страницы.
            p.PageSettings.Size.A4()
            p.PageSettings.Numbering.Text = "Page {page} of {numpages}"

            Dim htmlPath As String = "d:\Один день из жизни Ивана Денисовича.htm"
            Dim pdfPath As String = "d:\Один день из жизни Ивана Денисовича.pdf"

            Dim result As Integer = p.HtmlToPdfConvertFile(htmlPath, pdfPath)
          
		  
4.Преобразование страницы ASPX в PDF, применяя C# или ASP.Net:
По умолчанию.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Создайте простую ASP.NET-страницу с таблицей внутри

        if (!Page.IsPostBack)
        {
            //Создайте простую таблицу ASP.NET 
            Table table = new Table();
            TableRow row = null;
            TableCell cell = null;

            int rows = 5;
            int cells = 5;
            for (int x = 0; x < rows; x++)
            {
                row = new TableRow();
                for (int y = 0; y < cells; y++)
                {
                    cell = new TableCell();
                    cell.Width = Unit.Pixel(80);
                    cell.BorderColor = System.Drawing.ColorTranslator.FromHtml("darkgreen");
                    cell.BorderWidth = Unit.Pixel(2);
                    cell.Font.Name = "Helvetica";
                    cell.Font.Size = FontUnit.Point(10);
                    cell.HorizontalAlign = HorizontalAlign.Center;

                    cell.Text = "Row " + ((int)(x + 1)).ToString() + ", Cell " + ((int)(y + 1)).ToString();
                    row.Cells.Add(cell);
                }
                table.Rows.Add(row);
            }

            //Добавьте таблицу на страницу
            Panel1.Controls.Add(table);
        }
    }

    //Получите HTML от ASPX
    protected override void Render(HtmlTextWriter writer)
    {
        // Создайте TextWriter, чтобы получить HTML-разметку
        TextWriter tw = new StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(tw);

        // Визуализируйте разметку в нашем измененном текстовом редакторе
        base.Render(htw);

        // Получите HTML-разметку в виде строки
        string currentPage = tw.ToString();
        
        //Сохраните HTML-код во временный файл
        if (!Page.IsPostBack)
            File.WriteAllText(Path.Combine(Server.MapPath("Temp"), "temp.htm"), currentPage, Encoding.UTF8);

        // Отобразите HTML-разметку на выходе буквально
        writer.Write(currentPage);
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //Получить HTML из временного файла, который мы создали, в переопределенном методе Render()
        string html = File.ReadAllText(Path.Combine(Server.MapPath("Temp"), "temp.htm"), Encoding.UTF8);

        string url = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;

        if (html.Length > 0)
        {
            SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();
		    //После покупки лицензии, пожалуйста, введите свой серийный номер здесь, чтобы активировать компонент
            //Серийный номер = "XXXXXXXXXXX";

            p.HtmlSettings.BaseUrl = url;

            byte[] pdf = p.HtmlToPdfConvertStringToByte(html);

            //Показать PDF
            if (pdf != null)
            {
                Response.Buffer = true;
                Response.Clear();
                Response.ContentType = "application/PDF";
                Response.AddHeader("Content-Disposition:", "attachment; filename=Result.pdf");
                Response.BinaryWrite(pdf);
                Response.Flush();
                Response.End();
            }

        }
    }
}
          
		  
По умолчанию.aspx:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Страница без названия</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Panel ID="Panel1" runat="server">
        </asp:Panel> 
        <asp:Button ID="Button1" runat="server" Text="Convert" OnClick="Button1_Click"/>    
   </div>
    </form>
</body>
</html>



Есть вопрос?

  • Если у Вас есть вопросы,
  • нужна помощь
  • или пример кода как конвертировать на C#, VB.NET, ASP.NET,
обращайтесь в нашу службу поддержки по адресу support@sautinsoft.com или спросите в онлайн-чате (правый нижний угол этой страницы). Мы Вам обязательно поможем!


Преимущества «PDF Metamorphosis .Net»:

  1. Экономия времени.
    С «PDF Metamorphosis .Net» Вам нужно будет только добавить ссылку на " PdfMetamorphosis.dll " и написать 3-4 строки C#, чтобы получить возможность создавать PDF из HTML, RTF, Text или DOCX.

  2. «PDF Metamorphosis .Net» предоставляет полный набор API для преобразования в PDF из текста, RTF, HTML и слияния PDF-документов.

  3. «PDF Metamorphosis .Net» является абсолютно автономным компонентом PDF. Вам не нужно беспокоиться о наличии Adobe Acrobat, MS Word, OpenOffice или другого программного обеспечения.

  4. Ваше программное обеспечение будет иметь один из самых быстрых API для конвертации в PDF-документы. Ваши клиенты не будут иметь никаких задержек при создании PDF-документов.

  5. Не беспокойтесь о точности исходных HTML и RTF-документов! «PDF Metamorphosis .Net» может «съесть» любые типы, версии и создать качественный PDF-документ.

  6. Вы оплачиваете один раз и используете «PDF Metamorphosis .Net» сколько Вам нужно без каких-либо дополнительных сборов. Лицензия никогда не истекает.

  7. В качестве бонуса Вы получате неограниченную техническую поддержку бесплатно и независимо от даты Вашей покупки.

Если Вас заинтересовал наш продукт, Вы можете скачать демо-версию тут или посмотреть цены на «PDF Metamorphosis .Net».

 
 
Программы Скачать Помощь О компании
SautinSoft on Facebook SautinSoft on Twitter SautinSoft on Youtube Our Blog
Авторское право © 2002 - 2020 SautinSoft (начало с сайта sautin.com). Все права защищены.