Biblioteca de PDF de código aberto para aplicativos C / C ++? [fechadas]

91

Desejo ser capaz de gerar saída em PDF do meu aplicativo C ++ Windows (nativo). Há alguma biblioteca de código aberto / gratuita disponível para fazer isso?

Eu olhei as respostas para esta pergunta , mas elas se relacionam principalmente com .Net.

ChrisN
fonte

Respostas:

61

LibHaru

Haru é uma biblioteca de software livre, multiplataforma e de código aberto para gerar PDFs escritos em ANSI-C. Ele pode funcionar como uma biblioteca estática (.a, .lib) e uma biblioteca compartilhada (.so, .dll).

Eu não tentei, mas talvez possa te ajudar

aku
fonte
Podemos ler arquivos PDF com LibHaru ou podemos apenas criar?
Rui Carneiro
5
@Rui: apenas crie, infelizmente.
Mark Ransom
2
FWIW, escrevi um wrapper POCO para libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Nunca o lançamos, mas é um código quase de nível de produção.
Alex
Infelizmente, o LibHaru não oferece suporte para leitura e edição de PDF. Tão inútil para mim.
congelar
19

Trabalhei em um projeto que exigia um relatório em pdf. Depois de pesquisar online, encontrei a biblioteca PoDoFo. Parecia muito robusto. Eu não precisava de todos os recursos, então criei um invólucro para abstrair parte da complexidade. Não foi muito difícil. Você pode encontrar a biblioteca aqui:

http://podofo.sourceforge.net/

Aproveitar!


fonte
Construir PdDoFo no Mac é uma dor enorme, então finalmente desisti de tentar. Construir LibHaru foi muito fácil.
Podofo teve 2 problemas de compilador, após adicionar #include <climits>, <numeric_limits> em dois arquivos, foi capaz de construir o pacote. Mas de alguma forma, o sistema cmake não funciona bem no meu Linux, onde tenho duas versões do GCC (uma antiga veio com meu Centos6.5 e uma 5.3 mais recente que eu construí). A vinculação é um problema. Consegui vincular o helloworld, mas o programa de teste produziu um documento em branco. É muito difícil resolver esse problema.
Kemin Zhou
1
Mas podofo REQUER a biblioteca freetype2 que é GPL, não LGPL . Você não pode fazer software com o uso do freetype2 se não quiser tornar sua fonte pública.
18C
@ 18C: Freetype permite a inclusão em aplicativos comerciais de código fechado. Veja isto
Otimista Congênito
17

Se você for corajoso e estiver disposto a fazer o seu próprio, pode começar com uma biblioteca PostScript e aumentá-la para lidar com PDF, aproveitando a referência online gratuita de PDF da Adobe .

Tyler
fonte
8

PDF Hummus. consulte http://pdfhummus.com/ - contém todos os recursos necessários para manipulação de arquivos PDF, exceto renderização.

Lidia Mirkin
fonte
1
Fiz uma grande exportação de PDF com Hummus recentemente e posso recomendá-lo. Provavelmente não está completo em termos de cobrir todos os recursos do PDFSpec atual (que é bastante exaustivo), mas fácil de entender e extensível por meio de uma classe de retorno de chamada com uma série de funções virtuais ( github.com/galkahana/PDF-Writer/blob/ master / PDFWriter /… ). Contém manipulação TIFF / JPEG e a biblioteca freetype para manipulação de fontes.
RED SOFT ADAIR
você conseguiu compilá-lo como uma biblioteca vinculada dinâmica? Ou suporta apenas biblioteca vinculada estática?
Sam
8

jagpdf parece ser um deles. Ele é escrito em C ++, mas fornece uma API C.

Sangcheol Choi
fonte
7

Depende um pouco das suas necessidades. Alguns kits de ferramentas são melhores para desenhar, outros são melhores para escrever texto. Cairo tem um bom desenho (suporta uma ampla variedade de telas e tipos de arquivo, incluindo pdf), mas pode não ser ideal para uma boa tipografia.

Leon Timmermans
fonte
4
  • LibHaru parece ser usado por muitos.

Uma abordagem de código não aberto é: PDF Creator Pilot que oferece mais opções de linguagem, incluindo C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP e Python

prakash
fonte
1

Experimente wkhtmltopdf

Recursos de software

Plataforma cruzada. Código aberto. Converta qualquer página da web em documentos PDF usando o webkit. Você pode adicionar cabeçalhos e rodapés. Geração de TOC. Conversões de modo em lote. Pode ser executado em um servidor Linux com um XServer (as bibliotecas de cliente X11 devem ser instaladas). Pode ser usado diretamente por PHP ou Python por meio de ligações para libwkhtmltox.

M.Hefny
fonte
Isso é bom. Mas, como usa webkit datado, algumas páginas podem reclamar (youtube por exemplo)
swdev