x-easypdf 初始與簡單使用
一、概述
一個 java 語言簡化處理 pdf 的框架
項目主頁
項目概述
x-easypdf是一個java語言簡化處理pdf的框架,包含fop模塊與pdfbox模塊,fop模塊以創(chuàng)建功能為主,基于xsl-fo模板生成pdf文檔,以數(shù)據(jù)源的方式進(jìn)行模板渲染;pdfbox模塊以編輯功能為主,對標(biāo)準(zhǔn)的pdfbox進(jìn)行擴展,添加了成噸的功能。
項目特性
fop模塊
以創(chuàng)建功能為主,基于 xsl-fo 模板生成 pdf 文檔,以數(shù)據(jù)源的方式進(jìn)行模板渲染。
- 基于模板生成
- 內(nèi)置多種數(shù)據(jù)源(xml 數(shù)據(jù)源、thymeleaf 數(shù)據(jù)源、freemarker 數(shù)據(jù)源、jte 數(shù)據(jù)源、document 數(shù)據(jù)源)
- 提供面向?qū)ο蟮姆绞缴赡0澹╠ocument 數(shù)據(jù)源)
- 靈活的擴展性
pdfbox模塊
以編輯功能為主,對標(biāo)準(zhǔn)的 pdfbox 進(jìn)行擴展,添加了成噸的功能。
- 超出頁面寬度自動換行,超出頁面高度自動分頁
- 內(nèi)置華為鴻蒙字體,天然支持中文文本
- 內(nèi)置頁眉頁腳,簡單快捷
- 內(nèi)置多個組件,滿足不同的需求
- 內(nèi)置多種擴展器,方便解析、提取與處理文檔內(nèi)容
- 支持自定義組件與擴展
springboot簡單集成測試
<dependency>
<groupId>org.dromara.x-easypdf</groupId>
<artifactId>x-easypdf</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.dromara.x-easypdf</groupId>
<artifactId>x-easypdf-pdfbox</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.dromara.x-easypdf</groupId>
<artifactId>x-easypdf-fop</artifactId>
<version>3.2.1</version>
</dependency>
測試代碼:
@Test void contextLoads() { String content = "\t先帝創(chuàng)業(yè)未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛(wèi)之臣不懈于內(nèi),忠志之士忘身于外者,蓋追先帝之殊遇,欲報之于陛下也。誠宜開張圣聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。\n" + "\n" + "宮中府中,俱為一體,陟罰臧否,不宜異同。若有作奸犯科及為忠善者,宜付有司論其刑賞,以昭陛下平明之理,不宜偏私,使內(nèi)外異法也。\n" + "\n" + "侍中、侍郎郭攸之、費祎、董允等,此皆良實,志慮忠純,是以先帝簡拔以遺陛下。愚以為宮中之事,事無大小,悉以咨之,然后施行,必能裨補闕漏,有所廣益。\n" + "\n" + "將軍向?qū)櫍孕惺缇瑫詴耻娛拢囉糜谖羧眨鹊鄯Q之曰能,是以眾議舉寵為督。愚以為營中之事,悉以咨之,必能使行陣和睦,優(yōu)劣得所。\n" + "\n" + "親賢臣,遠(yuǎn)小人,此先漢所以興隆也;親小人,遠(yuǎn)賢臣,此后漢所以傾頹也。先帝在時,每與臣論此事,未嘗不嘆息痛恨于桓、靈也。侍中、尚書、長史、參軍,此悉貞良死節(jié)之臣,愿陛下親之信之,則漢室之隆,可計日而待也。\n" + "\n" + "臣本布衣,躬耕于南陽,茍全性命于亂世,不求聞達(dá)于諸侯。先帝不以臣卑鄙,猥自枉屈,三顧臣于草廬之中,咨臣以當(dāng)世之事,由是感激,遂許先帝以驅(qū)馳。后值傾覆,受任于敗軍之際,奉命于危難之間,爾來二十有一年矣。\n" + "\n" + "先帝知臣謹(jǐn)慎,故臨崩寄臣以大事也。受命以來,夙夜憂嘆,恐托付不效,以傷先帝之明,故五月渡瀘,深入不毛。今南方已定,兵甲已足,當(dāng)獎率三軍,北定中原,庶竭駑鈍,攘除奸兇,興復(fù)漢室,還于舊都。此臣所以報先帝而忠陛下之職分也。至于斟酌損益,進(jìn)盡忠言,則攸之、祎、允之任也。\n" + "\n" + "愿陛下托臣以討賊興復(fù)之效,不效,則治臣之罪,以告先帝之靈。若無興德之言,則責(zé)攸之、祎、允等之慢,以彰其咎;陛下亦宜自謀,以咨諏善道,察納雅言,深追先帝遺詔,臣不勝受恩感激。\n" + "\n" + "今當(dāng)遠(yuǎn)離,臨表涕零,不知所言。"; // (1)PDFBox方式創(chuàng)建文件 Document document = PdfHandler.getDocumentHandler().create(); // 設(shè)置使用字體 document.setFontName("仿宋"); // 創(chuàng)建頁面 Page page = new Page(document); // 創(chuàng)建文本域 Textarea textarea = new Textarea(page); // 設(shè)置文本 textarea.setText(content); // 設(shè)置字體顏色 textarea.setFontColor(Color.BLUE); // 渲染文本 textarea.render(); // 添加頁面 document.appendPage(page); // 保存文檔 document.save("E:\\PDF\\出師表(1).pdf"); // 關(guān)閉文檔 document.close(); //(2)模板方式創(chuàng)建文件 TemplateHandler.Document.build().addPage(TemplateHandler.Page.build(). addBodyComponent(TemplateHandler.Text.build(). setFontFamily("宋體"). setText(content))). setAuthor("諸葛亮"). setSubject("出師表"). setTitle("出師表"). transform("E:\\PDF\\出師表(2).pdf"); }
文檔效果:

(1)PDFBox方式創(chuàng)建文件
(2)模板方式創(chuàng)建文件

古今成大事者,不唯有超世之才,必有堅韌不拔之志!

浙公網(wǎng)安備 33010602011771號