使用 PDFTKburst
将多页 PDF 文件转换为单个文件,我需要一种方法来允许我控制第一个文件名和它为输出文件命名约定开始的数字。
例如,我希望它提取到自己的 PDF 文件的第一页的初始文件名具有以下名称:“ e00526.pdf
”。这样,它会逐步“爆破”多页 PDF 文件:“ e00526.pdf
”、“ e00527.pdf
”、“ e00528.pdf
”等输出文件名明智。
现在这就是我所拥有的:
#[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
#$firsFile = [Microsoft.VisualBasic.Interaction]::InputBox("Enter first file name:", "File name")
$firstFile = "e00526"
$QRDir = "C:\1_PDF"
chdir $QRDir
$output = "e00526%d.pdf"
pdftk input.pdf burst output $output
但是,这给出了一个连发文件输出命名标准,1
在提取到其自己的 PDF 文件的第一页的基本文件名的末尾附加了一个。然后它为每个后续提取的页面增加附加1
的。1
所以这就是这段代码的作用:“ e005261.pdf
”、“ e005262.pdf
”、“ e005263.pdf
”等。
我需要什么:“ e00526.pdf
”、“ e00527.pdf
”、“ e00528.pdf
”等。
1
因此,与其在6
文件名中附加 ,不如将其增加到6
a7
等,但从提取的第二个页面开始,因此我控制起始页面1
文件名。
更新
由于这个排序问题,我认为这不会像那样工作:
“e005261.pdf”应该变成“e00526.pdf”,“e0052611.pdf”应该变成“e00537.pdf”
这就是为什么我认为如果我们找到一种方法给它第一个文件名并让它在之后增加1位数字会使整个事情变得容易得多。
下面是一个文件重命名后 PDFTK 操作解决方案,它将使用逻辑来获取基本文件名部分并将它们设置为
int
数据类型,为您想要的增量数值计算这些,然后将它们相应地连接在一起以用于新的基本文件每个文件的。电源外壳
注意:从下面的 PowerShell 中删除
-Whatif
以运行逻辑,而不是告诉您如果运行会发生什么。此外,如果您需要递归遍历其中的子文件夹,C:\1_PDF\
可以-Recurse
在命令中添加参数Get-ChildItem
(即Get-ChildItem -Path "C:\1_PDF\*.pdf" -Recurse
)。支持资源
重命名项目
定义 PowerShell 数据类型
PowerShell 运算符 -查找 PowerShell 数组中值的索引号
尝试 {...} 捕捉 {...} 最后 {...}
about_Arithmetic_Operators
String.PadLeft 方法
让我们像上次一样尝试。
正如您所描述的那样,重命名文件将成为一个问题,所以让我们考虑一种不同的方式。
我们可以逐页提取并为每一页定义我们自己的文件名。我们需要的第一件事是找到页数,这应该使用以下命令:
现在让我们设置一些东西来开始。
不工作
这就是我所做的,稍微改变了你的代码:
这是错误代码,虽然它是德语: