Thursday, January 13, 2011

Компоненты для отображения PDF для WinForms/WPF

В одном из проектов была потребность отображать PDF (с изображениями, достаточно большие размеры файлов, около 50-100 страниц) на клиентской стороне – десктопное приложение на WPF. Также необходимыми условиями были возможность выделения текста, манипуляции с аннотациями и покупка большого количества лицензий по вменяемой цене, либо вообще с бесплатным дальнейшим распостранением, также желательно, чтобы компонент был обычной библиотекой, не ActiveX, чтобы позволить установку через ClickOnce.
Были произведены поиски подходящих решений. Вкратце расскажу о результатах:

1) Foxit PDF SDK – ActiveX компонент, либо стандартная DLL библиотека, один из самых быстрых на рынке. По поводу цен и лицензий необходимо связываться напрямую. Их предложения нас не устроило в плане количества лицензий.

2) PDFTron: PDFNet SDK - бибилиотека, отличная производительность, удобная работа с файлом, текстом, аннотациями. Есть вариант покупки одной лицензии, а также договориться по поводу OEM / корпоративной версии.

3) GDPicture –  ActiveX, недорогой аналог Foxit с бесплатным дальнейшим распостранением. Но отображение цветов несколько хуже чем в Foxit. Работа с текстом и аннотациями не идеальна.

4) http://www.codeproject.com/KB/files/xpdf_csharp.aspx - библиотека, OpenSource решение с использованием Xpdf и muPDF, приемлимое быстродействие, но нету выделения текста, создание аннотаций.

5) http://www.codeproject.com/KB/applications/PDFViewerControl.aspx - библиотека, пример готового решения на основе Ghostscript. Подробности ниже.

6) http://code.google.com/p/gouda/ - .NET обертка для Ghostscript. Есть известные баги с отображением некоторых цветов достаточно давно, но никак не исправляются. Если необходимо отображать отчеты/простые документы без кучи картинок  - отличное решение.

Read more: .NET разработка от devlanfear