Powershell - 如何从word文档中保存单个页面?

时间:2013-08-16 16:12:34

标签: powershell object com ms-word

需要一些帮助。尝试构建一个工具,该工具获取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
}

1 个答案:

答案 0 :(得分:1)

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

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

希望这会有所帮助。