html转换为pdf c#,wkhtmltopdf - 直接在C#中将html代码转换为pdf

我找到了一个方法。

您可以设置另一个输出正常的html。

并使用该url作为wkhtml2pdf进程的输入值。

- - - - - 编辑

public byte[] WKHtmlToPdf(string url_input)

{

try

{

var fileName = " - ";

var wkhtmlDir = ConfigurationSettings.AppSettings["wkhtmlDir"];

var wkhtml = ConfigurationSettings.AppSettings["wkhtml"];

var p = new Process();

string url = Request.Url.GetLeftPart(UriPartial.Authority) + @"/application/" + url_input;

p.StartInfo.CreateNoWindow = true;

p.StartInfo.RedirectStandardOutput = true;

p.StartInfo.RedirectStandardError = true;

p.StartInfo.RedirectStandardInput = true;

p.StartInfo.UseShellExecute = false;

p.StartInfo.FileName = wkhtml;

p.StartInfo.WorkingDirectory = wkhtmlDir;

string switches = "";

switches += "--print-media-type ";

switches += "--margin-top 10mm --margin-bottom 10mm --margin-right 10mm --margin-left 10mm ";

switches += "--page-size Letter ";

p.StartInfo.Arguments = switches + " " + url + " " + fileName;

p.Start();

//read output

byte[] buffer = new byte[32768];

byte[] file;

using (var ms = new MemoryStream())

{

while (true)

{

int read = p.StandardOutput.BaseStream.Read(buffer, 0, buffer.Length);

if (read <= 0)

{

break;

}

ms.Write(buffer, 0, read);

}

file = ms.ToArray();

}

// wait or exit

p.WaitForExit(60000);

// read the exit code, close process

int returnCode = p.ExitCode;

p.Close();

return returnCode == 0 ? file : null;

}

catch (Exception ex)

{

// set your exceptions here

return null;

}

}

---------- web.config关键示例

基本思想是将url作为参数传递给exe。

HTH!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值