2013-09-25 5 views
2

Я использую wkhtmltopdf для создания PDF из данного HTML. В основном у нас есть некоторые отчеты на основе диаграмм/диаграмм, поэтому мы создаем HTML с помощью нашего кода на C#, а затем используем WKHTMLTOPDF для создания PDF. Он работал нормально, но вчера он прекратил создание PDF. Я пытаюсь отлаживать и обрабатывать работы без каких-либо ошибок или сообщений. Просто мы не получили PDF в качестве вывода. Я пытаюсь запустить и использовать Wkhtmltopdf.exe из командной строки, и он создает PDF со всеми подробностями, как ожидалось.wkhtmltopdf: сбой при запуске C# Код

мой код

public static bool HTMLtoPDF(string HTMLPath, string PDFPath, PageOrientation orientation) 
{ 
    using (System.Diagnostics.Process proc = new System.Diagnostics.Process()) 
    { 
     string dir = Path.GetDirectoryName(Assembly.GetAssembly(typeof(Vikasumit.VSCommon)).Location) + "\\wkhtmltopdf\\"; 

     proc.StartInfo.WorkingDirectory = dir; 
     proc.StartInfo.RedirectStandardOutput = true; 
     proc.StartInfo.RedirectStandardError = true; 
     proc.StartInfo.CreateNoWindow = true; 
     proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
     proc.StartInfo.UseShellExecute = false; 
     proc.StartInfo.FileName = dir + "wkhtmltopdf.exe"; 
     if (orientation == PageOrientation.Landscape) 
     { 
      proc.StartInfo.Arguments = " --page-width 11in --page-height 8.5in --margin-left 0.5cm --margin-right 0 --margin-top 1.25cm --margin-bottom 0 " + HTMLPath + " " + PDFPath; 
     } 
     else 
     { 
      proc.StartInfo.Arguments = " --page-width 8.5in --page-height 11in --margin-left 0.5cm --margin-right 0 --margin-top 1.25cm --margin-bottom 0 " + HTMLPath + " " + PDFPath; 
     } 
     proc.Start(); 
     proc.WaitForExit(); 
     string result = proc.StandardOutput.ReadToEnd(); 
     proc.Close(); 
     proc.Dispose(); 
    } 
    return false; 
} 

Действительно, это работает отлично, этот код работает отлично PDF с одной или 2-х страниц, но этот отчет содержит 800 страницу [о 1.2MB HTML файла и выходной файл из cmmand проходит линия около 2,3 МБ.]

Любая идея, что может быть неправильным здесь? Это ограничение памяти для задачи ограничено или что? Благодарю.

+0

Какие значения имеют PDFpath и HTMLPath? Кроме того, почему вы всегда вызываете ложь? – Nenotlep

+0

PDFPath и HTMLPath получают полный физический путь к входным и выходным файлам, возврат false был частью ошибки, я попытался поймать раньше и просто оставить что-то там. Но приведенный выше код работает для небольших файлов с 2-10 страницами отчета, но не для 800 страниц отчетов. и это моя главная проблема. –

+0

Арг какая раздражающая проблема :). Есть ли в StandardError что-нибудь? – Nenotlep

ответ

1

Я использую компонент Rotativa nuget для обертки исполняемого файла wkhtmltopdf в своем веб-приложении. Я не сохраняю файл, но скорее использую его для загрузки pdf для клиента ...

1) Они предлагают добавить переключатель ошибки игнорирования нагрузки (не уверен, что он покрывает) - load-error-handling ignore

2) С вашего письма на диск, и это происходит только в больших файлах, есть ли проблема с дисковым пространством?

+0

нет У меня есть память 50-60 ГБ на диске и около 1 ГБ оперативной памяти/памяти, поэтому ничего, как ошибка на диске –

Смежные вопросы