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.

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


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!


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


8

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


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


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.



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


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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.