Libreria PDF open source per applicazioni C / C ++? [chiuso]


91

Voglio essere in grado di generare output PDF dalla mia applicazione Windows C ++ (nativa). Sono disponibili librerie libere / open source per farlo?

Ho esaminato le risposte a questa domanda , ma si riferiscono principalmente a .Net.

Risposte:


61

LibHaru

Haru è una libreria software gratuita, multipiattaforma e open source per la generazione di PDF scritti in ANSI-C. Può funzionare sia come libreria statica (.a, .lib) che come libreria condivisa (.so, .dll).

Non l'ho provato da solo, ma forse può aiutarti


Possiamo leggere file pdf con LibHaru o possiamo solo creare?
Rui Carneiro

5
@Rui: crea solo, sfortunatamente.
Mark Ransom

2
FWIW, ho scritto un wrapper POCO per libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Non l'abbiamo mai rilasciato, ma è un codice quasi di produzione.
Alex

Sfortunatamente LibHaru non supporta la lettura e la modifica di PDF. Così inutile per me.
congelare il

19

Ho lavorato a un progetto che richiedeva un report in pdf. Dopo aver cercato online ho trovato la libreria PoDoFo. Sembrava molto robusto. Non avevo bisogno di tutte le funzionalità, quindi ho creato un wrapper per astrarre via parte della complessità. Non è stato troppo difficile. Puoi trovare la libreria qui:

http://podofo.sourceforge.net/

Godere!


Costruire PdDoFo su Mac è un enorme problema, quindi alla fine ho rinunciato a provarci. Costruire LibHaru è stato molto semplice.

Podofo ha riscontrato 2 problemi con il compilatore, dopo aver aggiunto #include <climits>, <numeric_limits> in due file, è stato in grado di compilare il pacchetto. Ma in qualche modo, il sistema cmake non funziona bene sul mio Linux dove ho due versioni di GCC (quella vecchia veniva fornita con il mio Centos6.5 e l'ultima 5.3 che ho compilato). Il collegamento è un problema. Sono riuscito a collegare helloworld, ma il programma di test ha prodotto un documento vuoto. È molto difficile risolvere questo problema.
Kemin Zhou

1
Ma podofo RICHIEDE la libreria freetype2 che è GPL, non LGPL . Non è possibile creare software con l'uso di freetype2 se non si desidera rendere pubblica la fonte.
18C,

@ 18C: Freetype consente l'inclusione in applicazioni commerciali closed source. Vedi questo
Congenital Optimist


8

PDF Hummus. vedere per http://pdfhummus.com/ - contiene tutte le funzionalità richieste per la manipolazione con file PDF tranne il rendering.


1
Di recente ho eseguito una grande esportazione di PDF con Hummus e posso consigliarlo. Probabilmente non completo in termini di copertura di tutte le funzionalità dell'attuale PDFSpec (che è abbastanza esaustivo), ma di facile comprensione e buona estendibile tramite una classe di callback con un numero di funzioni virtuali ( github.com/galkahana/PDF-Writer/blob/ master / PDFWriter /… ). Contiene la gestione TIFF / JPEG e la libreria freetype per la gestione dei caratteri.
RED SOFT ADAIR

sei stato in grado di compilarlo come una libreria dinamica collegata? O supporta solo la libreria collegata statica?
Sam


7

Dipende un po 'dalle tue esigenze. Alcuni toolkit sono più bravi a disegnare, altri sono migliori per scrivere testo. Cairo ha una buona capacità per disegnare (supporta un'ampia gamma di schermate e tipi di file, incluso il pdf), ma potrebbe non essere l'ideale per una buona tipografia.



4
  • LibHaru sembra essere usato da molti.

Un approccio non open source è: PDF Creator Pilot che fornisce più opzioni di linguaggio tra cui C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP e Python


1

Prova wkhtmltopdf

Funzionalità del software

Piattaforma multipla. Open source. Converti qualsiasi pagina web in documenti PDF usando webkit. Puoi aggiungere intestazioni e piè di pagina. Generazione di TOC. Conversioni in modalità batch. Può essere eseguito su server Linux con un XServer (le librerie del client X11 devono essere installate). Può essere utilizzato direttamente da PHP o Python tramite collegamenti a libwkhtmltox.


Questo è buono. Tuttavia, poiché utilizza un webkit datato, alcune pagine potrebbero presentare reclami (youtube ad esempio)
swdev

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.