تبدیل html به pdf با کیفیت بالا
نویسنده: وحید نصیری
تاریخ: ۱۳۹۱/۰۴/۱۰ ۹:۵۴
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System.IO;
using WkHtmlToXSharp;
using System;
namespace Test2
{
public class WkHtmlToXSharpTest
{
public static void ConvertHtmlStringToPdfTest()
{
using (var wk = new MultiplexingConverter())
{
wk.Begin += (s, e) => Console.WriteLine("Conversion begin, phase count: {0}", e.Value);
wk.Error += (s, e) => Console.WriteLine(e.Value);
wk.Warning += (s, e) => Console.WriteLine(e.Value);
wk.PhaseChanged += (s, e) => Console.WriteLine("PhaseChanged: {0} - {1}", e.Value, e.Value2);
wk.ProgressChanged += (s, e) => Console.WriteLine("ProgressChanged: {0} - {1}", e.Value, e.Value2);
wk.Finished += (s, e) => Console.WriteLine("Finished: {0}", e.Value ? "success" : "failed!");
wk.GlobalSettings.Margin.Top = "0cm";
wk.GlobalSettings.Margin.Bottom = "0cm";
wk.GlobalSettings.Margin.Left = "0cm";
wk.GlobalSettings.Margin.Right = "0cm";
wk.ObjectSettings.Web.EnablePlugins = false;
wk.ObjectSettings.Web.EnableJavascript = false;
wk.ObjectSettings.Load.Proxy = "none";
var htmlString = File.ReadAllText(@"c:\page.xhtml");
var tmp = wk.Convert(htmlString);
File.WriteAllBytes(@"tst.pdf", tmp);
}
}
}
}
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
using (var converter = new Converter())
{
converter.ConvertToPdf(new ConvertUri(SourcePath),
"output.pdf",
new PageSettings(PaperFormat.A4)
{
DisplayHeaderFooter = true,
HeaderTemplate = header,
FooterTemplate = footer,
PrintBackground = true,
});
converter.ConvertToImage(new ConvertUri(tempSourcePath),
"output.png",
new PageSettings(PaperFormat.A6));
} var header = """
<div class="text center" style="color: lightgray;border-bottom: solid lightgray 0.1px; width: 100%; font-family: 'Samim'; font-size:7px;">
<span class="title"></span>
</div>
""";
var footer = """
<div class="text center" style="color: lightgray; font-family: 'Samim'; font-size:7px;">
<span class="pageNumber"></span>/<span class="totalPages"></span>
</div>
"""; var HTML = "<HTML code>";
using (Converter converter = new Converter())
using (MemoryStream stream = new MemoryStream())
{
// This is necessary when running on Docker
converter.AddChromeArgument("--no-sandbox");
// Create PDF out of HTML string
converter.ConvertToPdf(html, stream, new ChromeHtmlToPdfLib.Settings.PageSettings());
// Return file to user
return File(stream.ToArray(), MediaTypeNames.Application.Pdf, "Report.pdf");
}