2

需要一些帮助。尝试构建一个工具,该工具采用 180 页文档并读取页码并将该单页实例保存为新文件和递增的文件名。我已经正确完成了迭代和文件处理,但我还没有找到一种从 word 中选择单个页面的方法。这可能不是最好的方法,但由于所有其他尝试都失败了,它的工作原理。我什至尝试使用建议的方法在每页的页脚中添加页码,但它不适用于现有文档..仅适用于新文档。如果有人可以挑选并提出建议,这就是我到目前为止所拥有的东西,我会很感激。

作为该while循环中的一个旁注,即;每页我希望它只做一个当前页面的保存实例。现在它正在做一些不同的事情,只是复制整个事情以确保循环过程有点功能。

[int] $c = 1
[int] $total = 2

#$colFiles = gci("C:\xx\xx\Documents\xx\xx\*.docx") 
#$filebase = "FILENAME"


$objWord = New-Object -comobject Word.Application  
$objWord.Visible = $True 
$template = "C:\x\x\Documents\xx\xx.docx"  
$doc = $objWord.Documents.Open($template)

#$objDoc = $objWord.Documents.Open("C:\xx\xx\xx\xx\" + $objFile.Name) 
$filebase = "xx.docx"
$path = "C:\Users\username\Documents\vbscripting\"
$original = $path + $filebase

$baseFile = $filebase + "_" + $c + ".docx"


while($total -gt $c)
{
    $filename = $path + $filebase + "_" + $c + ".docx"
    $destination = "C:\xx\xx\Documents\xx\xx_"  + $c + ".docx"
    Copy-Item -Path "C:\xx\xx\Documents\xx\xx\xx.docx" -Destination $destination -Force
    ++$c
   Write $filename
}
4

1 回答 1

1

要记住的一件事是,“页面”是一个相对术语。Word 只不过是一个文本编辑器,具有很酷的格式,因此该文件基本上是一个巨大的字符串集,其中 /t 用于制表符,/n 用于新行。因此,找到该特定页面可能会带来一些问题。例如,如果您要打开同一个文本文档,例如记事本,您可能在同一页面上没有完全相同数量的单词,甚至可能没有相同的内容。

根据文件的内容,您可能能够找到起点和终点,并提取所需的内容部分。您将逐行读取文件,查找特定标识符并将该内容拉出。

希望这可以帮助。

于 2013-08-16T17:11:49.110 回答