powershell - 使用 Powershell 将图像插入 Powerpoint
问题描述
因此,我在这里找到了一些将图像文件复制到剪贴板的 powershell 代码,以及将复制到剪贴板的图像粘贴到 powerpoint 幻灯片中的另一组代码,但我似乎没有正确集成它们。
它似乎可以运行、打开和关闭 PDF,但实际上并没有将图像粘贴进去。
function PDFtoPPT{
param ($pathtoPDF, $tempsavepath, $firstpage, $lastpage, $targetPPT, $targetslide)
$arg1 = $pathtoPDF
$arg5 = $tempsavepath
&pdftoppm -f $firstpage -l $lastpage -jpeg $arg1 $arg5
[Reflection.Assembly]::LoadWithPartialName('System.Drawing');
[Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');
$objPPT = New-Object -ComObject Powerpoint.Application
$objPPT.Visible ='Msotrue'
$pp1 = $objPPT.Presentations.open($targetPPT)
$i = [int]$i
$firstpage = [int]$firstpage
$lastpage = [int]$lastpage
For ($i=$firstpage; $i -le $lastpage; $i++) {
$filename = $tempsavepath + '-' + $i +'.jpg';
$file = get-item($filename);
$img = [System.Drawing.Image]::Fromfile($file);
[System.Windows.Forms.Clipboard]::SetImage($img);
$slide = $pp1.Slides.Item($targetslide)
$shape = $Slide.Shapes.PasteSpecial(0,$false,$null,$null,$null,$null)
$shape.Left = 50
$shape.Top = 150
$shape.Width = 300
$shape.Height = 168
$img.Dispose()
Remove-Item $filename
$targetslide = $targetslide+1
}
$pp1.Save
$pp1.Close()
$objPPT.quit()
}
#Test
PDFtoPPT 'C:\...\test.pdf' 'C:\...\test' '1' '2' 'C:\...test.pptx' 3
有没有更简单的方法可以将生成的图像复制并粘贴到目标 powerpoint 中?在测试了我的剪贴板后,它似乎在复制,所以我怀疑问题出在粘贴上。
解决方案
更新:
看起来
$shape = $Slide.Shapes.PasteSpecial($ppPasteShape,$false,$null,$null,$null,$null)
作品