2009-08-03 4 views
11

Проект, над которым я работаю, требует от меня создания отчета, который выводится как в HTML (.aspx), так и в формате PDF. Есть ли доступное решение, которое позволяет мне подавать вывод страницы .aspx в утилиту для создания PDF-файлов? Полная поддержка HTML и CSS была бы идеальной.Непосредственно конвертировать .aspx в .pdf

Спасибо!

+1

Спасибо за ответы! Одна вещь, которую я должен, возможно, уточнить ... веб-приложение защищено веб-формами и сертификатом SSL. Надеюсь, это не проблема. Из того, что я читаю, ABCpdf и wkhtmltopdf кажутся лучшими. ABCpdf, похоже, лучше интегрирован с .NET, wkhtmltopdf, вероятно, делает намного лучшую работу по созданию сложного CSS, хотя, поскольку он использует механизм визуализации WebKit. CSS, вероятно, будет полукомплексным, и в будущем могут быть добавлены изображения (графики и т. Д.). Благодаря! – JCdowney

ответ

12

wkhtmltopdf будет делать это .... ИСПОЛЬЗОВАНИИ:

wkhtmltopdf http://www.google.com google.pdf 

Вот и все. Вы можете перейти на любую веб-страницу ... даже aspx. css поддерживается лучше, чем любая другая утилита, поскольку использует движок рендеринга html webkit (Safari, Chrome). Наслаждайтесь

Существует один .exe (7 МБ), который можно использовать с .Net, просто используя Process.Start Убедитесь, что вы копируете exe в каталог проекта или вам необходимо указать полный путь. например:

static void HtmlToPdf(string website,string destinationFile) 
    { 
     ProcessStartInfo startInfo = new ProcessStartInfo(); 
     startInfo.FileName = "wkhtmltopdf.exe"; 
     startInfo.Arguments = website+" "+destinationFile; 
     Process.Start(startInfo); 
    } 

Я думаю, что SSL поддерживается, но я не думаю, что 2-полосная SSL будет работать в данный момент. Это лучший инструмент для простого одиночного HTML -> PDF, который я видел.

+0

Звучит отлично. –

+0

Работает очень красиво, даже с моим веб-хостингом (веб-приложение генерирует счета-фактуры pdf) – Marek

+0

Я нашел его, чтобы сломать некоторые страницы - проверьте это, например: http://jsfiddle.net/BgNPC/8/ –

0

AspPDF - это компонент ActiveX для динамического создания, чтения и изменения файлов формата Portable Document Format (PDF).

http://www.asppdf.com

3

Раньше я использовал HTMLDoc, он отлично поработал с HTML-таблицами, изображениями и т. Д. С некоторым базовым форматированием в достойный отчет в формате PDF. Там также есть open source version.

iTextSharp оказывает html на базовом уровне.

Я обнаружил, что взломать простой рендеринга HTML позволил мне сразу же предлагать PDF-функции, а затем мне пришлось подкреплять рендеринг отчетов PDF позже. Это должно быть довольно просто, если вы сохраните свой слой презентации отдельно от своих данных и бизнес-логики.

Я использовал PDFlib, но оба iTextSharp и PDFlib являются удивительными библиотеками для программного создания PDF из ваших источников данных.

Я еще не видел идеальный рендеринга HTML 2 PDF, поэтому я бы планировал двухэтапный подход. Вы также можете посмотреть this question для других вариантов.

+0

@ Предложение Дж. wkhtmltopdf звучит как лучшая замена htmldoc. –

0

ActivePDF WebGrabber - отличный продукт, если у вас все настроено правильно. Это дорого, но у него отличная поддержка HTML и CSS.

0

Для этой цели мы использовали продукт Alt-Soft XML2PDF. Он может конвертировать любой XML-файл в PDF с помощью XSL-FO markup language.

Так что если ваши страницы ASPX совместимы с XHTML, Xml2PDF конвертирует их в PDF довольно счастливо и легко. Вот примерная страница - в комплекте с загружаемым образцом ASP.NET, который показывает, как это работает: http://www.alt-soft.com/products_HTML2PDF.aspx

Это не бесплатно, но стоит своей цены лицензии!

Марк

0

Это лучший контроль, чтобы преобразовать ASPX страницу в PDF:

http://www.essentialobjects.com/Products/EOPdf/ASPXToPDF.aspx

Это серверный элемент управления ASP.NET, который вы можете просто зайти на свою страницу. Он автоматически обрабатывает аутентификацию и сеансы ASP.NET. Таким образом, вы можете конвертировать вашу текущую страницу, даже если запрос на вход в страницу и использует данные сеанса.

+0

Я не могу загрузить его с любого сервера –

+0

Как его загрузить? –

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