【发布时间】:2015-12-16 11:50:52
【问题描述】:
我的文件夹中有数千个 word 文档。我的老板要我将所有这些文件转换为 PDF。我已经找到了解决方案,但是我需要在文档中找到一个特定的单词,然后使用下面的行作为转换后的文件名。
例如,我有test1.doc,我需要找到字符串"rule1(以双引号开头),然后读取字符串rule1之后的4个字,然后将这4个字用作转换文件的文件名在 PDF 中。更清楚一点,如果我有test1.doc 并且在test1.doc 中有字符串"rule1 word1 word2 word3 word4 ...,我想将test1.doc 批量转换为word1 word2 word3 word4.pdf。
我找到了这个脚本,但我不知道如何修改它。该脚本只是将所有同名文件转换为 PDF。
$wdFormatPDF = 17
$word = New-Object -ComObject Word.Application
$word.Visible = $false
$folderpath = "C:\Users\Administrator\Desktop\test\*"
$fileTypes = "*.docx","*doc"
Get-ChildItem -Path $folderpath -Include $fileTypes | ForEach-Object {
$path = ($_.fullname).Substring(0, ($_.FullName).LastIndexOf("."))
"Converting $path to pdf ..."
$doc = $word.Documents.Open($_.FullName)
$doc.SaveAs([ref]$path, [ref]$wdFormatPDF)
$doc.Close()
}
$word.Quit()
【问题讨论】:
-
你能把你的一个源文件放到PasteBin上,然后在这里链接吗?我们需要一个源文件来提出一种方法。
-
这是一个word文档,因为有个人信息,所以这里不能分享。
-
...先清理文档?如果您需要帮助,请给我们一些帮助,伙计!
-
我认为您应该能够向 Get-ChildItem 添加过滤器。作为第一遍,这可以将文档转换为文本并搜索您需要的标记。如果“rule1 标记存在并且可以使用其他信息设置变量,过滤器可以返回 true。我知道这是一个有点笨拙的解决方案,但它应该在原则上工作。
标签: powershell pdf