itext5.5.13 PDF预览权限问题

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.mzph.cn/bicheng/8818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大学物理】双语笔记

7.5 angular momentu(角动量)_哔哩哔哩_bilibili 6.4Energy in Rotation Motion 有质量有速度的物体有动能&#xff0c;是不是很有道理 international system&#xff08;from French systeme international&#xff0c;acronym&#xff0c;SI&#xff09;of ineria kg*m^2 转…

Google Earth Engine——删除和复制指定ASSETS中的文件信息(JavaScript 和python版本)

如果你和我一样,有大量资产上传到 Earth Engine。随着上传的资产越来越多,管理这些数据变得相当繁琐。Earth Engine 提供了一个便捷的命令行工具,可以帮助进行资产管理。虽然命令行工具非常有用,但在涉及批量数据管理任务时,它就显得力不从心了。 如果你想重新命名一个图…

上位机图像处理和嵌入式模块部署(树莓派4b和mcu的分工与配合)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 树莓派4b从广义上来说&#xff0c;它本身就是一个mini小电脑。我们需要什么软件&#xff0c;就可以apt install去下载即可。这和之前嵌入式linux开…

8G显存玩转AI换衣IDM-VTON(支持MAC、WIN)

最近AI换衣项目IDM-VTON挺火哈&#xff0c;我也火速体验了一把。效果也是很不错&#xff0c;相对OOTDiffusion的换衣效果提升了不少。 那部署的时候遇到比较大的问题是高显存占用&#xff01;太吃配置了&#xff01;24G的显卡占用了18G左右。于是花了点时间改成 使用了低精度模…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):2.5 更复杂的神经网络

目录 示例填写第三层的层数1.问题2.答案 公式&#xff1a;计算任意层的激活值激活函数 示例 层数有4层&#xff0c;不包括输入层。 填写第三层的层数 1.问题 你能把第二个神经元的上标和下标填写出来吗&#xff1f; 2.答案 根据公式g(wxb)&#xff0c;这里的x对应的是上…

pdf2htmlEX:pdf 转 html,医学指南精细化处理第一步

pdf2htmlEX&#xff1a;pdf 转 html&#xff0c;医学指南精细化处理第一步 单文件转换多文件转换 代码&#xff1a;https://github.com/coolwanglu/pdf2htmlEX 拉取pdf2htmlEX 的 Docker&#xff1a; docker pull bwits/pdf2htmlex # 拉取 bwits/pdf2htmlex不用进入容器&…

mysql oceanbase数据库alter语句阻塞,解决方案

获取当前阻塞事件 select d.trx_started, a.thread_id, b.processlist_id, a.SQL_text from performance_schema.events_statements_current ajoin performance_schema.threads b on a.thread_id b.thread_idjoin information_schema.processlist c on b.processlist_id c.i…

最稳定的VPS有哪些?2024年稳定服务器推荐

最稳定的VPS有&#xff1a;DigitalOcean、萤光云、Vultr、Linode、AWS。 VPS的硬件质量、网络稳定性、数据中心设施、数据中心位置等都是评估VPS好坏的重要条件&#xff0c;接下来为一起来看看5个2024年稳定服务器厂商&#xff0c;大家可以自己对比一下。 2024年稳定服务器推荐…

MySql表的增删查改(CRUD)

对表中的数据操作分为4大类&#xff0c;增加数据&#xff0c;删除数据&#xff0c;查找数据&#xff0c;修改数据。对表中的数据进行增删查改操作简称为CRUD。Create(增),Retrieve(查找),Updata(修改&#xff09;,Delete(删除)CRUD的操作是对表中的数据进行操作的&#xff0c;是…

【Ajax零基础教程】-----第三课 FastJson

一、Fastjson 是什么 Fastjson 是阿里巴巴的开源jSON解析库&#xff0c;它可以解析JSON格式的字符串&#xff0c;支持将javaBean序列化为JSON字符串&#xff0c;也可以从jSON字符串反序列化到javaBean。 二、Fastjson使用场景 Fastjson已经被广泛使用在各种场景&#xff0c;包…

【随笔】Git 高级篇 -- 上传命令的参数 (下)git push(三十七)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

单节锂电池充电芯片H4054无需外接检测电阻500mA电流7V输入

锂电池充电芯片的主要功能如下&#xff1a; 充电管理功能&#xff1a;充电芯片能够对锂电池进行智能化管理&#xff0c;根据电池的状态和需求&#xff0c;调节充电电流和电压&#xff0c;以实现快速充电、恒流充电、恒压充电等不同的充电模式。通过合理控制充电过程&#xff0…

Excel 查找值的位置后再用位置取值Excel处理

例题描述 Excel 文件中有下图所示的 3 个片区数据 (不同颜色标明)。 现在要算出1-12对应的一列数据&#xff0c;计算规则&#xff1a;在片区3中依次查找1-12&#xff0c;找到后在片区1对应位置取数&#xff0c;如果是0则取片区2同位置的数&#xff0c;如果是1则取F当前查找数。…

基于单片机的小型自动浇灌系统设计

摘 要:以单片机为主控芯片,结合传感器和计算机,搭建了一套智能化的浇灌系统;利用LabVIEW 设计并编写了基于状态机程序架构的上位机软件,实现了友好的用户交互界面,实时测量、显示与记录等功能,并由主控芯片进行浇灌。经测试,本系统具有结构简单,研制成本低,运…

Axure中继器介绍以及案例分享

中继器是 Axure 中一个比较高阶的应用&#xff0c;它可以让我们在纯静态网页中模拟出类似带有后台数据交互的增删改查的效果。 一、中继器的基本使用方法&#xff1a; 整体流程分为三个步骤 ☆创建中继器 我们先在 Axured画布中拖入一个中继器元件 双击中继器后的效果 打开之…

[windows系统安装/重装系统][step-2]BIOS设置UEFI引导、磁盘分区GPT分区、安装系统[含完整操作拍照图片]

背景 先准备U盘启动盘和系统镜像: [windows系统安装/重装系统][step-1]U盘启动盘制作&#xff0c;微软官方纯净系统镜像下载 前言&#xff08;略长&#xff0c;建议可跳过&#xff09; 我的笔记本升级了CPU升级了内存后出现了一个小问题&#xff0c; 每次启动徽标显示后会…

【Pychart】jupyter中pyecharts无法显示问题无法使用/No module named pyecharts

无法显示或No module&#xff0c;一般就是更换python版本后&#xff0c;没有在新的python里安装jupyter&#xff1b;另外原因就是引用方式问题&#xff0c;就是import方式不对&#xff1b;都解决后&#xff0c;有报错没有add&#xff0c;或者str问题。 最后的解决方案竟然是bin…

智慧旅游推动旅游服务智慧化转型:借助智能科技的力量,实现旅游资源的精准匹配和高效利用,为游客提供更加便捷、舒适的旅游环境

目录 一、引言 二、智慧旅游的定义与特点 &#xff08;一&#xff09;智慧旅游的定义 &#xff08;二&#xff09;智慧旅游的特点 三、智能科技在旅游服务中的应用 &#xff08;一&#xff09;大数据分析助力旅游决策 &#xff08;二&#xff09;人工智能实现个性化推荐…

Android 网络请求 实现

Android 网络请求 实现 一、背景 在Android开发中,网络请求是一个非常常见的需求。应用程序可能需要与远程服务器通信来获取数据、上传文件、验证用户身份等等。背景下,Android应用通常会面临以下几个主要情况和挑战: ①数据交互: 许多应用程序需要从服务器获取数据,例…

杰发科技AC7840——软件Sent_HAL39X

0. 序 截止2024.5.8&#xff0c;杰发的MCU没有硬件Sent功能&#xff0c;因此使用PWM模拟Sent来试试。 测试下7840的软件sent功能。 参考链接&#xff1a;SENT协议应用笔记 - TechPlus汽车工坊的文章 - 知乎 SENT协议 1. Sent功能测试 使用提供的软件Sent代码在7840上测试&a…