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

91

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

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

ChrisN
источник

Ответы:

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
Вы смогли скомпилировать его как динамически подключаемую библиотеку? Или он поддерживает только статическую связанную библиотеку?
Сэм,
8

jagpdf кажется одним из них. Он написан на C ++, но предоставляет C API.

Сангчол Чой
источник
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