轉(zhuǎn)帖|其它|編輯:郝浩|2011-09-23 11:51:55.000|閱讀 928 次
概述:本文主要介紹如何在VC++中使用PDFLib,并生成PDF文檔。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
一、PDF介紹
PDF是Portable Document Format的縮寫,PDF文件格式是國際通用的電子文檔交換事實標(biāo)準(zhǔn),被許多國家采用作為電子文檔交換。PDF文件可以在各種平臺下閱讀、編輯、發(fā)布。該文件格式支持字體、圖像、甚至任何附件的嵌入。您可以通過免費的Adobe Acrobat Reader來閱讀、編輯PDF文檔。
二、PDFLib介紹
PDFLib是用于創(chuàng)建PDF文檔的開發(fā)庫,提供了簡單易用的API,隱藏了創(chuàng)建PDF的復(fù)雜細節(jié)且不需要第3方軟件的支持。PDFLib庫對于個人是免費的,對于商業(yè)產(chǎn)品需要購買許可, 您可以到VC知識庫的工具與資源欄目下載://www.vckbase.com/tools/。
三、在VC++中使用PDFLib
本文例子中使用的PDFLib是4.0.2版本,與5.0版本差不多。5.0免費版本中有一個WWW.PDFLIB.COM的水印,4.0中沒有。
3.1 前期準(zhǔn)備
建立工程后,將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;
// 設(shè)置兼容參數(shù)
pdf.set_parameter("compatibility", "1.4"); // 兼容Acrobat 5
// 打開文檔
if(pdf.open("vckbase.pdf") == -1)
throw("打開文件出錯!");
// 設(shè)置文檔信息
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);
// 設(shè)置字體為12號宋體
int font_song = pdf.findfont("STSong-Light", "GB-EUC-H", 0);
pdf.setfont(font_song, 12);
// 設(shè)置起始點
pdf.set_text_pos(50, a4_height - 50);
// 設(shè)置顏色為藍色
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("版權(quán)所有 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");
// 結(jié)束本頁
pdf.end_page();
// 關(guān)閉PDF文件
pdf.close();
}
catch(PDFlib::Exception &ex)
{
cerr << "錯誤信息:" << ex.get_message() << endl;
return -1;
}
catch(char *pStrErr)
{
cerr << pStrErr << endl;
return -1;
}
catch(...)
{
cerr << "發(fā)生未知異常!" << endl;
return -1;
}
return 0;
}
PDFLIB還有許多功能,比如書簽、PDF導(dǎo)入等功能,具體可以參考PDFLIB函數(shù)手冊(可以到VC知識庫中下載pdflib5.0,里面包含了該手冊)。
(慧都控件網(wǎng)版權(quán)所有,轉(zhuǎn)載請注明出處,否則追究法律責(zé)任)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載