使用PDFLib生成PDF文檔_第1頁
使用PDFLib生成PDF文檔_第2頁
使用PDFLib生成PDF文檔_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、使用PDFLib生成PDF文檔(C語言版)一使用指導(dǎo)1. 基本環(huán)境 打開、關(guān)閉、文檔信息設(shè)定:新建PDFL讓 對象,PDF_new()設(shè)定錯誤處理的方式,PDF_set_pdrdmeter(p, "errorpolicy", "return"), return標(biāo)示當(dāng)發(fā)生錯誤時直接從L讓函數(shù)中返回。設(shè)定文檔信息,PDF_set_value()新建一個 PDF 文件,PDF_begin_document ()新建一個頁面,PDF_begin_page_ext ()關(guān)閉一個頁面,PDF_end_page_ext ()關(guān)閉 PDF 文件,PDF_end_docu

2、ment ()釋放 PDFLib 對象,PDF_delete()例外處理,PDF.TRY ()和 PDF.CATCH() 示例代碼:#include <stdio. h>nclude "pdflib. h"int mdin(int drgc, char *argv)Example ();return 0;int Example(void)PDF *p;辻(p 二 PDF_new()二二(PDF *) 0) printf (/zCouldn,t create PDFlib object (out of memory) !/n/z);return (2);PDF.T

3、RY(p) /* This means we must check return values of load_font() etc */PDF_set_parameter(p, "errorpolicy", "returrT);if (PDF_begin_document(p, "d:/hello. pdf", 0,"”)二二-1) printf ("Error: %s/nz,, PDF_get_errmsg (p);return (2);/* This line is required to avoid problems

4、 on Japanese systems */ PDF_set_parameter(p, "hypertextencoding", "host");PDF_set_parameter(p, "fdkebold", "true");PDF_set_info(p, "Creator", "hello, c");PDF_set_info(p, "Author", "Thomas Merz");PDF_set_info(p, "Tit

5、le", "Hello, world (C)!");PDF_begin_page_ext(p, a4_width, a4_height, “");PDF_setcolor(p, "fill", "cmyk", 1, 0, 0, 0);PDF_rect (p, 250,250, 100, 50);PDF_fill(p);PDF_end_page_ext(p, “");PDF_end_document(p, “");PDF.CATCH(p) printf C'PDFlib exception

6、 occurred in sample:/n/z):printf C %d %s: %s/n,z,PDF_get_errnum(p), PDF_get_apiname(p), PDF_get_errmsg(p);PDF_delete(p);getchar ();return (2);PDF_delete(p);return 0;2. 文字輸出 加載字體使用PDF_load_font ()函數(shù)。口前在Windows平臺下,似乎只能加載可以安裝到Windows系統(tǒng)中的字體。如果加載已經(jīng)安裝到系統(tǒng)中的字體(在C:/windows/fonts文件夾下),可以直接通過字體的名字加載,如:font = P

7、DF_load_font(p, "MS UI Gothic", 0, "host",;font = PDF_load_font(p, "MKZ2", 0, "unicode",;也可以通過制定字體文件加載字體,如:PDF_set_pdrdmeter(p, "FontOutline",z,MKZ2=C:/windows/fonts/ MKZ2. ttf");font= PDF_load_font(p, "MKZ2", 0, "unicode",;&

8、quot;host"和"unicode"是用于字體編碼的方式,host日文系統(tǒng)下具體與代碼頁 cp932等相關(guān),中文系統(tǒng)下與cp936相關(guān)。Unicode與PDF所規(guī)定的CMAP 文件相關(guān),如:UniJIS-UCS2-H、EUC-H等的編碼文件。因為字體已經(jīng)安裝 到了 Windows系統(tǒng)中,具體的字體編碼方式,操作系統(tǒng)能夠自動處理,無需我們顯式的指定。加載字體是一件很耗費時間的工作,大概能占到整個處理的1/4左右。PDFLib已經(jīng)作了些優(yōu)化,當(dāng)一個字體只要加載過一次,再次加載就會使用前面 產(chǎn)生的字體句柄,不再重新生成。PDFLib加載字體時默認(rèn)是嵌入的,這樣會增大

9、輸出的PDF文件。好處是當(dāng)文件被移動到其他系統(tǒng)上時,打開文件時不受字體的影響,否則,打開文件前需要先安 裝字體。我們這次的項LI,生成的PDF文件需要用FTP轉(zhuǎn)送到Solaris系統(tǒng),并且要 送入打印機(jī),所以必須以嵌入方式加載的字體。 設(shè)置字體使用PDF_setfont ()函數(shù),如:PDF_setfont(p, font, 30);30指的是字號,也就是字體的高度。但這個和系統(tǒng)的縮放比例相關(guān)。如果設(shè) 字體前設(shè)定系統(tǒng)的縮放比例為2,實際輸出的字體的高度為60個單位。PSEdit的字體的輸出過程中,絕大部分采用的是變換系統(tǒng)坐標(biāo)的方法來確定 字體的大小,所以編程中使用了 PDF_setfont(p, font, 1)的方式,即字體的大小為 當(dāng)前系統(tǒng)的縮放比例的值相同。 文字輸出PDFLib的文字處理,較PostScript而言,加強(qiáng)了功能,增加了大量文字及段落 等的處理。但本次PSEdit編程中,受于以詢軟件框架的限制,只使用了單字輸岀的 功能PDF_info_text

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論