Windows 批量打印 PDF 工具分享:支持文件夹、指定文件、当天文件、预览列表

注:需要具体的脚本,请关注easy4java获取

Windows 批量打印 PDF 工具分享:支持文件夹、指定文件、当天文件、预览列表

日常办公中,经常会遇到一个很麻烦的场景:

  • 一个文件夹里有几十个 PDF 要打印
  • 每个 PDF 都要手动打开、点击打印、关闭
  • 有些 PDF 在子文件夹里,还要一个个找
  • 只想打印今天生成的 PDF
  • 打印前还想先确认一下文件列表,避免打错

如果文件数量少还好,一旦 PDF 多起来,手动操作非常浪费时间。

所以我整理了一个 Windows 下可用的 批量打印 PDF 小工具,通过一个 .bat 菜单入口配合 PowerShell 脚本,实现 PDF 批量打印。


一、工具文件

工具由两个文件组成:

BatchPrintPDF.bat

BatchPrintPDF.ps1

其中:

  • BatchPrintPDF.bat:双击运行的菜单入口
  • BatchPrintPDF.ps1:实际执行批量查找、打印、日志记录的脚本

两个文件建议放在同一个目录下。


二、这个工具能做什么?

目前支持以下几种模式:

  1. 快速打印:打印 bat 所在目录下的所有 PDF

  2. 打印某个文件夹里的所有 PDF

  3. 打印指定的多个 PDF 文件

  4. 只打印今天修改过的 PDF 文件

  5. 只列出文件,不实际打印

比较适合这些场景:

  • 批量打印发票 PDF
  • 批量打印订单 PDF
  • 批量打印合同、报价单
  • 打印当天下载或生成的 PDF
  • 办公室固定打印机批量输出文件
  • 打印前先核对 PDF 文件列表

三、使用前准备

1. Windows 系统

该工具适用于 Windows 环境。

2. 建议安装 SumatraPDF

脚本会优先检测 SumatraPDF,因为它比较轻量,适合命令行静默打印。

如果电脑中没有安装 SumatraPDF,脚本也会尝试使用:

  • Adobe Acrobat / Adobe Reader
  • Windows 默认 PDF 打印方式

但实际体验上,推荐安装 SumatraPDF,批量打印会更稳定。


四、使用方法

方法一:快速打印当前文件夹内所有 PDF

把这两个文件放到 PDF 所在文件夹:

BatchPrintPDF.bat

BatchPrintPDF.ps1

然后双击运行:

BatchPrintPDF.bat

选择:

0

工具会自动打印当前目录下的所有 PDF。


方法二:打印指定文件夹里的 PDF

运行 BatchPrintPDF.bat 后,选择:

1

然后输入或拖入文件夹路径。

程序会询问是否包含子文件夹:

Include subfolders? Y/N

如果选择 Y,会递归打印该目录及所有子目录中的 PDF。


方法三:打印指定的多个 PDF 文件

运行后选择:

2

然后逐个输入 PDF 文件路径。

输入完成后,直接回车空行结束。

适合只想打印几个指定 PDF 的情况。


方法四:只打印今天的 PDF 文件

运行后选择:

3

输入文件夹路径后,脚本会筛选出今天修改过的 PDF 文件进行打印。

适合每天固定打印当天订单、当天发票、当天生成文件的场景。


方法五:只查看文件列表,不实际打印

运行后选择:

4

这个模式不会真的打印,只会列出将要打印的 PDF 文件。

建议第一次使用时先用这个模式确认一下,避免误打。


五、默认打印机配置

脚本中默认指定的打印机名称是:

QR-368

如果你的打印机名称不是这个,需要修改 BatchPrintPDF.bat 里的打印机名称。

例如把:

set PNAME=QR-368

改成你电脑里的打印机名称,比如:

set PNAME=HP LaserJet Pro

也可以在 PowerShell 脚本中通过 -Printer 参数指定打印机。

例如:

.\BatchPrintPDF.ps1 -Path "C:\PDF文件" -Printer "HP LaserJet Pro"

bash 复制代码
@echo off
setlocal enabledelayedexpansion
title Batch Print PDF

echo.
echo ========================================
echo         Batch Print PDF
echo ========================================
echo.
echo  0. Quick print (all PDF in same folder as this bat)
echo  1. Print all PDF in a folder
echo  2. Print specific PDF files
echo  3. Print today's PDF files only
echo  4. List files only (no actual printing)
echo.
set /p CHOICE="Select [0-4]: "

if "%CHOICE%"=="0" goto QUICK_MODE
if "%CHOICE%"=="1" goto DIR_MODE
if "%CHOICE%"=="2" goto FILE_MODE
if "%CHOICE%"=="3" goto TODAY_MODE
if "%CHOICE%"=="4" goto WHATIF_MODE
echo Invalid choice.
pause
exit /b 1

:QUICK_MODE
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0BatchPrintPDF.ps1" -Path "%~dp0" -Printer "QR-368" -DelaySeconds 2 -Force
goto END

:DIR_MODE
echo.
set /p DIR_PATH="Folder path (drag folder here): "
set /p SUB="Include subfolders? [Y/N]: "
set RFLAG=
if /i "!SUB!"=="Y" set RFLAG=-Recurse
set PNAME=QR-368
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0BatchPrintPDF.ps1" -Path "!DIR_PATH!" !RFLAG! -Printer "!PNAME!"
goto END

:FILE_MODE
echo.
echo Enter PDF file paths one by one. Press Enter on empty line when done.
set FLIST=
:FILE_LOOP
set /p FONE="  File path: "
if "!FONE!"=="" goto DO_FILES
set FLIST=!FLIST! "!FONE!"
goto FILE_LOOP
:DO_FILES
set PNAME=QR-368
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0BatchPrintPDF.ps1" -Path !FLIST! -Printer "!PNAME!"
goto END

:TODAY_MODE
echo.
set /p DIR_PATH="Folder path: "
set PNAME=QR-368
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0BatchPrintPDF.ps1" -Path "!DIR_PATH!" -Today -Recurse -Printer "!PNAME!"
goto END

:WHATIF_MODE
echo.
set /p DIR_PATH="Folder path: "
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0BatchPrintPDF.ps1" -Path "!DIR_PATH!" -Recurse -WhatIf
goto END

:END
echo.
pause
endlocal

工具:Sumatra PDF reader download page

相关推荐
程序员老油条4 小时前
WSL2 + Docker Desktop:Windows 下的完美 Java 开发环境
java·windows·docker·wsl2
binbin_527 小时前
Flutter 开发鸿蒙实战:Windows 环境下从 HAP 构建到四 Tab 页面运行
windows·flutter·harmonyos
ylscode7 小时前
微软推送KB5095189:Windows 11 OOBE开箱即用体验迎来新一轮优化
windows·microsoft
Fer_David8 小时前
解决Windows无法在微软商店安装CodeX问题
windows
忧虑的小蚂蚁9 小时前
dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
windows
杨云龙UP11 小时前
Windows SQL Server 备份无法传输至异地共享目录排查处理
运维·服务器·数据库·windows·共享·smb·异地备份传输
AI行业学习11 小时前
Notepad++ 官方纯净下载+完整安装教程(Windows)【2026.7.5】
开发语言·windows·python·前端框架·html·notepad++
站在墙头上12 小时前
Windows下安装 龙虾-Openclaw
windows·ai·openclaw
骑士雄师13 小时前
大模型:MessagesPlaceholder 是什么?
服务器·windows·microsoft
木木子221 天前
# 待办事项应用深度解析:ForEach 列表渲染与 CRUD 操作实战
windows·华为·harmonyos