Perpustakaan PDF sumber terbuka untuk aplikasi C / C ++? [Tutup]


91

Saya ingin dapat menghasilkan keluaran PDF dari aplikasi C ++ Windows (asli) saya. Apakah ada perpustakaan gratis / sumber terbuka yang tersedia untuk melakukan ini?

Saya melihat jawaban untuk pertanyaan ini , tetapi sebagian besar terkait dengan .Net.

Jawaban:


62

LibHaru

Haru adalah perpustakaan perangkat lunak bersumber terbuka dan lintas platform gratis untuk menghasilkan PDF yang ditulis dalam ANSI-C. Ini bisa bekerja sebagai pustaka-statis (.a, .lib) dan pustaka-bersama (.so, .dll).

Belum mencobanya sendiri, tapi mungkin bisa membantu Anda


Bisakah kita membaca file pdf dengan LibHaru atau kita hanya bisa membuat?
Rui Carneiro

5
@Rui: sayangnya hanya buat.
Markus Tebusan

2
FWIW, saya menulis pembungkus POCO untuk libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Kami tidak pernah merilisnya tetapi itu adalah kode yang mendekati tingkat produksi.
Alex

Sayangnya LibHaru tidak mendukung membaca dan mengedit PDF. Sangat tidak berguna bagi saya.
bekukan

19

Saya mengerjakan proyek yang membutuhkan laporan pdf. Setelah mencari online saya menemukan perpustakaan PoDoFo. Tampak sangat kuat. Saya tidak membutuhkan semua fitur, jadi saya membuat pembungkus untuk mengabstraksi beberapa kerumitan. Tidak terlalu sulit. Anda dapat menemukan perpustakaan di sini:

http://podofo.sourceforge.net/

Nikmati!


Membangun PdDoFo di Mac sangat merepotkan, jadi saya akhirnya berhenti mencoba. Membangun LibHaru sangat mudah.

Podofo mendapat 2 masalah kompilator, setelah menambahkan #include <climits>, <numeric_limits> dalam dua file, berhasil membangun paket. Tetapi entah bagaimana, sistem cmake tidak berfungsi dengan baik di Linux saya di mana saya memiliki dua versi GCC (yang lama datang dengan Centos6.5 saya, dan yang terbaru 5.3 yang saya buat). Menautkan adalah masalah. Saya berhasil menghubungkan helloworld, tetapi program pengujian menghasilkan dokumen kosong. Sangat sulit untuk memecahkan masalah ini.
Kemin Zhou

1
Tapi podofo MEMBUTUHKAN library freetype2 yang merupakan GPL, bukan LGPL . Anda tidak dapat membuat perangkat lunak dengan menggunakan freetype2 jika Anda tidak ingin menjadikan sumber Anda publik.
18C

@ 18C: Freetype memungkinkan penyertaan dalam aplikasi sumber tertutup komersial. Lihat ini
Optimis Bawaan

17

Jika Anda berani dan ingin menggulung sendiri, Anda bisa mulai dengan pustaka PostScript dan menambahkannya untuk menangani PDF, memanfaatkan referensi PDF online gratis dari Adobe .


8

PDF Hummus. lihat http://pdfhummus.com/ - berisi semua fitur yang diperlukan untuk manipulasi dengan file PDF kecuali rendering.


1
Saya melakukan Ekspor-PDF besar-besaran dengan Hummus baru-baru ini dan dapat merekomendasikannya. Mungkin tidak lengkap dalam hal mencakup semua fitur PDFSpec saat ini (yang cukup lengkap), tetapi mudah dipahami dan dapat diperluas dengan baik melalui kelas panggilan balik dengan sejumlah fungsi virtual ( github.com/galkahana/PDF-Writer/blob/ master / PDFWriter /… ). Berisi penanganan TIFF / JPEG dan library freetype untuk penanganan font.
RED SOFT ADAIR

apakah Anda dapat mengkompilasinya sebagai pustaka tertaut dinamis? Atau apakah itu hanya mendukung pustaka terkait statis?
Sam


7

Itu sedikit tergantung pada kebutuhan Anda. Beberapa toolkit lebih baik dalam menggambar, yang lain lebih baik untuk menulis teks. Kairo memiliki tempat yang cukup bagus untuk menggambar (ini mendukung berbagai jenis layar dan file, termasuk pdf), tetapi mungkin tidak ideal untuk tipografi yang baik.



4
  • LibHaru sepertinya digunakan oleh banyak orang.

Pendekatan non-open source adalah: PDF Creator Pilot yang menyediakan lebih banyak pilihan bahasa termasuk C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP dan Python


1

Coba wkhtmltopdf

Fitur perangkat lunak

Lintas platform. Sumber terbuka. Ubah halaman web apa pun menjadi dokumen PDF menggunakan webkit. Anda dapat menambahkan header dan footer. Pembuatan TOC. Konversi mode batch. Dapat berjalan di server Linux dengan XServer (libs klien X11 harus diinstal). Bisa langsung digunakan oleh PHP atau Python melalui binding ke libwkhtmltox.


Ini bagus. Tapi, karena menggunakan webkit bertanggal, beberapa halaman mungkin mengeluh (youtube misalnya)
swdev

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.