使用 Windows 中的 Ghostscript 将多个 PDF 文件转换为子目录中的文本文件

Converting multiple PDF files to Text files in subdirectory using Ghostscript in Windows

OS: Windows 10 专业

我想在 Windows 命令行上使用 GhostScript 将多个 PDF 文件转换为主目录和子目录中的文本文件。下面是我的命令:

gswin64c -sDEVICE=txtwrite -o test1.txt "test1.pdf"

此代码使用 Ghostscript 将 "test1.pdf" 转换为 "test1.txt",但我想执行以下操作:

  1. 在主目录和所有子目录中查找所有 pdf 文件
  2. 对所有 PDF 文件执行 Ghostscript
  3. 为输出文本文件指定相同的文件名。 (test1.pdf -> test1.txt)

感谢您为此付出的时间和考虑!

像这样构建批处理或 .cmd 文件:

@echo off

REM Replace these with your actual location
D:
cd "\Main Directory"

for /R %%F in (*.pdf) do call :DOPDF "%%F"
goto ENDIT

:DOPDF
for %%X in (%1) do set PDF_TXTFNM=%%~dpnX.txt
gswin64c -sDEVICE=txtwrite -o "%PDF_TXTFNM%" %1
goto :EOF

REM Clean up
:ENDIT
set PDF_TXTFNM=

编辑添加:

旁注:如果您不想将工作目录更改为主目录,请注意 for /R %%F in ("D:\Main Directory\*.pdf") ... 仅在 .pdf 文件在 D:\Main Directory 中。两个主要的解决方法是使它成为当前工作目录(我的示例中选择的解决方案)或强制一个虚拟 .pdf 文件存在于该目录中,然后选择不在子例程中使用 IF 语句。如果您需要后一种技术的示例,请大声喊叫。