itext5.5.13 PDF预览权限问题

news/2024/10/18 14:18:08/

PdfUtils.htFile.createNewFile()

    • createNewFile 创建文件错误
    • 错误原因
    • 方式一
    • 方式二
    • 实例代码-生成PDF表格数据

createNewFile 创建文件错误

ht = getResourceBasePath() + "\\templates\\ht.pdf";
htFile = new File(ht);

代码含义是创建源文件路径下创建ht.pdf模板,但是创建模板时就出错误信息,提示:系统找不到路径

错误原因

查看资料说是itext5版本 有对文件权限问题,itext7没有此问题,也可以直接用7解决
如果用5的话方式有两种

方式一

自己先创建好指定路径,输入固定位置即可
需要手动维护,不采取

方式二

查询此路径是否存在,如果存在不需要操作,如果不存在需要用File代码生成文件,可采取

实例代码-生成PDF表格数据

可避免出现 权限问题,找不到路径信息

			<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.5.11</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version></dependency>
@GetMapping(value = "/exportFile")public void create(WoMaterialBalanceVo woMaterialBalanceVo,HttpServletResponse response) throws IOException {File pdfFile = null;//导出方法iWoMaterialBalanceVoService.createContractInfo(woMaterialBalanceVo);response.setContentType("application/pdf");//file 文件指定在file.pdf中写入新数据FileInputStream in = new FileInputStream("C:/path/file.pdf");OutputStream out = response.getOutputStream();byte[] b = new byte[1024 * 5];int n;while ((n = in.read(b)) != -1) {out.write(b, 0, n);}out.flush();in.close();out.close();
}
public File createContractInfo(WoMaterialBalanceVo woMaterialBalanceVo) {try {// 1.新建document对象 建立一个Document对象Document document = new Document(PageSize.A4);//PdfUtils.htFile.createNewFile(); 此工具不用,自己创建模板路径// 指定C盘路径"C:/path/file.pdf"; String path = "C:\\path\\file.pdf";// 创建File对象File file = new File(path);// 检查路径是否存在if (!file.getParentFile().exists()) {// 如果不存在,创建目录file.getParentFile().mkdirs();}try {// 检查文件是否存在if (!file.exists()) {// 如果不存在,创建文件file.createNewFile();}} catch (Exception e) {e.printStackTrace();}PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path));// 3.打开文档document.open();// 标题document.addTitle("测试");// 4.向文档中添加内容generatePDF(document,woMaterialBalanceVo);// 5.关闭文档document.close();writer.close();return PdfUtils.htFile;} catch (Exception e) {e.printStackTrace();}return PdfUtils.htFile;}
// 生成PDF文件public void generatePDF(Document document,WoMaterialBalanceVo woMaterialBalanceVo) throws Exception {PdfPTable billTable = PdfUtils.createTitleTable(5,PdfUtils.tableCellFont,"1列","2列","3列","4列","5列");PdfUtils.addCell(billTable,x1,1,PdfUtils.tableCellFont);PdfUtils.addCell(billTable,x2,1,PdfUtils.tableCellFont);PdfUtils.addCell(billTable,x3,1,PdfUtils.tableCellFont);PdfUtils.addCell(billTable,x4,1,PdfUtils.tableCellFont);PdfUtils.addCell(billTable,x5,1,PdfUtils.tableCellFont);}document.add(billTable);}

请添加图片描述


http://www.ppmy.cn/news/1458334.html

相关文章

前端TCP三次握手和四次挥手

三次握手过程 客户端发送一个同步(SYN)包给服务器&#xff0c;携带一个随机生成的序列号x&#xff0c;表示请求建立连接。服务器收到SYN包后&#xff0c;发送一个带有自己的序列号y和确认号x1的SYN-ACK包给客户端&#xff0c;表示接受连接请求。客户端收到服务器的SYN-ACK包后…

JavaScript学习—JavaScript高级

原型链和继承 在 JavaScript 中&#xff0c;每个对象都有一个原型&#xff08;prototype&#xff09;&#xff0c;这个原型指向另一个对象。这个链式的原型关系被称为原型链。当访问一个对象的属性时&#xff0c;如果该对象没有该属性&#xff0c;它会沿着原型链向上查找&…

Linux网络编程(一) 网络基础

一、一些概念 1.1、局域网与广域网 局域网&#xff1a;局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网&#xff1a;又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 1.2、IP IP地址本质就是…

[公开课学习]台大李宏毅-自注意力机制 Transformer

自注意力机制 存在一些问题&#xff0c;将vector set/sequence作为input&#xff0c;例如&#xff1a; 文字处理&#xff1a;将文字用one-hot表示&#xff0c;或者向量空间的向量表示&#xff0c;然后进行翻译任务等语音处理&#xff1a;25ms音频作为一个向量&#xff0c;10m…

Linux cmake 初窥【3】

1.开发背景 基于上一篇的基础上&#xff0c;已经实现了多个源文件路径调用&#xff0c;但是没有库的实现 2.开发需求 基于 cmake 的动态库和静态库的调用 3.开发环境 ubuntu 20.04 cmake-3.23.1 4.实现步骤 4.1 准备源码文件 基于上个试验的基础上&#xff0c;增加了动态库…

docker desktop实战部署oracle篇

1、前言 oracle数据库官方已提供现成的镜像&#xff0c;可以直接拿来部署了。 由于项目中需要使用oracle数据库的分表功能&#xff0c;之前安装的是standard版本&#xff0c;无奈只能重新安装。网上查了一番&#xff0c;使用的方法都比较传统老旧&#xff1a;下载安装包手动安…

图数据库 之 Neo4j 与 AI 大模型的结合绘制知识图谱

引言 随着信息时代的到来&#xff0c;海量的文本数据成为了我们获取知识的重要来源。然而&#xff0c;如何从这些文本数据中提取出有用的信息&#xff0c;并将其以可视化的方式展示出来&#xff0c;一直是一个具有挑战性的问题。近年来&#xff0c;随着人工智能技术的发展&…

内网安全【2】——域防火墙/入站出站规则/不出网隧道上线/组策略对象同步

-隧道技术&#xff1a;解决不出网协议上线的问题(利用出网协议进行封装出网)&#xff08;网络里面有网络防护&#xff0c;防火墙设置让你不能正常访问网络 但有些又能正常访问&#xff0c;利用不同的协议tcp udp 以及连接的方向&#xff1a;正向、反向&#xff09; -代理技术&…