C言语作为一种基本且富强的编程言语,被广泛利用于各种体系软件跟底层编程中。跟着数字化时代的到来,文档处理的须要日益增加,而PDF作为一种常用的文档格局,其处理才能显得尤为重要。本文将为你介绍怎样利用C言语PDF库停止高效文档处理。
在C言语中,有多种PDF库可供抉择,如LibHaru、Poppler等。以下是一些常用的PDF库及其特点:
以下以LibHaru为例,介绍如何在Linux体系上安装LibHaru:
./configure
make
sudo make install
以下是一些基本的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,