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

18

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

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

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

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

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

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

    
задан smashedmercury 07.11.2008 в 00:05
источник

22 ответа

10

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

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

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

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

    
ответ дан Stephan Eggermont 07.11.2008 в 00:26
источник
  • FOP, XSLT и XSL-FO слишком завышены, это кошмар. (ИМХО) –  Jason 07.11.2008 в 00:48
9

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

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

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

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

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

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

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

    
ответ дан Jason 07.11.2008 в 00:11
источник
  • Модификация приложений в формате PDF, как это будет огромной болью из-за структурирования PDF-файлов. Каждый элемент имеет фиксированную позицию, и нет «reflow» thingamajari, который позволяет настраивать контент при сохранении макета. –  Jasper Bekkers 07.11.2008 в 00:16
  • @ Джаспер - если мы говорим о счетах, это не так сложно. Вы знаете, какие координаты вы можете ввести в текст, и обычно вам нужна только одна строка за раз. BTW ... Я обновил другую идею. –  Jason 07.11.2008 в 00:20
  • Ах да, не считал прецедентом слишком много. Причина, по которой я избегаю генерации PDF-файлов, как это, заключается в том, что она не была бы разработана в системе управления контрактами, которая должна была бы тянуть все виды трюков, чтобы получить красивый текст. –  Jasper Bekkers 07.11.2008 в 00:34
  • Есть ли у вас образец кода для редактирования шаблона pdf? спасибо –  Hassen 24.11.2009 в 16:47
6

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

    
ответ дан Ali Afshar 07.11.2008 в 00:22
источник
  • Это не бесплатно, но оно всеобъемлющее и хорошо выполняет эту работу. –  btk 02.05.2013 в 01:58
  • есть бесплатная версия с открытым исходным кодом: reportlab.com/software/opensource –  hoju 14.09.2013 в 02:16
  • Я использовал reportlab и создал этот проект генератора счетов для счетов-фактур fedex. github.com/radzhome/fedex-commercial-invoice Если есть другие общие счета-фактуры, которые кто-то хотел бы добавить, я открыт для него. –  radtek 27.04.2016 в 09:16
5

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

    
ответ дан Alnitak 07.11.2008 в 00:12
источник
  • +1 - Постскриптум не так сложно сгенерировать. В крайнем случае вы можете посмотреть результат из DTP или программы рисования. –  ConcernedOfTunbridgeWells 07.11.2008 в 12:57
  • Ну, да, но я создал все мое вручную ;-) –  Alnitak 07.11.2008 в 23:55
3

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

    
ответ дан ConcernedOfTunbridgeWells 07.11.2008 в 13:01
источник
2

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

    
ответ дан jrs 07.11.2008 в 00:22
источник
  • Нелегко получить форматирование точности с помощью xslt (и xsl-fo). –  Stephan Eggermont 11.11.2008 в 23:37
2

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

    
ответ дан joel.neely 07.11.2008 в 00:22
источник
2

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

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

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

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

    
ответ дан pencilslate 14.08.2009 в 17:00
источник
  • В настоящее время я использую Open Office для создания оригинальных PDF-шаблонов, а затем с помощью iTextSharp для программной вставки данных в поля формы. Я установил границу полей, чтобы они не были видимыми, поэтому пользователи не могут сказать, что это текстовое поле! –  John Bubriski 04.03.2010 в 21:39
1

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

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

ответ дан jishi 07.11.2008 в 00:22
источник
1

Вы также можете попробовать использовать XSL: FO. XSL: FO является документированным стандартом для описания макета страницы: Ссылка .

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

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

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

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

ответ дан Brian 02.04.2009 в 22:55
источник
1

Мне нравится wkhtmltopdf Ссылка

    
ответ дан Anna 14.05.2010 в 19:43
источник
0

Этот html-2-pdf сайт может быть полезной отправной точкой: Ссылка

Сайт, созданный моим другом, использует скрипт для перетаскивания HTML-страниц в печатные PDF-файлы - Ссылка . Не уверен в деталях, но он - пользователь SO, и я тоже отправлю ему этот вопрос.

    
ответ дан warren 07.11.2008 в 00:09
источник
0

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

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

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

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

    
ответ дан Eric Caron 07.11.2008 в 00:17
источник
0

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

    
ответ дан Airsource Ltd 07.11.2008 в 00:30
источник
0

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

    
ответ дан geocar 14.11.2008 в 14:15
источник
  • Как работает разбиение на страницы с HTML? Например, большинство текстовых процессоров знают, как разделить или обернуть строки на следующую страницу. Вам нужно сделать это вручную с помощью html2pdf? –  Jason Leach 06.07.2017 в 05:02
0

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

    
ответ дан Sleep Deprivation Ninja 20.01.2009 в 04:12
источник
0

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

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

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

    
ответ дан rojoca 20.01.2009 в 04:54
источник
0

ОК, поиск проектов Google Code показал простые счета-фактуры , который является удивительным и ухоженным.     

ответ дан Sleep Deprivation Ninja 20.01.2009 в 05:19
источник
  • Теперь я не так впечатлен, как был вначале. Несмотря на то, что у них отличная документация по установке, они не дают понять, как удалить образцы данных или изменить информацию учетной записи администратора o_0 –  Sleep Deprivation Ninja 20.01.2009 в 05:53
0

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

    
ответ дан Niels Castle 03.01.2010 в 20:00
источник
0

Для решения Ruby попробуйте Prawn: Ссылка

    
ответ дан Randomibis 07.09.2010 в 02:22
источник
0

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

    
ответ дан MathGladiator 07.09.2010 в 02:30
источник
0

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

    
ответ дан cchantep 17.07.2014 в 16:22
источник