首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用powershell将多页对象(PDF或TIFF)添加到word文档中

如何使用powershell将多页对象(PDF或TIFF)添加到word文档中
EN

Stack Overflow用户
提问于 2022-10-27 20:14:34
回答 1查看 30关注 0票数 0

我正在使用powershell生成一个文档。我需要在文档内容中插入一些PDF文件和一些TIFF图像。它只在页面中插入TIF或PDF文件的第一页。

我使用inlineShapes.AddPicture或inlineShapes.AddOLEObject将这些添加到文档中。

我们如何添加迭代器或类似的东西,一次在文档对象中插入一个页面?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-07 22:45:27

大多数答案都提到,我们需要下载或安装一个实用工具,如用于拆分的iTextSharp或用于分割图像的一些成像实用程序。然而,经过更多的搜索后,我能够实现如下:

For Image:使用Windows中内置的图像库将Tiff文件拆分成页面,然后将每个文件分别插入word中。

For PDF:在word中打开PDF并保存为Word。然后在文档中插入单词文件。

PDF代码示例

代码语言:javascript
运行
复制
$word=New-Object -ComObject word.application
$word.visible=$false
$doc=$word.documents.add()
$sel = $word.selection
$sel.typetext ("Just some test text")
$sel.typeParagraph()

$newDoc=$word.documents.open("c:\apps\sample.pdf")
$filebasename = [System.IO.Path]::GetFileNameWithoutExtension("c:\apps\sample.pdf")
$newDoc.saveAs("c:\apps\sample.docx")
$newDoc.close()

$doc.activate()
$rng=$word.activedocument.range()
$rng.insertFile("c:\apps\sample.docx")
$doc.saveas("C:\apps\new.docx")
$doc.close()
$word.quit()

第一次执行上述代码时,将显示一个对话框,其中询问是否要将PDF转换为word。下一次将有一个复选框跳过此对话框。我们需要选中那个框,这样下次就不会出现了。这也可以通过添加注册表条目来完成,但这超出了这个答案的范围。

图像代码:

代码语言:javascript
运行
复制
$a=[System.Drawing.Bitmap]]::FromFile("c:\apps\sample.tiff")
$pages=$a.getFrameCount([System.Drawing.Imaging.FrameDimension]::Page)
for ($page=0;$page -lt $pages;$page++) {
  $a.selectActiveFrame([System.Drawing.Imaging.FrameDimension]::Page,$page)
$pageFileName = "C:\apps\sample-" + $page + ".tiff"
$a.save($pageFileName)
$newPic = $sel.inlineShapes.AddPicture("$pageFileName","false","true")

}

在上面的代码中,"$sel“是一个选择对象,设置为以前打开的Word文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74227837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档