Примеры генерации 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";
string value = "http://www.yandex.ru";
using (var client = new WebClient())
{
NameValueCollection options = new NameValueCollection();
options.Add("apikey", apiKey);
options.Add("value", value);
MemoryStream ms = new MemoryStream(client.UploadValues("http://api.pdf4b.ru/pdf", options));
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=my-file.pdf");
return new FileStreamResult(ms, "application/pdf");
}
}
Дополнительно смотрите список опций для генерации
PDF или
JPEG
Пример №2 - Конвертация HTML в картинку с испольльзованием ASP.NET C#
В данном примере используется вывод картинки в формате JPEG - options.Add("OutputFormat", "jpg"), но вы можете использовать любые форматы изображений, например "png", "bmp" or "svg". Закомментировав строку "HttpContext.Response.AddHeader....", вы можете отобразить файл непосредственно в окне броузере, в противном случае пользователю будет предложено сохранить его.
public void Run()
{
string apiKey = "ВАШ_КЛЮЧ_API";
string value = "http://www.yandex.ru";
using (var client = new WebClient())
{
NameValueCollection options = new NameValueCollection();
options.Add("apikey", apiKey);
options.Add("value", value);
options.Add("OutputFormat", "jpg");
byte[] result = client.UploadValues("http://api.pdf4b.ru/pdf", options);
System.IO.File.WriteAllBytes(Server.MapPath(Path.Combine("~/", @"c:\temp\my-file.jpg")), result);
}
}
Дополнительно смотрите список опций для генерации
PDF или
JPEG
Пример №3 - Конвертация исходного HTML в файл PDF с испольльзованием ASP.NET C#
Вы можете преобразовывать непосредственно HTML код в PDF напрямую. Это может быть любой HTML, включающий ссыли на изображения, простые инструкции JavaScript, CSS
public void Run()
{
string apiKey = "ВАШ_КЛЮЧ_API";
string value = "<h1>Какой-то <strong>текст</strong>HTML</h1>";
using (var client = new WebClient())
{
NameValueCollection options = new NameValueCollection();
options.Add("apikey", apiKey);
options.Add("value", value);
byte[] result = client.UploadValues("http://api.pdf4b.ru/pdf", options);
System.IO.File.WriteAllBytes(Server.MapPath(Path.Combine("~/", @"c:\temp\my-file.pdf")), result);
}
}
Дополнительно смотрите список опций для генерации
PDF или
JPEG
Пример №4 - Использование C# MVC для преобразования HTML страницы по URL и добавление в footer своего содержимого
По умолчанию все отступы от края страницы (margin) равны 0. В этом примере, мы увеличиваем отступ до нижнего края до 30, чтобы дать пространство для включаемого содержимого (footer).
public ActionResult TestC()
{
string apiKey = "ВАШ_КЛЮЧ_API";
string value = "http://www.yandex.ru";
using (var client = new WebClient())
{
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");
MemoryStream ms = new MemoryStream(client.UploadValues("http://api.pdf4b.ru/pdf", options));
HttpContext.Response.AddHeader("Content-Disposition:attachment;", "filename=my-file.pdf");
return new FileStreamResult(ms, "application/pdf");
}
}
Дополнительно смотрите список опций для генерации
PDF или
JPEG
Пример №5 - Конвертация HTML в PDF и вывод в броузер на скачивание используя ASP.NET C#
public void Run()
{
string apiKey = "ВАШ_КЛЮЧ_API";
string value = "http://www.yandex.ru";
using (var client = new WebClient())
{
NameValueCollection options = new NameValueCollection();
options.Add("apikey", apiKey);
options.Add("value", value);
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");
Response.BinaryWrite(result);
Response.End();
}
}
Дополнительно смотрите список опций для генерации
PDF или
JPEG
Пример №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);
return File(stream, "application/pdf", "my-file.pdf");
}
}
</string,></string,>
Дополнительно смотрите список опций для генерации
PDF или
JPEG