Как я могу использовать WkHtmlToXSharp в C # - PullRequest
5 голосов
/ 14 июля 2011

Я много читал о WkHtmlToXSharp (оболочка для wkhtmltopdf), поэтому я скачал его.На одной странице, которая является единственной документацией, говорится, что вам нужен только wkhtmltosharp.dll, но я не могу найти его в загруженном мной файле.Похоже, что это несколько проектов, и то, что выглядит как DLL в папке Libs / Win64, не загружается в мой проект.

Я был бы очень признателен, если бы кто-то мог указать мне на некоторые инструкции,и, возможно, некоторые основные образцы.Мне нужно знать, где находится .DLL, какое пространство имен использовать, и каков общий синтаксис для преобразования HTML-файла в PDF.

СПАСИБО !!

Ответы [ 2 ]

6 голосов
/ 31 октября 2013
public static string ConvertHTMLtoPDF(string htmlFullPath, string pageSize, string orientation)
{
   string pdfUrl = htmlFullPath.Replace(".html", ".pdf");

   try
   {
       #region USING WkHtmlToXSharp.dll
       //IHtmlToPdfConverter converter = new WkHtmlToPdfConverter();
       IHtmlToPdfConverter converter = new MultiplexingConverter();

       converter.GlobalSettings.Margin.Top = "0cm";
       converter.GlobalSettings.Margin.Bottom = "0cm";
       converter.GlobalSettings.Margin.Left = "0cm";
       converter.GlobalSettings.Margin.Right = "0cm";
       converter.GlobalSettings.Orientation = (PdfOrientation)Enum.Parse(typeof(PdfOrientation), orientation);
       if (!string.IsNullOrEmpty(pageSize))
           converter.GlobalSettings.Size.PageSize = (PdfPageSize)Enum.Parse(typeof(PdfPageSize), pageSize);

       converter.ObjectSettings.Page = htmlFullPath;
       converter.ObjectSettings.Web.EnablePlugins = true;
       converter.ObjectSettings.Web.EnableJavascript = true;
       converter.ObjectSettings.Web.Background = true;
       converter.ObjectSettings.Web.LoadImages = true;
       converter.ObjectSettings.Load.LoadErrorHandling = LoadErrorHandlingType.ignore;

       Byte[] bufferPDF = converter.Convert();

       System.IO.File.WriteAllBytes(pdfUrl, bufferPDF);

       converter.Dispose();

       #endregion
   }
   catch (Exception ex)
   {
       throw new Exception(ex.Message, ex);
   }

   return pdfUrl;
}
0 голосов
/ 19 июля 2011

WkHtmlToXSharp не имеет 64-битной версии на данном этапе, вам нужно использовать 32-битную версию.

Вы должны найти WkHtmlToXSharp.dll где-нибудь в пакете.

using WkHtmlToXSharp;
IHtmlToPdfConverter htmlToPdfConverter = new MultiplexingConverter();       
htmlToPdfConverter.ObjectSettings.Load.LoadErrorHandling = LoadErrorHandlingType.ignore;
htmlToPdfConverter.Convert(viewHtml);
...