¿Biblioteca PDF de código abierto para la aplicación C / C ++? [cerrado]

91

Quiero poder generar salida PDF desde mi aplicación (nativa) C ++ de Windows. ¿Hay bibliotecas de código abierto / gratuitas disponibles para hacer esto?

Miré las respuestas a esta pregunta , pero en su mayoría se relacionan con .Net.

ChrisN
fuente

Respuestas:

61

LibHaru

Haru es una biblioteca de software gratuita, multiplataforma y de código abierto para generar PDF escrito en ANSI-C. Puede funcionar como una biblioteca estática (.a, .lib) y una biblioteca compartida (.so, .dll).

No lo probé yo mismo, pero tal vez pueda ayudarte

aku
fuente
¿Podemos leer archivos pdf con LibHaru o solo podemos crear?
Rui Carneiro
5
@Rui: solo crear, desafortunadamente.
Mark Ransom
2
FWIW, escribí un contenedor POCO para libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Nunca lo lanzamos, pero es un código casi de producción.
Alex
Desafortunadamente, LibHaru no admite la lectura y edición de PDF. Tan inútil para mí.
congelar el
19

Trabajé en un proyecto que requería un informe en pdf. Después de buscar en línea, encontré la biblioteca PoDoFo. Parecía muy robusto. No necesitaba todas las funciones, así que creé un contenedor para abstraer parte de la complejidad. No fue demasiado difícil. Puede encontrar la biblioteca aquí:

http://podofo.sourceforge.net/

¡Disfrutar!


fuente
Construir PdDoFo en Mac es un gran dolor, así que finalmente dejé de intentarlo. Construir LibHaru fue muy fácil.
Podofo tuvo 2 problemas con el compilador, después de agregar #include <climits>, <numeric_limits> en dos archivos, pudo compilar el paquete. Pero de alguna manera, el sistema cmake no funciona bien en mi Linux, donde tengo dos versiones de GCC (la anterior vino con mi Centos6.5 y la última 5.3 que construí). La vinculación es un problema. Me las arreglé para vincular el helloworld, pero el programa de prueba produjo un documento en blanco. Es muy difícil resolver este problema.
Kemin Zhou
1
Pero podofo REQUIERE la biblioteca freetype2 que es GPL, no LGPL . No puede crear software con freetype2 si no desea que su fuente sea pública.
18C
@ 18C: Freetype permite la inclusión en aplicaciones comerciales de código cerrado. Vea esto
Optimista congénito
17

Si es valiente y está dispuesto a lanzar el suyo, puede comenzar con una biblioteca PostScript y aumentarla para trabajar con PDF, aprovechando la referencia de PDF en línea gratuita de Adobe .

Tyler
fuente
8

PDF Hummus. consulte http://pdfhummus.com/ : contiene todas las funciones necesarias para la manipulación con archivos PDF, excepto la representación.

Lidia Mirkin
fuente
1
Recientemente hice una gran exportación de PDF con Hummus y puedo recomendarlo. Probablemente no esté completo en términos de cubrir todas las características del PDFSpec actual (que es bastante exhaustivo), pero fácil de entender y extensible a través de una clase de devolución de llamada con una serie de funciones virtuales ( github.com/galkahana/PDF-Writer/blob/ master / PDFWriter /… ). Contiene manejo de TIFF / JPEG y la biblioteca freetype para manejo de fuentes.
RED SOFT ADAIR
¿Ha podido compilarlo como una biblioteca vinculada dinámica? ¿O es compatible solo con una biblioteca vinculada estática?
Sam
8

jagpdf parece ser uno de ellos. Está escrito en C ++ pero proporciona una API en C.

Sangcheol Choi
fuente
7

Depende un poco de tus necesidades. Algunos conjuntos de herramientas son mejores para dibujar, otros son mejores para escribir texto. Cairo tiene una función bastante buena para dibujar (admite una amplia gama de tipos de pantalla y archivos, incluido pdf), pero puede que no sea ideal para una buena tipografía.

Leon Timmermans
fuente
4
  • LibHaru parece ser utilizado por muchos.

Un enfoque de código no abierto es: PDF Creator Pilot, que proporciona más opciones de lenguaje, incluidos C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP y Python

prakash
fuente
1

Prueba wkhtmltopdf

Funciones de software

Plataforma cruzada. Fuente abierta. Convierta cualquier página web en documentos PDF usando webkit. Puede agregar encabezados y pies de página. Generación de TOC. Conversiones en modo por lotes. Puede ejecutarse en un servidor Linux con un XServer (las bibliotecas del cliente X11 deben estar instaladas). Puede ser utilizado directamente por PHP o Python a través de enlaces a libwkhtmltox.

M.Hefny
fuente
Esto es bueno. Pero, como utiliza un webkit con fecha, algunas páginas pueden presentar quejas (youtube por ejemplo)
swdev