Как генерировать формы приложений/документы программно?

В настоящее время мы используем MS WORD и MS EXCEL для отправки по почте документов слияния, которые необходимо отправить нескольким получателям.

Например, скажем, есть форма жалобы, в которой заявитель должен указать свое имя, адрес и т. д. Итак, у нас есть файл .doc, настроенный с содержимым, и динамические объекты, настроенные для слияния почты, с именем и адресные данные помещаются в файл Excel, откуда мы можем успешно слить почту для создания всех или только необходимых форм/документов.

Однако я хотел бы автоматизировать этот процесс, как форму на веб-сайте, где заявитель может заполнить свое имя, адрес и другие данные, и мы могли бы использовать это для автоматического создания формы жалобы и предложить ее для загрузки ( желательно в формате pdf).

Теперь единственное решение, которое приходит на ум, — это Latex, так что я могу просто заменить нужные сущности и просто скомпилировать в PDF. Однако этот бит должен быть оговорен с веб-хостом, если они предлагают латекс или нет.

Есть ли другое решение? Каким-либо другим способом мы могли бы сделать это, с чем-то, что не должно быть проблемой для большинства решений веб-хостинга?

РЕДАКТИРОВАТЬ: я бы предпочел решение, отличное от .NET или, скорее, не от Microsoft, поскольку серверы работают под управлением Linux, и хотя моно может выполнить свою работу, ни один из наших разработчиков не знает языков .NET. Однако, если потребуется, нам, возможно, придется углубиться в это.


person Sujoy    schedule 08.12.2009    source источник
comment
«этот бит должен быть согласован с веб-хостом» - это проблема? Какой хостинг вы используете?   -  person Charles Stewart    schedule 08.12.2009
comment
Боюсь, я не могу назвать поставщика услуг, так как это политика компании. Однако, хотя они должны быть в состоянии предоставить латекс, я просто хотел убедиться, что это лучшее, что я могу использовать. Хотя должен добавить, что я совсем новичок в этих вещах :)   -  person Sujoy    schedule 09.12.2009


Ответы (4)


Создание PDF с использованием XSL. Проверьте следующее: Apoc XSL-FO

Вам нужно будет создать файл XML с необходимыми полями и преобразовать его с помощью этого инструмента.

person A9S6    schedule 08.12.2009
comment
Спасибо. Хотя это выглядит достаточно хорошо, я бы предпочел решение, отличное от .NET, просто потому, что я не знаю никаких языков .NET, хотя я рассмотрю его, если это единственное другое решение. - person Sujoy; 08.12.2009
comment
Существует множество (?) процессоров, отличных от .NET XSL. - person High Performance Mark; 08.12.2009

Если вы хотите избежать .NET, стоит обратить внимание на XSL-FO. Попробуйте проект FOray. XSLT может быть крутым занятием, если у вас еще нет опыта. Также пользователи не смогут изменять шаблоны, не попросив об этом гуру XSLT.

Если ваши шаблоны уже находятся в MS Word и MS Excel, я бы придерживался создания документов MS на сервере. Теперь с ними легко работать из кода, начиная с OpenXML — ознакомьтесь с OfficeOpenXML и OpenXMLDeveloper

person Andrew    schedule 08.12.2009
comment
Есть что сказать об использовании docx и xlsx для шаблонов, чтобы конечные пользователи могли их поддерживать. Затем вы можете использовать docx4j или POI для объединения данных с ними. docx4j может генерировать PDF. - person JasonPlutext; 09.12.2009
comment
Я склонен сказать, что, как и PDF с тегами, docx и xlsx являются излишними для такого рода приложений, если только к сгенерированному документу не предъявляются особые требования. Они также немного неуклюжи, когда реализованы на сервере Linux. Я предпочитаю запускать более минималистичный код на своем. - person Charles Stewart; 10.12.2009

Apache FOP: http://xmlgraphics.apache.org/fop/

person Mica    schedule 08.12.2009

Я предлагаю сгенерировать rtf на сервере: его достаточно легко автоматически сгенерировать с помощью RTF::Writer cpan., имеет конвертеры, генерирующие хорошие PDF-файлы, может редактироваться вручную, oo-writer и TextEdit, не имеет серьезных проблем совместимости между основными приложениями для редактирования и имеет приличные инструменты извлечения текста и ресурсов с извлечение текста лучше, чем в pdf.

Существует некоторая поддержка перехода между rtf и латексом, хотя лучший конвертер rtf в латекс, docx2tex, зависит от модуль System.IO.Packaging .net, чья моно-реализация еще не является надежной.

Postscript Не рекомендуется: это слишком громоздкая кувалда для этой работы, но iText создаст PDF-файл непосредственно из данных формы. Если вы хотите делать причудливые вещи, такие как подписанный PDF-файл, это будет то, что вам нужно.

Постскриптум #2. Если вы разбиваете документ Word на отдельные файлы, используя представление главного документа Word, то вы можете затереть одну из частей содержимым, созданным вручную. Это позволяет легко делать что-то похожее на заполнение форм в файлах Word .doc, используя только стандартные утилиты для файлов и некоторые тривиальные настройки rtf-> doc.

person Charles Stewart    schedule 08.12.2009