Метод преобразования в PDF работает только один раз

Я использую pechkin.synchronized конвертировать из HTML в PDF. При первом запросе http он работает нормально, но после этого он застревает в методе convert и после этого ничего не делает.

Вот мой метод действия контроллера:

public ActionResult ToPdf(int id)
{
    var order = _orderBll.GetById(id);
    var viewHtml = order.Body;
    byte[] pdfBuf = new SimplePechkin(new GlobalConfig()).Convert(viewHtml);

    return File(pdfBuf, "application/pdf");
}

1 ответ

Решение

Попробуйте использовать SynchronizedPechkin.

Увидеть:

К сожалению, Печкин - мертвый проект и у него много нерешенных проблем. Вы можете избежать этого с помощью ThreadSafeConverter, созданного Вупечкиным, и Печкин продолжает там развиваться.

Пример:

IConverter converter =
    new ThreadSafeConverter(
        new PdfToolset(
            new Win32EmbeddedDeployment(
                new TempFolderDeployment())));

// Keep the converter somewhere static, or as a singleton instance!
// Do NOT run the above code more than once in the application lifecycle!

byte[] result = converter.convert(document);

У меня была такая же проблема с моим заявлением тоже. Поэтому я скачиваю Синхронизированный Печкин из менеджера Nuget. Ваш код будет выглядеть так:

using Pechkin;
using Pechkin.Synchronized;
public ActionResult ToPdf(int id)
{
var order = _orderBll.GetById(id);
var viewHtml = order.Body;
byte[] pdfBuf = new SynchronizedPechkin(new GlobalConfig()).Convert(viewHtml);
return File(pdfBuf, "application/pdf");
}
Другие вопросы по тегам