четверг, 24 ноября 2011 г.

Создание PDF документов в C# с использованием библиотеки PDFSharp

По долгу службы мне приходится программировать на C#. Однажды передо мной встала задача написать модуль, который бы генерировал PDF документы "на лету". После сравнительного анализа различных библиотек я остановился на PDFSharp потому, что она позволяет вставлять картинки, работать с таблицами и, самое главное, в ней реализован компонент для просмотра сгенерированных документов.

Сайт проекта http://www.pdfsharp.net/.
Сам проект состоит из двух библиотек: сам PDFSharp (для обработки PDF) и MigraDoc (для создания документов). Разница в уровне. PDFSharp  является более низкоуровневой библиоткой, позволяя лишь оперировать различными боксами с текстом или изображением, указывая для каждого из них конкретное местоположение на странице и размер. MigraDoc упрощает работу, но при этом вы лишаетесь возможности управления всем происходящим с точностью до пикселя. Хотя если бы мне надо было бы контролировать все, то я бы писал на C. На выходе MigraDoc выдает документ во внутреннем формате библиотек, который потом преобразуется в PDF.

Ну хватит лирики, теперь я пошагово разберу пример HelloWorld`а с сайта. Документации, кстати, никакой толковой нет, есть только несколько разобранных примеров и довольно-таки дружелюбный форум, на котором мне даже как-то раз ответили. 
Шаг 0. Скачивание.
 Скачать проект можно с сорсфорджа (http://sourceforge.net/projects/pdfsharp/files/). 
Далее, в лучших традициях опенсорса, этот проект нужно еще будет собрать. Для этого, распаковав скачанный архив куда-нибудь, открываем в своей любимой студии MigraDoc\code\BuildAll-MigraDoc-VS2008.sln (или *VS2005.sln в зависимости от версии вашей студии). Ставим конфигурацию Release, чтобы выскакивало меньше сообщений при работе, и жмем Build. Готовые dll-ки надо будет собрать по папкам bin.

Шаг 1. Создание нового проекта.
В принципе, дальше можно не читать, а просто открыть в папке Samples различные примеры, потыркать-помыркать и начать писать что-то своё. 

1 комментарий:

  1. Casino Games | JtmHub
    Join JTG and play the best 하남 출장샵 online 김천 출장샵 casino games with JTG and other top casino games with JTG's wide range of slots, 용인 출장안마 jackpots, table games, and live 경기도 출장마사지 entertainment. 김제 출장안마

    ОтветитьУдалить