首页 > 解决方案 > 使用 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 中?在测试了我的剪贴板后,它似乎在复制,所以我怀疑问题出在粘贴上。

标签: powershell

解决方案


更新:

看起来

$shape = $Slide.Shapes.PasteSpecial($ppPasteShape,$false,$null,$null,$null,$null)

作品


推荐阅读