pdf加密 java_java怎么解决加密的pdf文件过大问题

展开全部

不行的话建议可以换一个,有免费版的Spire.PDF for Java来生成和加密PDF文件的效果也都不错62616964757a686964616fe4b893e5b19e31333431356133,测试过生成的结果文档没出现什么问题,你可以参考下面的代码,看能不能解决你的问题:import com.spire.pdf.PdfDocument;

import com.spire.pdf.PdfPageBase;

import com.spire.pdf.graphics.*;

import com.spire.pdf.security.PdfEncryptionKeySize;

import com.spire.pdf.security.PdfPermissionsFlags;

import java.awt.*;

import java.awt.geom.Point2D;

import java.util.EnumSet;

public class CreatePDF {

public static void main(String[] args){

//创建PdfDocument对象

PdfDocument doc = new PdfDocument();

//添加一页

PdfPageBase page = doc.getPages().add();

//绘入文字

String str = "Java基础语法\nJava保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。\n" +

"byValue、cast、future、 generic、 inner、 operator、 outer、 rest";

//创建单色画刷对象

PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));

//创建TrueType字体对象

PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,14),true);

PdfStringFormat format1 = new PdfStringFormat();//创建PDF字符串格式

format1.setAlignment(PdfTextAlignment.Center);//设置文本居中

format1.setLineSpacing(25f);//设置行距

//创建Rectangle2D对象

page.getCanvas().drawString(str, font1, brush1, new Point2D.Float((float) (page.getActualBounds(true).getWidth() / 2), 0),format1);

//加密PDF文档

PdfEncryptionKeySize keySize = PdfEncryptionKeySize.Key_128_Bit;

String openPassword = "open";

String permissionPassword = "permission";

EnumSet flags = EnumSet.of(PdfPermissionsFlags.Print, PdfPermissionsFlags.Fill_Fields);

doc.getSecurity().encrypt(openPassword, permissionPassword, flags, keySize);

//保存到PDF文档

doc.saveToFile("output.pdf");

}

}

生成效果如下:

7035bd898ae2932cb528bc3aa23586f5.png

cf03d650d80148ed420b793cd8f79e36.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值