pdf com powershell powerpoint office-2007

pdf - PowerPoint 2007 SP2, ExportAsFixedFormat en PowerShell?



com office-2007 (1)

Me he encontrado con el mismo problema en Python. Intente especificar el argumento de PrintRange como dijo Stefan Schukat en la solución:

Este es un error en Powerpoint. Define "[en, opcional, valor por defecto (0)] PrintRange * PrintRange" que conduce a la generación de "PrintRange = 0" en el contenedor de Python. Por lo tanto, obtendrá el error al llamar al método. Entonces no hay problema con Makepy. Solución temporal invoque el método con PrintRange = None ya que None es un objeto COM válido. Por ejemplo, presentation.ExportAsFixedFormat (pptFile + ''. Pdf'', win32com.client.constants.ppFixedFormatTypePDF, win32com.client.constants.ppFixedFormatIntentScreen, PrintRange = None) debería funcionar.

Origen: No coinciden los tipos cuando se utiliza la función de exportación de PowerPoint 2007

No conozco PowerShell en absoluto pero he resuelto un ejemplo de trabajo:

$p.ActivePresentation.PrintOptions.Ranges.Add(1,1) $r = $p.ActivePresentation.PrintOptions.Ranges.Item(1) $document.ExportAsFixedFormat(''D://ps.pdf'', 2, 1, 0, 1, 1, 0, $r)

Esta no es una solución completa, pero la exportación está hecha. De alguna manera exporta la presentación completa, no solo la diapositiva no. 1, como yo pensaba. PD Oh Aquí está la misma solución

Ayer intenté convertir por lotes un grupo de PPT en archivos PDF para un amigo, y decidí echarle un vistazo a PowerShell, ya que ha estado en mi HD por un tiempo.

Aquí está el código que se me ocurrió.

$p = new-object -comobject powerpoint.application # I actually don''t know why I have to set the window to visible, # but it doesn''t work otherwise, anyway, it''s not the real problem I have $p.visible = 1 $f = $p.presentations.open(''/some/file.ppt'') $f.ExportAsFixedFormat(''/some/newfile.pdf'', 2)

2 es para PDF

Dado que el método de la "fuerza bruta" no funcionó ("no coincide con el tipo") traté de importar el tipo enum con

$pptypepdf= [Microsoft.Office.Interop.PowerPoint.PpFixedFormatType]::PpFixedFormatTypePDF $f.ExportAsFixedFormat(''/some/newfile.pdf'', $pptypepdf)

Lo extraño aquí es que todavía arroja un error de "error de tipo" ...

Además, SaveAs funciona bien con

$f.SaveAs(''/some/newfile.pdf'', 32) # 32 is for PDF

¿Qué estoy haciendo mal?

Actualizar

Documentación relevante:

Aquí está el mensaje de error completo

$pptypepdf= [Microsoft.Office.Interop.PowerPoint.PpFixedFormatType]::PpFixedFormatTypePDF $f.ExportAsFixedFormat($filepath, $pptypepdf) Exception calling "ExportAsFixedFormat" with "2" argument(s): "Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))" At line:1 char:23 + $f.ExportAsFixedFormat <<<< ($filepath, $pptypepdf) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation