Примеры генерации HTML в PDF на стороне ASP.NET / C#

Если вам необходима конвертация HTML в PDF из приложений ASP.NET C#, вы можете использовать наш веб-сервис. Для этого вам не придется устанавливать или загружать какие-либо библиотеки или компоненты, достаточно реализовать простой API. Это простой и удобный способ создания PDF версий документов для отчетов, счетов-фактур, накладных, электронных билетов и т.п. Можно создать нужную HTML-страницу и использовать ее в качестве источника для создания файла PDF или изображения. Наш сервис может считывать любые веб-страницы в интернет по передаваемоогу адресу и динамически генерировать HTML в PDF или файлы изображений. Сервис может обрабатывать достаточно сложные документы и макеты, в том числе ссылки на изображения, инструкции JavaScript, CSS.

Пример №1 - Вывод PDF в броузер конечному пользователю через ASP.NET MVC C#

Закомментировав строку "HttpContext.Response.AddHeader....", вы можете отобразить файл непосредственно в окне броузере, в противном случае пользователю будет предложено сохранить его.
public ActionResult Run()
{
    string apiKey = "ВАШ_КЛЮЧ_API"; //получить можно тут: http://www.pdf4b.ru/register
    string value = "http://www.yandex.ru"; //может быть HTML или URL, начинающийся с http://...
 
    using (var client = new WebClient())
    {
         //Используем параметры для доступа к API
        NameValueCollection options = new NameValueCollection();
        options.Add("apikey", apiKey);
        options.Add("value", value);
 
        //Вызов API для преобразования HTML в PDF
        MemoryStream ms = new MemoryStream(client.UploadValues("http://api.pdf4b.ru/pdf", options));
 
        //Предлагаем пользователю скачать и сохранить файл, или комментируем строку, чтобы открыть просто в броузере
        HttpContext.Response.AddHeader("content-disposition", "attachment; filename=my-file.pdf");
 
        //Отдаем готовый файл PDF
        return new FileStreamResult(ms, "application/pdf");
    }
}

Пример №2 - Конвертация HTML в картинку с испольльзованием ASP.NET C#

В данном примере используется вывод картинки в формате JPEG - options.Add("OutputFormat", "jpg"), но вы можете использовать любые форматы изображений, например "png", "bmp" or "svg". Закомментировав строку "HttpContext.Response.AddHeader....", вы можете отобразить файл непосредственно в окне броузере, в противном случае пользователю будет предложено сохранить его.
public void Run()
{
    string apiKey = "ВАШ_КЛЮЧ_API"; //получить можно тут: http://www.pdf4b.ru/register
    string value = "http://www.yandex.ru"; //может быть HTML или URL, начинающийся с http://...
 
    using (var client = new WebClient())
    {
         //Используем параметры для доступа к API
        NameValueCollection options = new NameValueCollection();
        options.Add("apikey", apiKey);
        options.Add("value", value);
        options.Add("OutputFormat", "jpg");
                             
        //Вызов API для преобразования HTML в JPEG
        byte[] result = client.UploadValues("http://api.pdf4b.ru/pdf", options);
 
        //Сохраняем файл изображения
        System.IO.File.WriteAllBytes(Server.MapPath(Path.Combine("~/", @"c:\temp\my-file.jpg")), result);
    }
}

Пример №3 - Конвертация исходного HTML в файл PDF с испольльзованием ASP.NET C#

Вы можете преобразовывать непосредственно HTML код в PDF напрямую. Это может быть любой HTML, включающий ссыли на изображения, простые инструкции JavaScript, CSS
public void Run()
{
    string apiKey = "ВАШ_КЛЮЧ_API"; //получить можно тут: http://www.pdf4b.ru/register
    string value = "<h1>Какой-то <strong>текст</strong>HTML</h1>"; // a direct HTML string
 
    using (var client = new WebClient())
    {
         //Используем параметры для доступа к API
        NameValueCollection options = new NameValueCollection();
        options.Add("apikey", apiKey);
        options.Add("value", value);
                             
        //Вызов API для преобразования HTML в JPEG
        byte[] result = client.UploadValues("http://api.pdf4b.ru/pdf", options);
 
        //Сохраняем файл изображения
        System.IO.File.WriteAllBytes(Server.MapPath(Path.Combine("~/", @"c:\temp\my-file.pdf")), result);
    }
}

Пример №4 - Использование C# MVC для преобразования HTML страницы по URL и добавление в footer своего содержимого

По умолчанию все отступы от края страницы (margin) равны 0. В этом примере, мы увеличиваем отступ до нижнего края до 30, чтобы дать пространство для включаемого содержимого (footer).
public ActionResult TestC()
{
    string apiKey = "ВАШ_КЛЮЧ_API"; //получить можно тут: http://www.pdf4b.ru/register
    string value = "http://www.yandex.ru"; //может быть HTML или URL, начинающийся с http://...
 
    using (var client = new WebClient())
    {
         //Используем параметры для доступа к API
        NameValueCollection options = new NameValueCollection();
        options.Add("apikey",apiKey);
        options.Add("value", value);
        options.Add("MarginBottom", "30");
        options.Add("FooterUrl", "http://your-site.ru/footer.htm");
         
        //Вызов API для преобразования HTML в PDF
        MemoryStream ms = new MemoryStream(client.UploadValues("http://api.pdf4b.ru/pdf", options));
         
        //Предлагаем пользователю скачать и сохранить файл, или комментируем строку, чтобы открыть просто в броузере
        HttpContext.Response.AddHeader("Content-Disposition:attachment;", "filename=my-file.pdf");
         
        //Отдаем готовый файл PDF
        return new FileStreamResult(ms, "application/pdf");
    }
}

Пример №5 - Конвертация HTML в PDF и вывод в броузер на скачивание используя ASP.NET C#

public void Run()
{
    string apiKey = "ВАШ_КЛЮЧ_API"; //получить можно тут: http://www.pdf4b.ru/register
    string value = "http://www.yandex.ru"; //может быть HTML или URL, начинающийся с http://...
    using (var client = new WebClient())
    {
         //Используем параметры для доступа к API
        NameValueCollection options = new NameValueCollection();
        options.Add("apikey", apiKey);
        options.Add("value", value);
                             
        //Вызов API для преобразования HTML в JPEG
        byte[] result = client.UploadValues("http://api.pdf4b.ru/pdf", options);
                                             
        //Устанавливаем сответствующие заголовки ответа
        Response.Clear();
        Response.ContentType = "application/pdf";
 
        //Предлагаем пользователю скачать и сохранить файл, или комментируем строку, чтобы открыть просто в броузере
        Response.AddHeader("content-disposition", "attachment; filename=my-file.pdf");
 
        //Отдаем готовый файл PDF               
        Response.BinaryWrite(result);
        Response.End();
    }
}

Пример №6 - Использование ASP.NET 5 and C# MVC 6

В ASP.NET 5 WebClient был заменен на HttpClient. Остальное без изменений.
using (var client = new HttpClient())
{
    var content = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string="">("apikey", apiKey),
        new KeyValuePair<string, string="">("value", url)
    });
 
    var result = client.PostAsync("http://api.pdf4b.ru/pdf", content).Result;
 
    if (result.IsSuccessStatusCode)
    {
        MemoryStream stream = new MemoryStream(result.Content.ReadAsByteArrayAsync().Result);
        //Отдаем готовый файл PDF
        return File(stream, "application/pdf", "my-file.pdf");
    }
}
</string,></string,>
Поделитесь с коллегами:
 

Не тратьте свое время! Подключайтесь к API прямо сейчас!

Генерация ключа занимает меньше минуты. Ключ будет мгновенно выслан вам на почту.