public void ConvertFromUrl(string url, string file_out, HtmlToPdfConverterOptions options)
    {
        string converter_path = HttpContext.Current.Server.MapPath("~/bin/wkhtmltopdf/wkhtmltopdf.exe");

        string param_options = null;

        if (options != null)
        {
            StringBuilder sb_params = new StringBuilder();

            if (!string.IsNullOrEmpty(options.Orientation)) sb_params.Append(" --orientation ").Append(options.Orientation);
            if (options.PageWidth > 0) sb_params.Append(" --page-width ").Append(options.PageWidth);
            if (options.PageHeight > 0) sb_params.Append(" --page-height ").Append(options.PageHeight);
            if (!string.IsNullOrEmpty(options.PageSize)) sb_params.Append(" --page-size ").Append(options.PageSize);
            if (!string.IsNullOrEmpty(options.CookieName)) sb_params.Append(" --cookie ").Append(options.CookieName).Append(' ').Append(options.CookieValue);

            param_options = sb_params.ToString();
        }

        ProcessStartInfo psi = new ProcessStartInfo(converter_path, string.Format("{0} \"{1}\" \"{2}\"", param_options.Trim(), url, file_out));

        psi.UseShellExecute = false;
        psi.CreateNoWindow = true;

        Process proc = new Process ();
        proc.StartInfo = psi;
        proc.Start();
        proc.WaitForExit();

        //!= 0) throw new Exception(string.Format("Could not generate {0}", file_out));
    }
示例#2
0
        public static IServiceCollection AddForEvolvePhantomJsHtmlToPdfConverter(
            this IServiceCollection services,
            Action <HtmlToPdfConverterOptions> optionsAction = null
            )
        {
            var options = new HtmlToPdfConverterOptions();

            optionsAction?.Invoke(options);
            services.TryAddSingleton(options);
            services.TryAddSingleton <IHtmlToPdfConverter, HtmlToPdfConverter>();
            services.TryAddSingleton <IOperatingSystemFinder, OperatingSystemFinder>();
            services.TryAddSingleton <IHtmlToPdfConverterOptionsSerializer, HtmlToPdfConverterOptionsJsonSerializer>();
            services.TryAddSingleton <IExecutableNameFinder, ExecutableNameFinder>();
            return(services);
        }
示例#3
0
    public void ConvertFromUrl(string url, string file_out, HtmlToPdfConverterOptions options)
    {
        string converter_path = HttpContext.Current.Server.MapPath("~/bin/wkhtmltopdf/wkhtmltopdf.exe");

        string param_options = null;

        if (options != null)
        {
            StringBuilder sb_params = new StringBuilder();

            if (!string.IsNullOrEmpty(options.Orientation))
            {
                sb_params.Append(" --orientation ").Append(options.Orientation);
            }
            if (options.PageWidth > 0)
            {
                sb_params.Append(" --page-width ").Append(options.PageWidth);
            }
            if (options.PageHeight > 0)
            {
                sb_params.Append(" --page-height ").Append(options.PageHeight);
            }
            if (!string.IsNullOrEmpty(options.PageSize))
            {
                sb_params.Append(" --page-size ").Append(options.PageSize);
            }
            if (!string.IsNullOrEmpty(options.CookieName))
            {
                sb_params.Append(" --cookie ").Append(options.CookieName).Append(' ').Append(options.CookieValue);
            }

            param_options = sb_params.ToString();
        }

        ProcessStartInfo psi = new ProcessStartInfo(converter_path, string.Format("{0} \"{1}\" \"{2}\"", param_options.Trim(), url, file_out));

        psi.UseShellExecute = false;
        psi.CreateNoWindow  = true;

        Process proc = new Process();

        proc.StartInfo = psi;
        proc.Start();
        proc.WaitForExit();

        //!= 0) throw new Exception(string.Format("Could not generate {0}", file_out));
    }