Создание счетов-фактур в формате PDF - Существуют ли шаблонные решения?

Наша компания стремится интегрировать счета в новую систему, которую мы разрабатываем.

Нам нужно некоторое решение для создания макета счета-фактуры, а затем конвертировать в pdf.

Мы рассмотрели возможность просто выставить счет в html/css, затем преобразовать в pdf. Мы также рассмотрели использование преобразования SVG- > PDf.

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

Исторически мы были бизнесом на базе Microsoft и использовали Crystal Reports для такой задачи, но мы ищем решение Linux с открытым исходным кодом для этого проекта.

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

Ответ 1

Попробуйте это... создайте пустой счет с помощью Word (или что угодно) и сохраните его как PDF.

Затем используйте библиотеку PDF для изменения PDF (вставьте текст в определенные координаты). Мы делаем это в мире Microsoft, и это очень легко.

Самое большое преимущество в том, что мы можем использовать наши собственные инструменты для создания и изменения шаблона. Если мы хотим добавить некоторый статический текст, мы просто открываем Word, делаем изменения и сохраняем их в PDF файле (который используется в качестве шаблона).

Для Microsoft мы используем iTextSharp, который на самом деле является С# портом оригинала Java-версия iText


Дополнительно...

Вы можете использовать Adobe Acrobat для вставки полей в PDF (адрес, телефон, номер счета, позицию 1, позицию 2 и т.д.), а затем использовать iText/iTextSharp для заполнения этих полей во время выполнения.

Это более подробно, что мы делаем... и это очень легко.

Ответ 2

Обычный способ - установить (La) TeX (возможно, уже в окне Linux) и запустить pdflatex для получения PDF файлов. Вы также можете использовать Apache FOP, если вы предпочитаете xslt и xsl-fo.

Если количество создаваемых счетов-фактур низкое, вы можете использовать open-office (напрямую или как набор инструментов).

Если вам требуется высокоточное позиционирование и низкоуровневый доступ, низкоуровневая библиотека PDF (я не знаю, работает ли iTextSharp с моно), может оказаться тем, что вы хотите.

Сначала я попробовал LaTeX, потому что он позволяет вам получать результаты с наименьшими усилиями.

Ответ 3

Мы используем Reportlab с Python. Если вы посмотрите вокруг, есть готовые формы/счета-фактуры и т.д.

Ответ 4

Я ранее производил счета-фактуры, создавая шаблонный файл PostScript, а затем используя Ghostscript ps2pdf, чтобы преобразовать их в PDF файлы.

Ответ 5

Существует несколько механизмов отчетности OSS (Отчеты Jasper, Pentaho и BIRT, чтобы назвать три), которые вы могли бы использовать во многом так же, как исторически использовались Crystal Reports, Один из других плакатов упоминает ReportLab, который является вариантом, если вы используете Python или можете встраивать среду исполнения Python в ваше приложение.

Ответ 6

Наверное, самым гибким решением является создание XML-данных со счетами-фактами, а затем с помощью XSLT-преобразований, в PDF файлы, HTMls, что угодно...

Ответ 7

Это зависит от вашей среды. Если у вас есть доступ к Java, вы можете посмотреть iText (http://www.lowagie.com/iText/), библиотеку, которая позволяет вам создавать файлы PDF на лету.

Ответ 8

Есть два шага, если я правильно понял:
1) Создание PDF-шаблона с заполнителями для заполнения данных программно
2) Заполнение шаблона PDF программно во время выполнения

Для # 1 OpenOffice позволяет создавать PDF-шаблоны, которые затем могут быть заполнены программно. Это достаточно хорошо, чтобы создавать простые счета-фактуры, которые, вероятно, не связаны с типами данных datagrid/table.

Для # 2 у вас уже есть ответы здесь - iText, iTextSharp.

Надеюсь, это поможет!

Ответ 9

Не уверен, что ваша цель здесь, но есть php-библиотека с открытым исходным кодом, называемая fpdf, которая также имеет расширение для получения предварительно сделанного pdf файла в виде макета, а затем заполняет его большим количеством контента, создавая новый PDF файл с этим Информация.

Тем не менее, я хотел бы найти решение, которое вы можете легко интегрировать в платформу, которую вы строите, но я бы не пошел в HTML- > PDF-решение, так как у вас не будет никаких подсказок о том, лист бумаги относительно размеров в таком виде окружающей среды, то есть вы не будете знать, когда вы должны разделить содержимое на два отдельных шаблона.

Ответ 10

Вы также можете попробовать использовать XSL: FO. XSL: FO является документированным стандартом для описания макета страницы: http://www.w3.org/TR/xsl/#fo-section.

У меня был успех на двух проектах, создающих документы, создав XML-схему, которая определяет содержимое "PDF". Затем я использую инструмент XSD (от Microsoft) для создания класса, представляющего этот документ. Затем я переношу свои данные в эту структуру, сериализую заполненный класс в XML и вместе с таблицей стилей XSL, которая определяет, как эти данные должны отображаться в FO, и передавать их в формат FO. Для форматировщиков я успешно использую Alt-Soft Xml2Pdf. Есть еще несколько человек. Есть некоторые инструменты, которые помогут создать таблицу стилей XSL для FO (например, stylusstudio и XmlSpy), но я рекомендую изучить конструкции FO, поскольку инструменты, похоже, создают раздутые таблицы стилей. FO сопоставима с HTML (где тег P является тегом BLOCK в FO), но может быть сложным. Эта приятная вещь о FO, заключается в том, что некоторые форматированные поддерживают преобразование в другие форматы, такие как Word, HTML и т.д.

Другие параметры:

  • iTextSharp (порт С# для iText). Просто начал читать об этом. Открытый исходный код и бесплатный. Я не думаю, что есть какие-то "шаблоны", поддерживаемые этим, но я мог ошибаться.

  • Службы отчетов SQL Server. Предполагая, что данные вашего счета включены или могут быть помещены в формат, который может быть прочитан службами отчетов (SQL Server, веб-служба и т.д.), Определите макет в SSRS и затем опубликуйте сервер отчетов. Используйте SSRS Web Services или выполнение параметров запроса для выполнения отчета и выведите его как PDF.

Ответ 12

Этот html-2-pdf сайт может быть полезной отправной точкой: http://maarten.lippmann.us/?p=101

Сайт, созданный моим автором, использует script, чтобы отбросить HTML-страницы в печатные PDF файлы, - http://philambdaupsilon.org. Не уверен в деталях, но он - пользователь SO, и я тоже отправлю ему этот вопрос.

Ответ 13

К сожалению, лучшая система на рынке (в настоящее время) передает HTML и CSS на сервер ColdFusion и возвращает это рендеринг PDF. Поэтому, если деньги не представляют большой проблемы, это самое быстрое решение для развертывания, которое принесет наилучшие результаты.

Я очень старался получить FPDF, TCPDF, класс R & pdf и даже рекомендацию CodeIgniter для работы, но ничего со стабильным выходом для чего-либо, кроме самых простых/мягких HTML файлов.

Честно говоря, если решение ColdFusion нежизнеспособно, я бы использовал html2ps, а затем ps2pdf для преобразования ваших файлов в PDF.

(Все это предполагает, что вы не хотите тратить время и разрабатывать каждый PDF файл, используя собственный PHP-код создателя в PHP. Это то, что используют системы SugarCRM. Хотя его очень функциональный со стабильными результатами, фактический создание каждого файла PDF-генератора является самым болезненным процессом)

Ответ 14

Ранее мы использовали отчеты Jasper. Это не то, что вы бы назвали удобным для пользователя, но оно будет напрямую работать с вашей базой данных.

Ответ 15

html2pdf работает очень хорошо. Вы можете использовать это для создания отчетов HTML и PDF из одного источника.

Ответ 16

Я сейчас играю с Black Swep Invoices, который отлично работает, но теперь у меня возникают проблемы с его получением визуализировать PDF файлы. Множество проблем с установкой - возможно, намного проще на вашем собственном сервере, но я нахожусь на общем хосте с ним. Части вывода и обработки данных HTML хорошо сделаны, хотя это то, что вы не получите, просто создав шаблон postscript. Я надеялся найти ссылку на библиотеку, в которой есть активная команда разработчиков, хотя (Black Sheep в настоящее время не обновляется).

Ответ 17

Если вы хотите, чтобы браузер с совершенным HTML преобразовывался в PDF, попробуйте commandlineprint

Вам нужно будет установить firefox в дистрибутив Linux, отключить все предупреждения firefox, а затем запустить его через виртуальный дисплей. Проверить этот поток для получения более подробной информации.

Это бесит, чтобы хорошо работать, но дает наилучшие результаты для преобразования HTML в PDF, который я видел.

Ответ 19

Я использую TROFF для своих счетов-фактур из-за его чрезвычайно простой текстовой кодировки. Логика - это несколько строк Perl. Держать его просто.

Ответ 21

Я использую открытый офис на сервере, а затем создаю XML для документа (просто разархивируйте документ и взломайте его)

Ответ 22

Некоторые могут использовать редактор шаблонов Dhek для определения области/заполнителя для существующего PDF, без изменения существующего документа, а затем заполнить его для создания окончательного документа (например, с пользовательскими значениями из формы): https://github.com/applicius/dhek.