Подтвердить что ты не робот

Самый простой способ создания документов динамического контента (например, счетов-фактур, накладных)

Я искал в Интернете несколько результатов, но ни одна из них, похоже, не соответствует этой задаче. Я искал возможности для .NET, но хотел бы также знать, как Java/PHP/etc. разработчики выполняют такие задачи.

Насколько я понял, у меня есть возможность:

  • Используйте MigraDoc/PDFSharp и идите "код", без визуального дизайнера.

  • Я мог бы использовать HTML и преобразовать его в PDF (это лучший подход в теории, но практически ужасно получить хороший HTML 1:1 в файл PDF)

  • Я мог бы использовать некоторые странные шаблоны MS Word/пакетные материалы

  • LaTeX?

Каковы ваши решения?

4b9b3361

Ответ 2

Решением, которое мы рассмотрели в предыдущем проекте, была XSL-FO. Хотя у него не было визуального дизайнера, мы обнаружили, что он очень дружественный для разработчиков и более подходящий для работы в среде типа сервера. Он также рассматривает документ "поток" намного лучше, чем большая часть программного обеспечения для создания отчетов, предлагающего дизайнера. Я действительно знаю, что у нас были большие проблемы с Crystal Reports вокруг развертывания, исключения SQL исключены и ограничения на то, сколько отчетов может быть создано одновременно. Одним из недостатков использования XSL-FO является синтаксический сахар, поставляемый с XML.

Этот вопрос содержит несколько движков XSL-FO.

Ответ 3

Что касается вашего "3.) странного шаблона MS Word/пакетного материала":

Я люблю использовать Aspose.Words, коммерческий пакет для создания/редактирования/экспорта документов Microsoft Office Word без установки компонентов Office.

Aspose.Words способен делать вещи слияния и писать PDF файлы, поэтому я часто начинаю на своем настольном компьютере с DOC, который я редактирую в Word, и использую это с Aspose.Words на моем сервере для создания PDF файлов.

Ответ 4

Один из методов, который я использовал ранее для настольных приложений Windows, - использовать XAML/WPF. Самое приятное в этом решении заключается в том, что есть много хороших инструментов и документации по строительным макетам с XAML. Затем вы просто передаете холст в PrintDialog, и все готово. Если вы уже много работали с WPF/XAML, это очень простое решение, и я имел с ним большой успех. Я узнал большую часть того, что мне нужно было начать здесь: http://www.switchonthecode.com/tutorials/printing-in-wpf

Недостатком, конечно же, является ваша зависимость, а затем от .NET и WPF.

Ответ 5

Как и решение Matt Xs от использования Crystal Reports, я использую службы отчетов SQL Server. Вы можете создать файл rdlc для своего решения и использовать редактор WYSIWYG для разработки отчета. Затем в вашем коде все, что вам нужно сделать, присваивает ваш источник данных вашему отчету в коде, и он должен работать. Это даже поддерживает экспорт в PDF.

Ответ 6

Кажется, что никто не упомянул решения на основе Latex, был вопрос переполнения стека Tex, на который ответил jason. Краткая версия: использует MikTex, красивые документы, большую проблему для использования сборки/поддержки.

Ответ 7

Спасибо за все ваши ответы...

Наконец, я решил реализовать собственное решение с помощью Visual Studio 2010 и Office-Tools... Это не "идеальное" решение, но было легко и быстро реализовать, в то время как у меня все еще есть гибкость для изменения документы ведьмы превосходят или слово...

Даунсайд, конечно: вам нужен Office.

Ответ 8

Это зависит от того, как вы получаете документы шаблона. Например, если у вас есть другие организации, ответственные за создание "стандартного" документа-фактуры, у вас, вероятно, будет решение, связанное с слиянием почты в Microsoft Word API, потому что вам нужно работать с файлами ввода в формате Word. В качестве альтернативы, если вам просто даны спецификации для появления документа ( "Логотип в правом верхнем углу, 5 дюймов вниз, затем горизонтальная линия на два дюйма ниже этого, затем... и т.д." ), Вы могли бы сделать это целиком в коде. Даже если вы разрабатываете решение с нуля, учтите, кем будут ваши поставщики документов, и планируйте их соответствующим образом. Наконец, если это с нуля для небольшого набора документов, которые не будут сильно меняться (т.е. Вы начинаете свою собственную компанию по программному обеспечению и хотите отправлять счета-фактуры), не делайте этого. Просто купите что-нибудь с полки или используйте Word:)

Ответ 9

Мы используем xaml FixedPage, можете использовать конструктор, например Kazaml, у него много гибкости гибкости, а привязка данных отлично работает с такими динамическими объектами, как expando. В коде мы привязываем datacontext, а затем визуализируем его для XPS, так как нам нужен конечный вывод в формате pdf, мы используем GhostXPS, который является бесплатным, но должен выполняются в отдельных процессах, однако есть сторонние полностью управляемые преобразователи для xps в pdf.

Ответ 10

Мы используем Crystal Reports, который поставляется с Visual Studio. Вы можете легко создать отчет/документ, привязанный к базе данных или несвязанный.

Например, вы можете подавить верхний и нижний колонтитулы, разверните раздел сведений, чтобы приблизиться. A4, затем добавьте либо связанные поля, либо используйте параметры для несвязанного содержимого. Затем во время выполнения для связанных документов установите формулу выбора только для вывода данных для одной транзакции или для несвязанных документов просто передайте параметры.

Хорошая особенность Crystal Reports - это функции экспорта, поэтому экспорт в PDF, Word и т.д. Также легко распечатать печать на указанном принтере.

Ответ 11

Отчеты Crystal могут быть болью! На базовом уровне сторонние разработчики для нашего внутреннего программного обеспечения для Works Order, Invoices и т.д. Мы используем Dev Express, хотя я думаю, что это может быть дорого.

Для отчетов, создаваемых программным обеспечением, я решил выбрать экспорт в исходный CSV, который, конечно, может быть открыт любым программным обеспечением для электронных таблиц