Я использую wkhtmltopdf.exe на своем сервере, чтобы конвертировать некоторые .aspx-отчеты на основе страниц в pdf-файлы, которые затем загружаются на клиентский компьютер. После обширных исследований я нашел это blog post с примером, который, казалось, достиг того, чего я хочу достичь. Я попытался адаптировать его к своим собственным применениям, но я не могу заставить его работать. Ответ со страницы - это .pdf-файл, но длина 0 байтов. Я изучал решения для конвертирования отображаемой страницы aspx в .pdf в течение почти полутора дней без везения - это самое близкое мне решение, и я думаю, что я просто пропустил что-то простое, и оно будет работать.wkhtmltopdf output to html response, производящий 0 байтовый файл
См. Код ниже - Буду признателен за любые рекомендации, которые вы можете предоставить, чтобы сделать эту работу!
public partial class PDFOut : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string args = string.Format("\"{0}\" - ", Request.Form["url"]);//'http://www.google.com' is what I'm passing for testing
var startInfo = new ProcessStartInfo(Server.MapPath("\\tools\\wkhtmltopdf.exe"), args)
{
UseShellExecute = false,
RedirectStandardOutput = true
};
var proc = new Process { StartInfo = startInfo };
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
byte[] buffer = proc.StandardOutput.CurrentEncoding.GetBytes(output);
proc.WaitForExit();
proc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=test.pdf");
Response.BinaryWrite(buffer);
Response.End();
}
}
Я прочитал 'wkhtmltopdf' в названии из основного фида, и я был уверен, что это спам. 'Wkhtmltopdf'? у нас действительно заканчиваются имена ...: P – gdoron
Мне всегда приходилось писать PDF в временную директорию. Я не знал, что он напишет pdf на стандарт. Вы пытались запустить свою команду из реальной командной строки? – Will
Я не верю, что в wkhtmltopdf есть примеры вывода полученного файла в стандартную версию. http://wkhtmltopdf.org/usage/wkhtmltopdf.txt Я мог ошибаться. – Will