2013-12-06 7 views
8

Учитывая circunstances (принять их как факт):Rotativa, ABCpdf и EO.Pdf не работают в Azure ВЕБСАЙТАМИ, и я не хочу, чтобы обновить Azure «CloudApp»

1) Rotativa PDF (https://github.com/webgio/Rotativa) использует ех для создания PDF-файлов, так что это не работает на лазурных сайтах (без разрешения на выполнение этого ех)

2) ABCpdf имеет ту же проблему

3) EO.Pdf имеет подобную проблему ("использует Windows GDI, но Windows GDI не поддерживается Windows Azure WebSite", http://www.essentialobjects.com/doc/4/install/deploy.aspx)

4) Я не хочу иметь Azure Cloudapp (что позволило бы мне использовать Rotativa или ABCPdf). Я в порядке с моим Azure Website (за исключением предыдущих проблем).

Есть ли альтернативное решение?
Есть ли другая библиотека для создания PDF-файлов из HTML, которая может работать на веб-сайте Azure (а не CloudService или VM)?




Обновление ноябрю-2014:
Я сегодня с помощью MvcRazorToPdf, это здорово.

код контроллера:

return new PdfActionResult(palletReception, (writer, document) => 
{ 
    document.SetPageSize(new Rectangle(792f, 612f)); 
    document.NewPage(); 
}) 
{ 
    FileDownloadName = "foo.pdf" 
}; 

Посмотреть код:

A normal view with normal css. 
Must be accepted by iText XMLWorker 

Check this: http://demo.itextsupport.com/xmlworker/itextdoc/flatsite.html 
and this: http://demo.itextsupport.com/xmlworker/ 
+0

Как насчет виртуальной машины, выполняющей web-сервис для выполнения rotativapdf и отправки результатов на веб-сайт? –

+0

Я думал об этом: WS, который получает HTML и возвращает PDF (некоторый байтовый массив, закодированный в строку), хотя мне нужно было бы иметь эту виртуальную машину (то есть: платить за нее, поддерживать ее, ...) – sports

+0

Я бы оспаривал ваш утверждают, что ABCpdf необходимо запустить exe-файл для создания PDF-файлов. Может быть, есть и другая причина (возможно, средняя степень доверия), почему ABCpdf не будет работать на веб-сайте Azure, но это не проблема exe. ABCpdf состоит из трех DLL: один управляемый, два неуправляемых. Никакой exe вообще. –

ответ

1

Вы можете использовать iTextSharp (http://sourceforge.net/projects/itextsharp/). Использовали его очень успешно в прошлом. В наши дни он доступен как пакет nuget - https://www.nuget.org/packages/itextsharp/.

+0

Проблема iTextSharp заключается в том, что если я хочу дать пользователю «онлайн» версию pdf (то есть: чистый HTML), я не смогу. Rotative и ABCPdf берут html представления и конвертируют его в PDF, поэтому они отлично подходят для того, чтобы пользователь мог выбрать загрузку в формате PDF или HTML. – sports

+0

Люди, похоже, заставляют его работать - я думаю, это зависит от сложности вашего разметки. http://am22tech.com/s/22/Blogs/post/2011/09/28/HTML-To-PDF-using-iTextSharp.aspx –

0

Является ли эта задача подходящей для WAWS?

Веб-сайты Windows Azure - отличная платформа для приложений, которые не потребляют много времени на обработку. Но WAWS не может быть лучшим вариантом для работы с интенсивным процессором, например, для преобразования веб-страницы в PDF. Загрузка и рендеринг веб-страниц может занять несколько секунд, создавая документ PDF, потребляет еще несколько. И если вы достаточно неудачны, чтобы нанести поражение или два (как это бывало когда-либо), любая квота на вашу учетную запись WAWS могла бы испариться мгновенно. Что происходит с сайтом при превышении кепки?

Насколько я понимаю, свободный и общий уровень WAWS подлежит обработке. Я не уверен, влияет ли это на стандартный уровень. Кто угодно?

Если преобразование веб-страницы в PDF является обязательным для вашего сайта WAWS, я хотел бы предложить использовать его в сочетании с ролью работника или просто использовать веб-роль (облачные службы). Дополнительным преимуществом является то, что вы можете подключить несколько WAWS-сайтов к одной рабочей роли, что может помочь снизить затраты на лицензирование и сэкономить время на развертывание и обслуживание сайтов.

+1

Я действительно использую сегодня веб-сервис. У нас есть веб-сайт Azure и Azure Cloudservice, второй - конвертирует строку в html. Что касается вашего заявления: «отличная платформа для приложений, которые не потребляют много времени на обработку», вы забываете о масштабируемости WAWS. Я думаю, WAWS - это очень удобное решение для развертывания и управления количеством экземпляров. – sports