itext5.5.13 PDF预览权限问题

server/2024/11/10 1:48:20/

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/server/41856.html

相关文章

LeetCode73.矩阵置零

题目链接&#xff1a; 73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 分析&#xff1a;普通的模拟问题&#xff0c;我们按照题目的要求进行模拟&#xff0c;把需要的位置置0即可。 算法思路&#xff1a;题目要求原地计算&#xff0c;所以迁移这个矩阵是不现实的。这…

yaml配置文件的在深度学习中的简单应用

1 .创作灵感 小伙伴们再阅读深度学习模型的代码的时候&#xff0c;经常会遇到yaml格式的配置文件。用这个配置文件是因为我们在训练模型的时候会涉及很多的参数&#xff0c;如果这些参数东一个&#xff0c;西一个&#xff0c;我们调起来的时候就会很不方便&#xff0c;所以用y…

vue3和vite

vue3 1、vue3使如何实现效率提升的 客户端渲染效率比vue2提升了1.3~2倍 SSR渲染效率比vue2提升了2~3倍 1.1、静态提升 解释&#xff1a; 1. 对于静态节点&#xff08;如&#xff1a;<h1>接着奏乐接着舞</h1>&#xff09;&#xff0c;vue3直接提出来了&#xff…

GIN框架_请求参数

请求参数 1. Get请求参数 使用Get请求传参时&#xff0c;类似于这样 http://localhost:8080/user/save?id11&namezhangsan。 如何获取呢&#xff1f; 1.1 普通参数 request url: http://localhost:8080/user/save?id11&namezhangsan r.GET("/user/save&qu…

收藏与品鉴:精酿啤酒的艺术之旅

啤酒&#xff0c;这一古老的酒精饮品&#xff0c;不仅是人们生活中的日常饮品&#xff0c;更是一种艺术和文化的载体。对于Fendi club啤酒而言&#xff0c;收藏与品鉴更是一门深入骨髓的艺术之旅。 Fendi club啤酒的收藏&#xff0c;不仅仅是简单的存放和保管&#xff0c;而是一…

Leecode热题100---15:三数之和为零

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。 请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的…

搜维尔科技:【案例分享】Xsens用于工业制造艺术创新设计平台

用户名称&#xff1a;北京理工大学 主要产品&#xff1a;Xsens MVN Awinda惯性动作捕捉系统 在设计与艺术学院的某实验室内&#xff0c;通过Xsens惯性动作捕捉&#xff0c;对人体动作进行捕捉&#xff0c;得到人体三维运动数据&#xff0c;将捕到的数据用于后续应用研究。…

国学经典 书籍推荐

国学经典书籍浩如烟海&#xff0c;涵盖了哲学、历史、文学、语言学等多个方面&#xff0c;以下是一些被广泛认为是必读的经典推荐&#xff1a; 儒家经典 《论语》&#xff1a;记录孔子及其弟子言行&#xff0c;儒家思想的核心著作。《孟子》&#xff1a;孟子的言行录&#xff0…