Бібліотека PDF з відкритим кодом для програми C / C ++? [зачинено]


91

Я хочу мати можливість генерувати вихідні дані у форматі PDF із моєї (власної) програми C ++ для Windows. Чи є для цього безкоштовні бібліотеки з відкритим кодом?

Я подивився відповіді на це питання , але вони здебільшого стосуються .Net.

Відповіді:


61

LibHaru

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

Не пробував сам, але, можливо, це може вам допомогти


Чи можемо ми читати PDF-файли за допомогою LibHaru або ми можемо лише створювати?
Rui Carneiro

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

2
FWIW, я написав обгортку POCO для libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Ми ніколи не випускали його, але це майже виробничий код.
Олексій

На жаль, 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/ master / PDFWriter /… ). Містить обробку TIFF / JPEG та бібліотеку вільного типу для обробки шрифтів.
RED SOFT ADAIR

чи вдалося вам скомпілювати його як динамічну пов'язану бібліотеку? Або він підтримує просто статичну бібліотеку з прив'язкою?
Сем


7

Це трохи залежить від ваших потреб. Деякі набори інструментів краще малюють, інші - краще для написання тексту. У Каїрі є досить хороший малюнок (він підтримує широкий спектр типів екранів та файлів, включаючи 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. Ви можете додати верхній та нижній колонтитули. Генерація TOC. Пакетний режим перетворення. Може працювати на сервері Linux із XServer (клієнтські бібліотеки X11 повинні бути встановлені). Може використовуватися безпосередньо PHP або Python через прив’язки до libwkhtmltox.


Це добре. Але, оскільки використовується веб-комплект із датою, деякі сторінки можуть скаржитися (наприклад, YouTube)
swdev

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.