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

Java启用“Microsoft Print To PDF”打印时如何指定输出路径

Java启用“Microsoft Print To PDF”打印时如何指定输出路径

#前言
使用本地虚拟机打印机(Microsoft Print To PDF)可以方便的对打印功能进行测试或者将文件转换成PDF文件,只是每次转换前都要手动选择保存的路径,即便使用Java代码,也是会弹出记录选择框,选择保存到哪里,有什么办法可以固定这个路径或者依据程序指定呢?

指定固定路径

通过凭借检索,大多数的做法是通过指定一个本地路径的端口,这样就能够保存到指定的文件了,参考:如何指定Microsoft Print To PDF的输出路径

程序动态指定

通过查询JDK的文档,发现有一个属性:javax.print.attribute.standard.Destination 指的就是最终文件保存的路径,亲测了一下是有效的,以下是完整的代码示例:

public static void main(String[] args) throws PrintException, IOException, URISyntaxException {
// 获取到所有的打印服务
PrintService[] printServices = PrinterJob.lookupPrintServices();
for (PrintService printService : printServices) {
// 找到Microsoft Print To PDF虚拟打印机
if (printService.getName().equals("Microsoft Print To PDF")) {
DocPrintJob printJob = printService.createPrintJob();
// 打印源对象
FileInputStream pdfStream = new FileInputStream("E:\\myPic.jpg");
Doc doc = new SimpleDoc(pdfStream, DocFlavor.INPUT_STREAM.JPEG, null);
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
// 关键步骤:指定输出路径
attributes.add(new Destination(new URI("file:///E://myPic.pdf")));
// 执行打印
printJob.print(doc, attributes);
}
}
}
http://www.sczhlp.com/news/12708/

相关文章:

  • 【渲染流水线】[几何阶段]-[图元装配]以UnityURP为例
  • 大语言模型秒级生成安全控制伪代码
  • noip2016普及组租车(完善程序)
  • CDQ分治(充电器分治)
  • C-C++关键字(一)
  • WPF 实现支持动态调整高度的文本显示控件
  • as
  • 【题解】P10627 [JOI Open 2024] 中暑
  • FFT 学习笔记
  • 2025.8.15打卡
  • 优先级反转的发生过程
  • 如何对一个问题进行全面思考?深度思考
  • STM32F103C6T6 的引脚资源
  • pyyzDay11
  • 20250815
  • STM32F103C8T6 与 STM32F103C6T6 资源对比
  • 8月15日
  • 软件开发 - 避免过多的 if-else 语句(利用策略模式、使用映射表、运用枚举、利用函数式编程)
  • ts基础入门d2 pixpin截图
  • 打印沙漏
  • 树上 DP(树形 DP 换根 DP)
  • 读书笔记:数据库的保存与撤销:程序员必须懂的提交与回滚原理
  • 忽有故人心上过,回首山河已是秋
  • 排卡
  • windows安装ubuntu 22
  • RPC框架的优化
  • 面向对象(三大特点→内部类)+异常
  • 若干背包模型 powered by ddxrS
  • Makefile变量赋值操作符详解:`:=`与`+=`的区别与使用
  • UAC