Библиотека PDF с открытым исходным кодом для приложения C / C ++? [закрыто]


91

Я хочу иметь возможность генерировать вывод PDF из моего (собственного) приложения Windows на C ++. Доступны ли для этого бесплатные библиотеки с открытым исходным кодом?

Я посмотрел ответы на этот вопрос , но они в основном касаются .Net.

Ответы:


62

LibHaru

Haru - это бесплатная кросс-платформенная программная библиотека с открытым исходным кодом для создания PDF-файлов, написанных на ANSI-C. Он может работать как статическая библиотека (.a, .lib), так и как разделяемая библиотека (.so, .dll).

Сам не пробовал, но, может, поможет


Можем ли мы читать pdf файлы с помощью LibHaru или можем только создавать?
Руи Карнейро,

5
@Rui: только создавать, к сожалению.
Марк Рэнсом

2
FWIW, я написал оболочку POCO для libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Мы так и не выпустили его, но это код почти производственного уровня.
Alex

К сожалению, LibHaru не поддерживает чтение и редактирование PDF. Так бесполезно для меня.
заморозить

19

Я работал над проектом, для которого требовался отчет в формате pdf. После поиска в Интернете я нашел библиотеку PoDoFo. Выглядело очень крепко. Мне не нужны были все функции, поэтому я создал оболочку, чтобы абстрагироваться от некоторых сложностей. Было не так уж сложно. Вы можете найти библиотеку здесь:

http://podofo.sourceforge.net/

Наслаждайтесь!


Создание PdDoFo на Mac - огромная боль, поэтому я, наконец, оставил попытки. Строить LibHaru было очень легко.

Podofo получил 2 проблемы с компилятором, после добавления #include <climits>, <numeric_limits> в два файла смог собрать пакет. Но почему-то система cmake не работает на моем Linux, где у меня есть две версии GCC (старая идет с моим Centos6.5, а последняя версия 5.3, которую я создаю). Связывание - это проблема. Мне удалось связать helloworld, но тестовая программа выдала пустой документ. Решить эту проблему очень сложно.
Кемин Чжоу

1
Но podofo ТРЕБУЕТСЯ библиотеки freetype2, которая является GPL, а не LGPL . Вы не можете делать программное обеспечение с использованием freetype2, если вы не хотите публиковать свой исходный код.
18C,

@ 18C: Freetype позволяет включать в коммерческие приложения с закрытым исходным кодом. Смотрите это
Врожденное Оптимист


8

PDF Хумус. см. http://pdfhummus.com/ - содержит все необходимые функции для работы с файлами PDF, кроме рендеринга.


1
Недавно я сделал большой PDF-экспорт с Hummus и могу порекомендовать его. Вероятно, неполный с точки зрения охвата всех функций текущего PDFSpec (который является довольно исчерпывающим), но простой для понимания и хорошо расширяемый с помощью класса обратного вызова с рядом виртуальных функций ( github.com/galkahana/PDF-Writer/blob/ мастер / PDFWriter /… ). Содержит обработку TIFF / JPEG и библиотеку freetype для обработки шрифтов.
RED SOFT ADAIR

Вы смогли скомпилировать его как динамически подключаемую библиотеку? Или он поддерживает только статическую связанную библиотеку?
Сэм,


7

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


5

Очень многообещающе выглядит библиотека muPdf: http://mupdf.com/

Также существует программа просмотра с открытым исходным кодом: http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html


1
Похоже, muPdf предназначен для рендеринга PDF-файлов, а не для их создания?
vy32

@ vy32 Глядя на исходный код, я бы сказал, что создание pdf-файлов в лучшем случае находится в стадии разработки и не является основной цельюmuPdf
matec

4
  • LibHaru, кажется, используют многие.

Подход, не связанный с открытым исходным кодом: PDF Creator Pilot, который предоставляет дополнительные языковые возможности, включая C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP и Python.


1

Попробуйте wkhtmltopdf

Возможности программного обеспечения

Кросс-платформа. Открытый источник. Преобразуйте любые веб-страницы в документы PDF с помощью webkit. Вы можете добавлять верхние и нижние колонтитулы. Генерация ТОС. Пакетный режим преобразования. Может работать на сервере Linux с XServer (должны быть установлены клиентские библиотеки X11). Может напрямую использоваться PHP или Python через привязку к libwkhtmltox.


Это хорошо. Но, поскольку он использует устаревший webkit, некоторые страницы могут жаловаться (например, youtube)
swdev

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.