pdf Создается после выхода из программы

Я использую wkhtmltopdf для создания pdf в консольном приложении c#.net

Ниже приведен код и

psi.UseShellExecute = false;
psi.FileName = "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";
psi.CreateNoWindow = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;

psi.Arguments = "--enable-javascript --no-stop-slow-scripts --javascript-delay 10000 --page-size A4 --dpi 300 --margin-top 20mm --header-html D:\\header.html --margin-bottom 10mm  - --footer-html D:\\footer.html  " + tempPath + "\\" + outFileName;
p = Process.Start(psi);

try
{
    stdin = p.StandardInput;
    stdin.AutoFlush = true;

    stdin.Write(HTML);
    stdin.Close();

    p.WaitForExit(60000);

}
finally
{
    p.Close();
    p.Dispose();
}

Я ожидаю, что wkhtmltopdf.exe завершится в строке waitforexit.

Но я все еще вижу это в памяти, и pdf создается с 0kb

Если я закрою консольное приложение, PDF-файл будет создан правильно

Эта проблема возникает только тогда, когда я использую HTML-код заголовка и нижнего колонтитула в аргументах, иначе он работает нормально.


person Suresh    schedule 29.07.2014    source источник
comment
Прошло некоторое время с тех пор, как я использовал wkhtmltopdf, но должны ли пути к файлам для верхнего и нижнего колонтитула быть в кавычках? (Для других пользователей, не знакомых с wkhtmltopdf, это просто аргументы командной строки)   -  person Sayse    schedule 29.07.2014
comment
нет. он генерирует pdf после того, как мое консольное приложение закрыто   -  person Suresh    schedule 29.07.2014
comment
У меня нет опыта работы с wkhtmltopdf, но взгляните на этот вопрос для возможного описания проблемы. И на этом возможное решение   -  person default locale    schedule 29.07.2014
comment
Я только что проверил свой старый код, и он заключает пути к файлам для верхнего/нижнего колонтитула в кавычки (мои мысли, стоящие за этим комментарием, заключались в том, что он зависает при попытке расшифровать имя)   -  person Sayse    schedule 29.07.2014
comment
Я пробовал использовать кавычки, не имеет значения, он тоже был создан после закрытия моего окна консоли.   -  person Suresh    schedule 29.07.2014
comment
Вам нужен номер в waitforexit? (При этом мой код, который не написан на .net, ждет 10000 миллисекунд вместо минуты). Ваше консольное приложение закрывается само по себе, а также создает PDF-файл, если вы ждете минуту?   -  person Sayse    schedule 29.07.2014


Ответы (1)


Спасибо всем за участие

Наконец я взломал его

я добавил -q в аргументы, и все заработало нормально

person Suresh    schedule 30.07.2014