[C++] Редактирование PDF
Планируется применять для вставки данных (числа, картинки и т.д.) в нужные места шаблона документа.
Т.е., например, идет вместе с моей утилитой файл report_template.pdf, в котором в нужных местах написано, например, <value>, <picture> или еще что-нибудь подобное. Утилита должна отработать, затем программно заменить, <value> на полученное число, <picture> на полученный график, и сохранить отчет как pdf.
По крайней мере долже бы уже знать как как минимум пользоваться википедией
Зачем вообще нужны подобные сложности - действительно ли задача требует? В конце концов вовсе необязательно менять что либо в pdf - просто в нем можно сохранить уже готовый документ. А для этого использовать какой нибудь готовый генератор отчетов.
Сейчас отчеты генерируются в html. Возникает проблема с печатью - на разных машинах разные браузеры, разные отступы, шрифты и т.д. В результате "ползут" таблицы и случаются прочие неприятности.
В форматы документов Word или таблиц Excel сохранять запрещено под мотивом "слишком легко править отчеты руками".
Рисовать все самому, скажем, средствами GDI и потом сохранять в один из форматов-картинок довольно муторно.
Если я буду перегонять html в pdf - опять ведь буду зависеть от конкретных настроек браузеров?
Как вообще обычно решают подобные задачи? Наверняка ведь я пытаюсь придумать велосипед
Как вообще обычно решают подобные задачи? Наверняка ведь я пытаюсь придумать велосипед
стандартным решением является использования генераторов отчетов (например FastReport, Cristal Report, etc). Все они имеют готовый механизм работы с предпросмотром страниц и их печатью (и в том числе и в pdf), а так же легко позволяют организовать интерфейс для пользователя. Готовый шаблон, как правило, храниться в блоб-поле в БД (при жестких требованиях к качеству - вместе со шрифтами), что позволяет легко и гибко организовывать обработку, контроль и обновление шаблона для печати.
Второй вариант (без БД) - хранить шаблон в запароленом архиве (либо зашифрованном файле) - для защиты от особо сообразительных и рукастых. Но на самом деле - наилучшая защита в этом плане должна строится с использованием БД, генерации сессионных ключей (для автоматизации, что в принципе в приложении сделать сравнительно легко и безболезненно) и (обязательно) орг.мер с тремя-четырьмя уровнями контроля (если речь идет о возможности серьезных затрат в случае мошенничества).
Это наиболее правильный и эффективный подход (использование генераторов отчетов) - если конечно не стоит задача создания собственного генератора отчетов. :)
Так же возможен вариант генерация pdf-файла на сервере - что соответственно требует наличия более-менее стабильного подключения + создает некоторый трафик + требует (при необходимости) защиты канала.