引言
C言語作為一種基本且富強的編程言語,被廣泛利用於各種體系軟體跟底層編程中。跟著數字化時代的到來,文檔處理的須要日益增加,而PDF作為一種常用的文檔格局,其處理才能顯得尤為重要。本文將為妳介紹怎樣利用C言語PDF庫停止高效文檔處理。
抉擇合適的PDF庫
在C言語中,有多種PDF庫可供抉擇,如LibHaru、Poppler等。以下是一些常用的PDF庫及其特點:
LibHaru
- 特點:開源、跨平台、支撐多種PDF功能。
- 實用處景:實用於須要疾速開辟PDF生成跟處理功能的場景。
Poppler
- 特點:開源、跨平台、功能富強。
- 實用處景:實用於須要處理複雜PDF文檔的場景。
安裝PDF庫
以下以LibHaru為例,介紹如何在Linux體系上安裝LibHaru:
- 下載LibHaru:從LibHaru的官方網站下載最新版本的源代碼包。
- 解壓源代碼包:利用tar命令解壓源代碼包。
- 編譯安裝:進入源代碼目錄,利用以下命令編譯安裝:
./configure
make
sudo make install
基本操縱
以下是一些基本的PDF操縱,包含創建、增加頁面、增加文本、保存跟封閉文檔。
創建PDF文檔
#include <haru.h>
int main() {
PDF pdf = PDF_create();
PDF_open(pdf, "example.pdf");
return 0;
}
增加頁面
PDF_add_page(pdf, 0, 0, 595, 842);
增加文本
PDF_page pdf_page = PDF_get_page(pdf, 0);
PDF_textout(pdf_page, 36, 72, "Hello, PDF!");
保存跟封閉文檔
PDF_save(pdf);
PDF_close(pdf);
PDF_delete(pdf);
高等功能
文本格局化
LibHaru支撐多種文本格局化功能,如字體、色彩、大小等。
PDF_textout(pdf_page, 36, 108, "This is a bold text.", PDF_set_font(pdf_page, "Arial", 12), PDF_set_fillcolor(pdf_page, 255, 0, 0));
圖像處理
LibHaru支撐增加、縮放、扭轉等圖像處理功能。
PDF_image pdf_image = PDF_load_image(pdf, "image.png");
PDF_scale_image(pdf_image, 0.5);
PDF_add_image(pdf_page, pdf_image, 36, 144);
PDF_delete(pdf_image);
表格處理
LibHaru支撐增加、編輯、刪除表格。
”`c PDF_table pdf_table = PDF_create_table(pdf_page, 3, 2); PDF_set_table_border(pdf_table, 1, 0, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_rowborder(pdf_table, 2, 0, 1, 1, 0, 0); PDF_set_table_fillcolor(pdf_table, 255, 255, 255); PDF_set_table_bordercolor(pdf_table, 0, 0, 0); PDF_set_table_font(pdf_table, “Arial”, 10); PDF_set_table_fontcolor(pdf_table, 0, 0, 0); PDF_set_table_columnwidth(pdf_table, 0, 100); PDF_set_table_columnwidth(pdf_table, 1, 100); PDF_set_table_columnwidth(pdf_table, 2, 100); PDF_set_table_rowheight(pdf_table, 0, 20); PDF_set_table_rowheight(pdf_table, 1, 20); PDF_set_table_rowheight(pdf_table, 2, 20); PDF_set_table_columnalign(pdf_table, 0, PDF_ALIGN_LEFT); PDF_set_table_columnalign(pdf_table, 1, PDF_ALIGN_CENTER); PDF_set_table_columnalign(pdf_table, 2, PDF_ALIGN_RIGHT); PDF_set_table_columnborder(pdf_table, 0, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 1, 0, 1, 1, 0, 0); PDF_set_table_columnborder(pdf_table, 2,