国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于iTextSharp的PDF生成技術(shù)應(yīng)用研究

2012-12-31 00:00:00楊曉輝
電腦知識(shí)與技術(shù) 2012年28期


  摘要:隨著ASP.NET開發(fā)的各種應(yīng)用系統(tǒng)的廣泛應(yīng)用,生成可個(gè)性化定制的、安全可靠的報(bào)表成為各系統(tǒng)的重要組成部分。該文提出一種采用iTextSharp類庫生成PDF文檔的方法實(shí)現(xiàn)報(bào)表打印,詳細(xì)介紹了PDF文檔生成的主要步驟,并給出相應(yīng)的程序示例代碼。
  關(guān)鍵詞:PDF;iTextSharp;報(bào)表
  中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)28-6853-03
  隨著ASP.NET技術(shù)的不斷發(fā)展,在互聯(lián)網(wǎng)中采用ASP.NET技術(shù)的應(yīng)用系統(tǒng)越來越多。對(duì)于采用ASP.NET技術(shù)開發(fā)的應(yīng)用系統(tǒng),報(bào)表輸出是各種應(yīng)用系統(tǒng)的重要組成部分。當(dāng)前,在ASP.NET應(yīng)用系統(tǒng)中導(dǎo)出報(bào)表的方式主要集中在兩個(gè)方面:1) 使用集成的水晶報(bào)表;2) 將數(shù)據(jù)流直接導(dǎo)出生成Excel等。然而,這兩種方式都難以滿足用戶報(bào)表的個(gè)性化需求。
  通過深入研究iTextSharp,本文介紹一種基于iTextSharp的PDF個(gè)性化報(bào)表生成方法,并結(jié)合筆者開發(fā)的項(xiàng)目管理系統(tǒng)中的報(bào)表應(yīng)用需求,實(shí)現(xiàn)個(gè)性化報(bào)表的定制和打印。
  1 PDF和iTextSharp
  PDF全稱Portable Document Format,譯為"便攜文檔格式",是由是Adobe公司設(shè)計(jì)的一種電子文件格式。它與操作系統(tǒng)平臺(tái)無關(guān)的性能使它成為在Internet上進(jìn)行電子文檔發(fā)行和數(shù)字化信息傳播的理想文檔格式。PDF文件格式可以將文字、字型、格式、顏色及獨(dú)立于設(shè)備和分辨率的圖形圖像等封裝在一個(gè)文件中,還可以包含超文本鏈接、聲音和動(dòng)態(tài)影像等電子信息,支持特長文件,集成度和安全可靠性都較高。
  iText是著名的開放源碼的站點(diǎn)sourceforge一個(gè)項(xiàng)目,是用于生成PDF文檔的一個(gè)java類庫。通過iText不僅可以生成PDF或rtf的文檔,而且可以將XML、Html文件轉(zhuǎn)化為PDF文件。由此,Gerald Henson,Paulo Soares在基于iText開源項(xiàng)目上開發(fā)了基于.NET生成PDF文檔的開放式源碼類庫iTextSharp。通過iTextSharp可以方便地在ASP.NET中生成PDF文檔,同時(shí)支持將XML、HTML文件轉(zhuǎn)換為PDF文檔。
  2 基于iTextSharp生成PDF文檔的一般步驟
  1)引入iTextSharp類庫和系統(tǒng)輸入輸入類庫。
  2)創(chuàng)建一個(gè)iTextSharp.text .Document實(shí)例。
  Document document=new Document();
  Document類中有3種構(gòu)造函數(shù),其中最常用的是Document(Rectangle PageSize),PageSize定義頁面大小,如果需要用橫向頁面,則可用Rotate()。
  例如:Document(PageSize.A4.Rotate());
  3) 創(chuàng)建一個(gè)Writer實(shí)例,它將Document寫入一個(gè)數(shù)據(jù)流。
  4)打開document,準(zhǔn)備寫入內(nèi)容。
  document.Open();
  在打開之前,可以添加頁眉、頁腳和水印等。
  如添加動(dòng)態(tài)條形碼頁腳,
  5)向Document添加內(nèi)容,根據(jù)客戶要求設(shè)定生成PDF的樣式,每頁生成多少行,在什么位置,用什么樣的表頭。根據(jù)PDF格式需求,設(shè)計(jì)成樣式表,并將其打印。
  由于iTextSharp并不能直接打印出中文字體,在添加內(nèi)容前要必須首先定義一個(gè)Font類型變量來獲得字體格式。
  BaseFont bfChinese = BaseFont.createFont(Server.MapPath("CSS\\simsun.ttc,1"), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//其中的路徑可以是絕對(duì)路徑也可以是相對(duì)路徑,示例中定了系統(tǒng)中引入的宋體字。
  如果要生成的PDF文檔包含上傳附件信息,那么可以通過下面代碼實(shí)現(xiàn):
  關(guān)閉Document非常重要,因?yàn)樗鼘㈥P(guān)閉正在運(yùn)行的Writer并將內(nèi)容寫入文件。
  至此,一個(gè)在制定位置按照用戶個(gè)性化需求定制的指定名稱的PDF文檔就生成了,可以直接打開預(yù)覽和打印。
  3 PDF個(gè)性化報(bào)表示例
  在筆者開發(fā)的項(xiàng)目管理系統(tǒng)中,打印項(xiàng)目合同書項(xiàng)目經(jīng)費(fèi)情況是需要實(shí)現(xiàn)跨行跨列,首先定義一個(gè)不考慮跨行的5等列表格,然后采用嵌套表格實(shí)現(xiàn)跨行,具體方法如下:
  結(jié)果如圖1。
  4 結(jié)束語
  通過使用iTextSharp類庫,可以方便地生成PDF文檔,并利用PDF文檔的特點(diǎn)實(shí)現(xiàn)了在不同操作環(huán)境下個(gè)性化報(bào)表的打印。目前,該技術(shù)已成功地運(yùn)用在筆者開發(fā)的項(xiàng)目管理系統(tǒng)當(dāng)中,可通過在線方式自動(dòng)生成項(xiàng)目申報(bào)書、項(xiàng)目合同書、中期檢查表、結(jié)題驗(yàn)收證書、推薦清單和其他統(tǒng)計(jì)報(bào)表的PDF文檔。
  參考文獻(xiàn):
  [1] Lowagie B.iText in Action[M].New York:Manning Publications Co.,2006.
  [2] 高蒙,范磊,李建華.基于PDF文檔保護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息安全與通信保密,2008(3):69-71.
  [3] Liberty J,Hurwitz D.Programming ASP.NET中文版[M].瞿杰,趙立東,張吳,譯.北京:電子工業(yè)出版社,200

科尔| 玉门市| 双江| 丽水市| 定远县| 西乌珠穆沁旗| 揭阳市| 大安市| 九寨沟县| 湘潭市| 潼关县| 秦皇岛市| 孝感市| 潮安县| 犍为县| 利川市| 平果县| 中方县| 博爱县| 青神县| 察雅县| 万宁市| 黔西县| 上林县| 措勤县| 永泰县| 靖州| 慈利县| 滨海县| 娱乐| 合川市| 阿尔山市| 元氏县| 苍溪县| 姜堰市| 横山县| 喀喇沁旗| 玉门市| 定西市| 岑溪市| 湘潭市|