Thư viện PDF mã nguồn mở cho ứng dụng C / C ++? [đóng cửa]


91

Tôi muốn có thể tạo đầu ra PDF từ ứng dụng Windows C ++ (bản địa) của mình. Có thư viện mã nguồn mở / miễn phí nào để thực hiện việc này không?

Tôi đã xem các câu trả lời cho câu hỏi này , nhưng chúng chủ yếu liên quan đến .Net.

Câu trả lời:


61

LibHaru

Haru là một thư viện phần mềm nguồn mở, đa nền tảng, miễn phí để tạo PDF được viết bằng ANSI-C. Nó có thể hoạt động như một thư viện tĩnh (.a, .lib) và một thư viện chia sẻ (.so, .dll).

Tôi đã không thử tự mình, nhưng có thể nó có thể giúp bạn


Chúng ta có thể đọc các tệp pdf bằng LibHaru hay chúng ta chỉ có thể tạo?
Rui Carneiro

5
@Rui: tiếc là chỉ tạo thôi.
Đánh dấu tiền chuộc

2
FWIW, tôi đã viết một trình bao bọc POCO cho libHaru ( github.com/pocoproject/poco/tree/master/PDF ). Chúng tôi chưa bao giờ phát hành nó nhưng nó là mã cấp gần sản xuất.
Alex

Rất tiếc, LibHaru không hỗ trợ đọc và chỉnh sửa PDF. Thật vô dụng đối với tôi.
đóng băng

19

Tôi đã làm việc trong một dự án yêu cầu báo cáo pdf. Sau khi tìm kiếm trực tuyến, tôi tìm thấy thư viện PoDoFo. Có vẻ rất mạnh mẽ. Tôi không cần tất cả các tính năng, vì vậy tôi đã tạo một trình bao bọc để loại bỏ bớt một số sự phức tạp. Không quá khó. Bạn có thể tìm thấy thư viện ở đây:

http://podofo.sourceforge.net/

Thưởng thức!


Xây dựng PdDoFo trên Mac là một khó khăn lớn nên cuối cùng tôi đã từ bỏ việc thử. Xây dựng LibHaru rất dễ dàng.

Podofo có 2 sự cố trình biên dịch, sau khi thêm #include <climits>, <numeric_limits> trong hai tệp, đã có thể tạo gói. Nhưng bằng cách nào đó, hệ thống cmake không hoạt động tốt trên Linux của tôi, nơi tôi có hai phiên bản GCC (phiên bản cũ đi kèm với Centos6.5 của tôi và phiên bản 5.3 mới nhất mà tôi xây dựng). Liên kết là một vấn đề. Tôi đã quản lý để liên kết helloworld, nhưng chương trình thử nghiệm tạo ra một tài liệu trống. Rất khó để giải quyết vấn đề này.
Kemin Zhou

1
Nhưng podofo YÊU CẦU thư viện freetype2 là GPL, không phải LGPL . Bạn không thể tạo phần mềm bằng cách sử dụng freetype2 nếu bạn không muốn công khai nguồn của mình.
18C

@ 18C: Freetype cho phép đưa vào các ứng dụng mã nguồn đóng thương mại. Xem này
bẩm sinh Optimist


8

PDF Hummus. xem tại http://pdfhummus.com/ - chứa tất cả các tính năng cần thiết để thao tác với tệp PDF ngoại trừ kết xuất.


1
Gần đây, tôi đã xuất bản PDF lớn với Hummus và có thể giới thiệu nó. Có thể không hoàn chỉnh về mặt bao gồm tất cả các tính năng của PDFSpec hiện tại (khá đầy đủ), nhưng dễ hiểu và có thể mở rộng tốt thông qua một lớp gọi lại với một số chức năng ảo ( github.com/galkahana/PDF-Writer/blob/ master / PDFWriter /… ). Chứa xử lý TIFF / JPEG và thư viện freetype để xử lý phông chữ.
RED SOFT ADAIR

bạn đã có thể biên dịch nó như một thư viện liên kết động? Hay nó chỉ hỗ trợ thư viện liên kết tĩnh?
Sam


7

Nó phụ thuộc một chút vào nhu cầu của bạn. Một số bộ công cụ vẽ tốt hơn, một số bộ công cụ khác tốt hơn để viết văn bản. Cairo có khả năng vẽ khá tốt (nó hỗ trợ nhiều loại màn hình và tệp, bao gồm cả pdf), nhưng nó có thể không lý tưởng cho những kiểu chữ đẹp.



4
  • LibHaru dường như được nhiều người sử dụng.

Một cách tiếp cận không phải mã nguồn mở là: PDF Creator Pilot cung cấp nhiều tùy chọn ngôn ngữ hơn bao gồm C ++, C #, Delphi, ASP, ASP.NET, VB, VB.NET, VBScript, PHP và Python


1

Hãy thử wkhtmltopdf

Các tính năng của phần mềm

Nền tảng chéo. Mã nguồn mở. Chuyển đổi bất kỳ trang web nào thành tài liệu PDF bằng webkit. Bạn có thể thêm đầu trang và chân trang. Tạo TOC. Chuyển đổi chế độ hàng loạt. Có thể chạy trên máy chủ Linux với XServer (phải cài đặt libs máy khách X11). Có thể được sử dụng trực tiếp bởi PHP hoặc Python thông qua các liên kết với libwkhtmltox.


Điều này là tốt. Nhưng, vì nó sử dụng đề ngày webkit, một số trang có thể khiếu nại (youtube chẳng hạn)
swdev

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.