Biblioteka PDF typu open source dla aplikacji C / C ++? [Zamknięte]


91

Chcę mieć możliwość generowania wyników PDF z mojej (natywnej) aplikacji C ++ Windows. Czy są dostępne jakieś bezpłatne / otwarte biblioteki do tego?

Przyjrzałem się odpowiedziom na to pytanie , ale dotyczą one głównie domeny .Net.

Odpowiedzi:


62

LibHaru

Haru to bezpłatna, wieloplatformowa biblioteka oprogramowania typu open source do generowania plików PDF napisanych w ANSI-C. Może działać zarówno jako biblioteka statyczna (.a, .lib), jak i biblioteka współdzielona (.so, .dll).

Sam tego nie próbowałem, ale może ci to pomoże


Czy możemy czytać pliki pdf za pomocą LibHaru, czy możemy tylko tworzyć?
Rui Carneiro

5
@Rui: niestety tylko twórz.
Mark Ransom

2
FWIW, napisałem opakowanie POCO dla libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Nigdy go nie opublikowaliśmy, ale jest to kod zbliżony do poziomu produkcyjnego.
Alex

Niestety LibHaru nie obsługuje czytania i edycji plików PDF. Taki bezużyteczny dla mnie.
zamrozić

19

Pracowałem nad projektem, który wymagał raportu w formacie PDF. Po wyszukaniu w Internecie znalazłem bibliotekę PoDoFo. Wydawał się bardzo wytrzymały. Nie potrzebowałem wszystkich funkcji, więc stworzyłem opakowanie, aby usunąć część złożoności. Nie było to zbyt trudne. Bibliotekę znajdziesz tutaj:

http://podofo.sourceforge.net/

Cieszyć się!


Tworzenie PdDoFo na Macu to ogromny ból, więc w końcu zrezygnowałem z prób. Budowa LibHaru była bardzo łatwa.

Podofo napotkał 2 problemy z kompilatorem, po dodaniu #include <climits>, <numeric_limits> w dwóch plikach, był w stanie zbudować pakiet. Ale w jakiś sposób system cmake nie działa dobrze na moim Linuksie, gdzie mam dwie wersje GCC (stara została dostarczona z moim Centos6.5 i najnowsza 5.3, którą zbudowałem). Łączenie jest problemem. Udało mi się połączyć helloworld, ale program testowy wygenerował pusty dokument. Bardzo trudno jest rozwiązać ten problem.
Kemin Zhou

1
Ale podofo WYMAGA biblioteki freetype2, która jest GPL, a nie LGPL . Nie możesz tworzyć oprogramowania przy użyciu freetype2, jeśli nie chcesz udostępniać publicznie swojego źródła.
18C

@ 18C: Freetype umożliwia włączenie do komercyjnych aplikacji o zamkniętym źródle. Zobacz to
Wrodzony optymista


8

PDF Hummus. zobacz http://pdfhummus.com/ - zawiera wszystkie wymagane funkcje do manipulacji plikami PDF z wyjątkiem renderowania.


1
Niedawno zrobiłem duży eksport PDF z Hummusem i mogę go polecić. Prawdopodobnie nie jest kompletny pod względem obejmowania wszystkich funkcji obecnego PDFSpec (który jest dość wyczerpujący), ale jest łatwy do zrozumienia i dobrze rozszerzalny za pomocą klasy wywołania zwrotnego z wieloma funkcjami wirtualnymi ( github.com/galkahana/PDF-Writer/blob/ master / PDFWriter /… ). Zawiera obsługę TIFF / JPEG i bibliotekę freetype do obsługi czcionek.
RED SOFT ADAIR

czy udało Ci się skompilować go jako dynamicznie połączoną bibliotekę? A może obsługuje tylko statyczną bibliotekę połączoną?
Sam


7

To zależy trochę od twoich potrzeb. Niektóre zestawy narzędzi są lepsze do rysowania, inne są lepsze do pisania tekstu. Kair jest całkiem niezły do ​​rysowania (obsługuje szeroką gamę typów ekranów i plików, w tym pdf), ale może nie być idealny do dobrej typografii.



4
  • Wydaje się, że LibHaru jest używane przez wielu.

Podejście inne niż open source to: PDF Creator Pilot, który zapewnia więcej opcji językowych, w tym C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP i Python


1

Wypróbuj wkhtmltopdf

Funkcje oprogramowania

Wiele platform. Otwarte źródło. Konwertuj dowolne strony internetowe na dokumenty PDF za pomocą Webkit. Możesz dodać nagłówki i stopki. Generowanie TOC. Konwersje w trybie wsadowym. Może działać na serwerze Linux z serwerem XServer (muszą być zainstalowane biblioteki klienta X11). Może być bezpośrednio używany przez PHP lub Python poprzez powiązania z libwkhtmltox.


To jest dobre. Ale ponieważ korzysta z datowanego zestawu internetowego, niektóre strony mogą narzekać (na przykład youtube)
swdev

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.