日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java使用iText 生成PDF全攻略,包括創建文檔,設置字體,添加表格(PdfPTable),創建新頁(newPage),設置布局,加密

主要使用的jar包: itextpdf-5.4.2.jar,itext-pdfa-5.4.2.jar,itext-xtra-5.4.2.jar,如果用到中文,需要CJK字體的擴展包:itext-asian.jar

如果用到特殊符號的,需要另一個擴展包:itext-hyph-xml.jar。所有這些使用的jar包都可以在itext 5.4.2 官方下載地址:itext-5.4.2.zip

運行環境: java version 1.6.0_18 + iText 5.4.2

創建文檔

package com.pdf;

import java.io.FileOutputStream;

import com.itextpdf.text.BaseColor;

import com.itextpdf.text.Chunk;

import com.itextpdf.text.Document;

import com.itextpdf.text.Font;

import com.itextpdf.text.PageSize;

import com.itextpdf.text.Paragraph;

import com.itextpdf.text.pdf.BaseFont;

import com.itextpdf.text.pdf.PdfWriter;

public class ItextHelloword {

public static void test() {

// 常用頁面大小 PageSize.A4;

Document doc = new Document(PageSize.A4);

try {

// 定義輸出位置并把文檔對象裝入輸出對象中

PdfWriter.getInstance(doc,

new FileOutputStream("f:/hello.pdf"));

// 打開文檔對象

doc.open();

// 加入文字"HelloWorld"

doc.add(new Paragraph("HelloWorld"));

// 關閉文檔對象,釋放資源

doc.close(); } catch (Exception e) { e.printStackTrace(); } } }

設置字體

亞洲國家的字體你可以從http://itext.sourceforge.net/downloads/iTextAsian.jar下載這個包。然后把它直接放到你的ClassPath中就可以了

BaseFont bfChinese = BaseFont.createFont("STSong-Light"

, "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);

表格

package com.pdf;

import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.Cell;

import com.EnumTypeExampe.Color;

import com.itextpdf.awt.geom.Rectangle;

import com.itextpdf.text.BaseColor;

import com.itextpdf.text.Chunk;

import com.itextpdf.text.Document;

import com.itextpdf.text.Element;

import com.itextpdf.text.Font;

import com.itextpdf.text.PageSize;

import com.itextpdf.text.Paragraph;

import com.itextpdf.text.pdf.BaseFont;

import com.itextpdf.text.pdf.PdfPCell;

import com.itextpdf.text.pdf.PdfPTable;

import com.itextpdf.text.pdf.PdfWriter;

public class ItextHelloword {

/**

* @param args

*/

public static void main(String[] args)

throws Exception {

test() ;

}

public static void test() {

// 常用頁面大小 PageSize.A4;

Document doc = new Document(PageSize.A4);

try {

// 定義輸出位置并把文檔對象裝入輸出對象中

PdfWriter writer=PdfWriter.getInstance(doc,

new FileOutputStream("f:/hello.pdf"));

// 定義中文字體

BaseFont bfChinese = BaseFont.createFont("STSong-Light",

"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

Font fontCN = new Font(bfChinese, 12,

Font.NORMAL);

// 打開文檔對象

doc.open();

// 加入文字"HelloWorld"

doc.add(new Paragraph("HelloWorld"));

//定義一個表格 創建一個有3列的表格

PdfPTable table = new PdfPTable(3);

// 定義一個表格單元

PdfPCell cell = new PdfPCell(

new Paragraph("some text"));

// cell.setBorder(1);

// 把單元加到表格中

table.addCell(cell);

// 把下面這9項順次的加入到表格中,當一行充滿時候自動折行到下一行

table.addCell("1.1");

table.addCell("2.1");

table.addCell("3.1");

table.addCell("1.2");

table.addCell("2.2");

table.addCell("3.2");

table.addCell("1.3");

table.addCell("2.3");

table.addCell("3.3");

// 增加到文檔中

doc.add(table);

doc.add(new Paragraph("居右 50%", fontCN));

// 設置表格大小為可用空白區域的50%

table.setWidthPercentage(50);

// 設置水平對齊方式為 居右

table.setHorizontalAlignment(Element.ALIGN_RIGHT);

doc.add(new Paragraph("居左 50%", fontCN));

// 增加到文檔中3

doc.add(table);

// 設置水平對齊方式為 居左

table.setHorizontalAlignment(Element.ALIGN_LEFT);

doc.add(table);

// 關閉文檔對象,釋放資源

doc.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

創建新頁

// 創建第2的頁面

document.newPage();

document.add(new Paragraph("Hello Earth"));

document.resetHeader();

// 創建第3的頁面

document.newPage();

document.add(new Paragraph("Hello Sun"));

document.add(new Paragraph("Remark: the header has vanished!"));

document.resetPageCount();

加密

public static void test() {

// 常用頁面大小 PageSize.A4;

Document doc = new Document(PageSize.A4);

try {

// 定義輸出位置并把文檔對象裝入輸出對象中

PdfWriter writer=PdfWriter.getInstance(doc,

new FileOutputStream("f:/hello.pdf"));

// 打開文檔對象

doc.open();

// 加入文字"HelloWorld"

doc.add(new Paragraph("HelloWorld"));

// setEncryption方法中可以設置如下內容(這樣打開pdf時需要輸入口令)

// PdfWriter.STRENGTH128BITS, "userpass", "ownerpass",

// PdfWriter.AllowCopy | PdfWriter.AllowPrinting

writer.setEncryption("userpassword".getBytes()

, "ownerPassword".getBytes(), PdfWriter.ALLOW_COPY

, PdfWriter.EMBEDDED_FILES_ONLY);

// writer.setEncryption(PdfWriter.STRENGTH40BITS,

//"", "", PdfWriter.AllowCopy);

// 關閉文檔對象,釋放資源

doc.close();

} catch (Exception e) {

e.printStackTrace();

}

}

以下圖片是上面代碼中生成的表格:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。