Как лучше всего объединить информацию на сервере в «форму», при этом PDF-файл будет создан в качестве окончательного результата [закрыто]

StackOverflow https://stackoverflow.com/questions/54808

Вопрос

Фон:

У меня есть приложение VB6, которое я «унаследовал», которое генерирует PDF-файл для просмотра пользователем с использованием неподдерживаемой интеграции Acrobat Reader OCX.Программа создает файл FDF с данными, а затем отображает объединенный результат при объединении FDF с PDF.Он корректно работает только с Acrobat Reader 4 :-(.Установка более новой версии Acrobat Reader приводит к поломке этого приложения, что очень не устраивает пользователей.

Я хочу перепроектировать это приложение так, чтобы оно отправляло данные для объединения на сервер создания выходных PDF-файлов.Этот сервер объединит переданные ему данные в форму, сгенерирует это изображение в формате PDF и сохранит его, так что любой пользователь, желающий просмотреть окончательный результат, сможет затем просто получить PDF-файл (он создается только один раз).Если базовые данные будут изменены, PDF-файл будет удален и создан заново при следующем запросе.Клиентская программа может иметь любую версию Acrobat Reader по своему желанию, поскольку она будет использоваться исключительно для отображения PDF-файлов (как и было задумано).Сервер, скорее всего, будет написан на .NET (C#) с использованием Visual Studio 2005, вероятно, как веб-служба...

Вопрос:

Как другие порекомендовали бы мне это сделать?Должен ли я использовать для этого Adobe Acrobat 9 на сервере, помещая данные в формат FDF или Adobe XML и позволяя Acrobat выполнить объединение?Есть ли хорошие конкуренты в области «объединения данных в форму и вывода PDF»?Как это делают другие?Разумеется, он должен быть основан на API, без графического интерфейса на сервере...

Хотя часть вывода генерируется через FDF/PDF, другая часть приложения фактически отправляет строки, графику и текст на принтер (или форму для предварительного просмотра) по одной странице за раз, предоставляя правильные координаты x/y, шрифт и т.д. размер и т. д.для каждого, зная, когда он находится в конце страницы и т. д.Этот код в настоящее время находится в программе, которая отображает его для просмотра пользователем, а также в программе, которая печатает окончательную форму на принтере.Для обеспечения согласованности между рецензентом и принтером я также хотел бы переместить эту логику генерации выходных данных на сервер, либо используя хороший инструмент API для создания PDF-файлов, либо используя код как есть и сгенерировав PDF-файл с помощью PDF-принтера...и сохранение этого PDF-файла для отображения клиентам.

Поиск в Google «Программное обеспечение для форм» или «Программное обеспечение для заполнения форм» или подобные поисковые запросы возвращают ооооочень много несвязанного материала, в основном связанного с пользовательским интерфейсом для пользователей для заполнения форм, я просто не знаю, как правильно сузить поиск.Этот сайт кажется идеальным местом, чтобы задать такой вопрос, поскольку другим программистам также необходимо генерировать аналогичные результаты, и они опробовали несколько отличных инструментов.

РЕДАКТИРОВАТЬ:

Я добавил тег PDF, а также генерацию PDF.Кроме того, мой нынешний клиент настаивает на выводе в формате PDF, но я ценю альтернативные предложения.

Это было полезно?

Решение

Не могу помочь с решением VB6, могу помочь с решением .net или Java на сервере.
Получите iText или iTextSharp из http://www.lowagie.com/iText/.
Он имеет класс PdfStamper, который может объединять классы PDF и FDF FDFReader/FDFWriter для создания файлов FDF, получения имен полей из файлов PDF и т. д.

Другие советы

Послушай мой совет.Откажитесь от PDF в пользу XPS.Я работаю над двумя приложениями, оба серверными.Один отображает документы на основе изображений в виде PDF-файлов в браузере.Второй использует шаблоны FixPage для создания документов XPS, привязанных к источникам данных.

После работы над обоими проектами я пришел к выводу, что PDF-файлы — отстой;Документы XPS в меньшей степени.За приличную библиотеку PDF приходится платить наличными, тогда как XPS поставляется с платформой.Генерация PDF-документов требует много памяти, имеет множество проблем и не очень удобна для сервера.Документы XPS занимают гораздо меньше места и меньше шансов выстрелить себе в ногу.

Я добился большого успеха в использовании Microsoft Word.Форма разработана в Word и дополнена данными XML.Документ пропускается через PDF-конвертер (в данном случае Neevia, но есть и получше) для создания PDF-файла.

Все это сделано на C#.

Та же лодка.В настоящее время мы создаем PDF-файлы следующим образом:Приложение vb6 помещает запись в sql (с именем файла, датой создания, пользователем и конечным пунктом назначения), а xls (или документ) перемещается в каталог сервера (общий ресурс), а на сервере есть служба vb.net, которая осуществляет мониторинг файлового наблюдателя. этот каталог.Файл появляется, служба запускает Excel (Word) для PDF-файла через Adobe, обращается к sql, чтобы выяснить, что делать с PDF-файлом, когда он будет создан, и регистрирует время завершения.

Это было дешевое решение: написание кода заняло всего около дня, а еще один день — на отладку обеих сторон и развертывание сборки.

Это не тот способ сделать это. Adobe время от времени аварийно завершает работу при попытке создания PDF-файлов.он будет работать две недели без каких-либо проблем, а затем (как сегодня) каждые 5 минут будет зависать.или через час.или в 11:07, 2:43, 3:05 и 6:11.

В следующей версии мы собираемся конвертировать данные из Excel и Word и переносить данные непосредственно в PDF-файлы с помощью PDFTron.Да, PDFTron стоит денег (мы купили лицензию по 1 килобаксу на процессор), но он отлично справится со своей задачей.XPS – это хороший но мне, как и вам, приходится предоставлять PDF-файлы.Таков порядок вещей.

Проверьте pdfTron (погуглите) и посмотрите, будет ли он делать то, что вы хотите.Затем вам просто нужно решить, какая лицензия вам нужна и как вы будете за нее платить.Если кто-то придумает что-то получше, надеюсь, они проголосуют за это и поместят его на первое место в списке!!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top