使用PDFLib生成PDF文檔教程

1、PDF介紹
PDF是Portable Document Format的縮寫,PDF文件格式是國際通用的電子文檔交換事實標準,被許多國家採用做爲電子文檔交換。PDF文件能夠在各類平臺下閱讀、編輯、發佈。該文件格式支持字體、圖像、甚至任何附件的嵌入。您能夠經過免費的Adobe Acrobat Reader來閱讀、編輯PDF文檔。

2、PDFLib介紹
PDFLib是用於建立PDF文檔的開發庫,提供了簡單易用的API,隱藏了建立PDF的複雜細節且不須要第3方軟件的支持。PDFLib庫對於我的是免費的,對於商業產品須要購買許可, 您能夠到VC知識庫的工具與資源欄目下載: http://www.kindeditor.com/pdt/4691

3、在VC++中使用PDFLib
本文例子中使用的PDFLib是4.0.2版本,與5.0版本差很少。5.0免費版本中有一個 WWW.PDFLIB.COM 的水印,4.0中沒有。

3.1 前期準備
創建工程後,將except.cpp,except.h,pdflib.cpp,pdflib.h,pdflib.dll,pdflib.lib拷貝到工程目錄。

3.2 編碼
3.2.1 添加對頭文件和庫的引用 

#include "PDFLib.hpp"

#pragma comment(lib, "PDFLib.lib")
3.2.2生成PDF文檔的過程
生成PDF文檔的過程很是簡單,請看以下編碼:int main(void)
{
        try
        {
                PDFlib pdf;

                // 設置兼容參數
                pdf.set_parameter("compatibility", "1.4");        // 兼容Acrobat 5

                // 打開文檔
                if(pdf.open("vckbase.pdf") == -1)
                        throw("打開文件出錯!");

                // 設置文檔信息
                pdf.set_info("Creator", "PDF Creator");
                pdf.set_info("Author", "WangJun");
                pdf.set_info("Title", "Convert to PDF");
                pdf.set_info("Subject", "PDF Creator");
                pdf.set_info("Keywords", "vckbase.com");

                // 開始A4頁面
                pdf.begin_page(a4_width, a4_height);

                // 設置字體爲12號宋體
                int font_song = pdf.findfont("STSong-Light", "GB-EUC-H", 0);
                pdf.setfont(font_song, 12);

                // 設置起始點
                pdf.set_text_pos(50, a4_height - 50);

                // 設置顏色爲藍色
                pdf.setcolor("fill", "rgb", 0, 0, 1, 0);

                // 輸出文字
                pdf.show("VCKBASE.COM歡迎您!");

                pdf.setcolor("fill", "rgb", 0, 0, 0, 0);
                pdf.setfont(font_song, 24);
                pdf.continue_text("在線雜誌");

                // 畫兩根綠線
                pdf.setcolor("stroke", "rgb", 0.24f, 0.51f, 0.047f, 0);
                pdf.moveto(50, a4_height - 80);
                pdf.lineto(a4_width - 50, a4_height - 80);
                pdf.moveto(50, a4_height - 78);
                pdf.lineto(a4_width - 50, a4_height - 78);
                pdf.stroke();

                // 填充一個藍色方框
                pdf.setcolor("fill", "rgb", 0.04f, 0.24f, 0.62f, 0);
                pdf.rect(50, 50, a4_width - 100, 70);
                pdf.fill();

                // 在指定位置輸出文字
                pdf.setcolor("fill", "rgb", 0, 1, 1, 0);
                pdf.setfont(font_song, 16);
                pdf.show_xy("版權全部 VCKBASE", a4_width - 280, 60);

                // 打開並顯示一個圖像
                int img = pdf.open_image_file("jpeg", "vckbase.jpg", "", 0);
                pdf.place_image(img, 200, 400, 1);
                pdf.close_image(img);

                // 添加附件
                pdf.attach_file(a4_width - 50, 0, 0, a4_height - 150,
                                "vckbase.zip", "VCKBASE", "wj", "zip", "paperclip");

                // 結束本頁
                pdf.end_page();

                // 關閉PDF文件
                pdf.close();

        }
        catch(PDFlib::Exception &ex)
        {
                cerr << "錯誤信息:" << ex.get_message() << endl;
                return -1;
        }
        catch(char *pStrErr)
        {
                cerr << pStrErr << endl;
                return -1;
        }
        catch(...)
        {
                cerr << "發生未知異常!" << endl;
                return -1;
        }

        return 0;
}
PDFLIB還有許多功能,好比書籤、PDF導入等功能,具體能夠參考PDFLIB函數手冊(能夠到VC知識庫中下載pdflib5.0,裏面包含了該手冊)。
相關文章
相關標籤/搜索