当前位置: 首页 > news >正文

nodejs - puppeteer 无头浏览器截图 JAVA后端调用

nodejs - puppeteer 无头浏览器截图 iframe-CSDN博客

nodejs - puppeteer 无头浏览器截图 - 常规例子-CSDN博客

接上面两个,java后端调用代码

public File archiveInterfaceMethod(String url) {log.info("jsLocal:{}", jsLocal);log.info("fileLocal:{}", fileLocal);log.info("redirectlogin:{}", redirectlogin);// 从URL中提取 applicationNo 参数String applicationNo = extractApplicationNo(url);ProcessInstanceDTO proIns = processInstanceMapper.selectByApplicantNo(applicationNo);//归档次数,用来做网页截图等待时间用Integer archivesCount = 0;if (proIns.getArchivesCount() != null) {archivesCount = proIns.getArchivesCount();}log.info("流程归档,Extracted applicationNo: {}", applicationNo);// 对URL进行转义处理url = url + "&" + redirectlogin;//escapeUrl(url + "&" + redirectlogin);log.info("流程归档,URL after escape: {}", url);String[] command = {"node", jsLocal, "--url", url, "--applicationNo", applicationNo, "--archivesCount", archivesCount.toString()};log.info("开始执行命令: {}", String.join(" ", command));// 确保fileLocal变量正确指向预期的目录File directory = new File(fileLocal);if (!directory.exists()) {// 如果目录不存在,尝试创建它if (!directory.mkdirs()) {Log.error("无法创建目录: {}", directory);return null;}}log.info("获取文件路径: {}", directory.getAbsolutePath());// 构建最终生成文件的路径File generatedFile = new File(directory, applicationNo + ".png");//改成可重复归档//if (generatedFile.exists()) {//    try {//        return processGeneratedFile(generatedFile, applicationNo);//   } catch (IOException e) {//       log.error("处理生成的文件时发生异常:{}", e.getMessage(), e);//        updateInsStatus(applicationNo, 2);//        return null;//    }// }ProcessBuilder processBuilder = new ProcessBuilder(command);processBuilder.directory(directory);// 将错误输出重定向到标准输出流processBuilder.redirectErrorStream(true);// 如果文件不存在,则执行命令生成文件Process process = null;try {process = processBuilder.start();  // 使用ProcessBuilder启动进程try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {String line;while ((line = reader.readLine()) != null) {// 这将包括标准输出和错误输出log.info("进程输出: {}", line);}}int exitCode = process.waitFor();log.info("进程退出码: " + exitCode);if (exitCode == 0) {return processGeneratedFile(generatedFile, applicationNo);} else {log.warn("进程失败,退出码: " + exitCode);}} catch (IOException | InterruptedException e) {log.error("执行进程时发生异常", e);// 处理中断Thread.currentThread().interrupt();}return generatedFile;}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • uniapp 中集成 axios 封装request,实现若依权限认证和若依 api方法共用
  • Leetcode 43. 字符串相乘
  • 两个多边形 贴图
  • 开源 AI 智能名片 S2B2C 商城小程序与正能量融入对社群归属感的影响
  • Python “函数” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业
  • 飞睿智能实时雷达活体探测传感器模块,智能家居静止检测实时感知人员有无
  • PHP 面向对象编程
  • 揭秘高效编程工具的选择与使用
  • 揭秘“隐形杀手”:谐波对医院电网的隐形危害
  • STMCubeMx——C8T6的串口调试、接收与发送
  • android和ios双端应用性能的测试工具
  • 丹摩智算平台体验:AI开发从未如此简单
  • 免费制作证件照的小程序源码
  • Python | Leetcode Python题解之第435题无重叠区间
  • 初识C#(一)
  • JavaScript-如何实现克隆(clone)函数
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 08.Android之View事件问题
  • HashMap剖析之内部结构
  • JavaScript实现分页效果
  • leetcode386. Lexicographical Numbers
  • Python语法速览与机器学习开发环境搭建
  • spring boot下thymeleaf全局静态变量配置
  • 浮现式设计
  • 构建二叉树进行数值数组的去重及优化
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端之React实战:创建跨平台的项目架构
  • 使用权重正则化较少模型过拟合
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • Spring第一个helloWorld
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (1)(1.9) MSP (version 4.2)
  • (2)(2.10) LTM telemetry
  • (2)nginx 安装、启停
  • (C语言)fgets与fputs函数详解
  • (day18) leetcode 204.计数质数
  • (力扣)循环队列的实现与详解(C语言)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • *** 2003
  • .java 9 找不到符号_java找不到符号
  • .Net Core 微服务之Consul(二)-集群搭建
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET HttpWebRequest、WebClient、HttpClient
  • .Net IOC框架入门之一 Unity
  • .NET 通过系统影子账户实现权限维持
  • .NET运行机制
  • /tmp目录下出现system-private文件夹解决方法
  • @Data注解的作用
  • [20150321]索引空块的问题.txt