Android iText 生成pdf

gradle

compile('com.itextpdf:itextg:5.5.10') {
        exclude group: 'com.itextpdf.text.pdf', module: 'fonts'
    }
compile 'org.bouncycastle:bcprov-jdk15on:1.49' //加密
compile 'org.bouncycastle:bcpkix-jdk15on:1.49' //加密

生成pdf

val base = BaseFont.createFont("assets/STSong.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED)//中文字體
val pdf = Document(PageSize.A4, 42f, 42f, 50f, 42f)
val writer = PdfWriter.getInstance(pdf, FileOutputStream(file))
pdf.open()
//居中標題
val font = Font(base, 14f)
font.style = Font.BOLD
val title = Paragraph("pdf標題",font)
title.alignment = Element.ALIGN_CENTER
pdf.add(title)
//創(chuàng)建表格
val table = PdfPTable(2) // columns.  2 列
table.widthPercentage = 96f // Width 100%
table.spacingBefore = 20f // Space before table
table.spacingAfter = 10f // Space after table
table.setWidths(intArrayOf(1,2)) //寬度占比
// 合并兩個單元格 居中顯示標題
val name = PdfPCell(Paragraph("單元格標題", font ))
name.backgroundColor =BaseColor.LIGHT_GRAY
name.colspan = 2 //占兩列
name.setPadding(6f)
name.horizontalAlignment = Element.ALIGN_CENTER
table.addCell(name)
// 添加一行數(shù)據(jù)
val cell1= PdfPCell(Paragraph("單元格1", font ))
val cell2= PdfPCell(Paragraph("單元格2", font ))
table.addCell(cell1)
table.addCell(cell2)
// 添加圖片
var img = Image.getInstance(imgurl)
img.scaleToFit(300f,400f) //縮放
pdf.add(img)
//添加空行
pdf.add(Chunk.NEWLINE)
pdf.close()
writer.close()

加密pdf

val OWNERPASSWORD ="123456" 
var reader = PdfReader(sourceFile)
var stamp = PdfStamper(reader, FileOutputStream(encryptedFile))
stamp.setEncryption(null, OWNERPASSWORD.toByteArray(), PdfWriter.ALLOW_PRINTING, false)
stamp.setFormFlattening(true)
stamp.close()
reader.close()

OWNERPASSWORD 是擁有者自定義密碼枫疆。
PdfWriter.ALLOW_PRINTING 表示默認開放的權限級別,此處表示默認不輸入密碼可以進行查看打印,但是修改文檔需要輸入密碼括授。
PdfWriter.ALLOW_MODIFY_CONTENTS 表示不輸入密碼就可以修改文檔

中文字體支持

assets目錄添加 STSong.TTF字體文件

val base = BaseFont.createFont("assets/STSong.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED) //創(chuàng)建字體

每一頁添加內容

每頁右下角添加logo

// 每頁右下角添加logo
val pdf = Document(PageSize.A4, 42f, 42f, 50f, 42f)
val file = File(distFile)
val writer = PdfWriter.getInstance(pdf, FileOutputStream(file))
writer.pageEvent = PageFooter(logo)

class PageFooter(logo:Image):PdfPageEventHelper(){
        var logo:Image = logo
        override fun onEndPage(writer: PdfWriter, document: Document) {
            super.onEndPage(writer, document)
            logo.alignment = Element.ALIGN_RIGHT
            logo.setAbsolutePosition(document.right()-10,document.bottom()-22)
            document?.add(logo)
        }
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末惩琉,一起剝皮案震驚了整個濱河市哮独,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洼滚,老刑警劉巖埂息,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遥巴,居然都是意外死亡千康,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門铲掐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拾弃,“玉大人,你說我怎么就攤上這事摆霉『来唬” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵携栋,是天一觀的道長搭盾。 經(jīng)常有香客問我,道長婉支,這世上最難降的妖魔是什么鸯隅? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮磅摹,結果婚禮上滋迈,老公的妹妹穿的比我還像新娘。我一直安慰自己户誓,他們只是感情好饼灿,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帝美,像睡著了一般碍彭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悼潭,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天庇忌,我揣著相機與錄音,去河邊找鬼舰褪。 笑死皆疹,一個胖子當著我的面吹牛,可吹牛的內容都是我干的占拍。 我是一名探鬼主播略就,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼捎迫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了表牢?” 一聲冷哼從身側響起窄绒,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崔兴,沒想到半個月后彰导,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡敲茄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年位谋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片折汞。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡倔幼,死狀恐怖,靈堂內的尸體忽然破棺而出爽待,到底是詐尸還是另有隱情损同,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布鸟款,位于F島的核電站膏燃,受9級特大地震影響,放射性物質發(fā)生泄漏何什。R本人自食惡果不足惜组哩,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望处渣。 院中可真熱鬧伶贰,春花似錦、人聲如沸罐栈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荠诬。三九已至琅翻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柑贞,已是汗流浹背方椎。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钧嘶,地道東北人棠众。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像有决,于是被迫代替她去往敵國和親摄欲。 傳聞我的和親對象是個殘疾皇子轿亮,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內容