web-dev-qa-db-ja.com

PowerPointをPDFに自動的に変換するにはどうすればよいですか?

サードパーティ製品を使用して、コマンドラインから.ppt/.pptxファイルを.pdfファイル(または画像)に変換する必要があります。

私はこれをWindows 2008サーバーに使用していますが、これは自動化されたプロセスである必要があるため、GUIまたはWebサイトを使用できません。

Libreofficeを試しましたが、スマートアートの変換に問題があります。

編集:私の最終的な解決策は、 PowerPoint相互運用機能とC# を使用することでした。参照: https://stackoverflow.com/questions/26372020/how-to-programmatically-create-a-PowerPoint-from-a-list-of-images

9
user229061

これを使用して、フォルダ全体を変換するスクリプトを記述します。これを改善できる場合は、返信してください。これは、初めてのvbscriptの記述です。

コマンド:

cscript scriptname.vbs "C:/path/to/folder"

ファイルは、スクリプトがあるディレクトリに保存されます。

コード:

Option Explicit

Sub WriteLine ( strLine )
    WScript.Stdout.WriteLine strLine
End Sub

Const msoFalse = 0   ' False.
Const msoTrue = -1   ' True.

Const ppFixedFormatIntentScreen = 1 ' Intent is to view exported file on screen.
Const ppFixedFormatIntentPrint = 2  ' Intent is to print exported file.

Const ppFixedFormatTypeXPS = 1  ' XPS format
Const ppFixedFormatTypePDF = 2  ' PDF format

Const ppPrintHandoutVerticalFirst = 1   ' Slides are ordered vertically, with the first slide in the upper-left corner and the second slide below it.
Const ppPrintHandoutHorizontalFirst = 2 ' Slides are ordered horizontally, with the first slide in the upper-left corner and the second slide to the right of it.

Const ppPrintOutputSlides = 1               ' Slides
Const ppPrintOutputTwoSlideHandouts = 2     ' Two Slide Handouts
Const ppPrintOutputThreeSlideHandouts = 3   ' Three Slide Handouts
Const ppPrintOutputSixSlideHandouts = 4     ' Six Slide Handouts
Const ppPrintOutputNotesPages = 5           ' Notes Pages
Const ppPrintOutputOutline = 6              ' Outline
Const ppPrintOutputBuildSlides = 7          ' Build Slides
Const ppPrintOutputFourSlideHandouts = 8    ' Four Slide Handouts
Const ppPrintOutputNineSlideHandouts = 9    ' Nine Slide Handouts
Const ppPrintOutputOneSlideHandouts = 10    ' Single Slide Handouts

Const ppPrintAll = 1            ' Print all slides in the presentation.
Const ppPrintSelection = 2      ' Print a selection of slides.
Const ppPrintCurrent = 3        ' Print the current slide from the presentation.
Const ppPrintSlideRange = 4     ' Print a range of slides.
Const ppPrintNamedSlideShow = 5 ' Print a named slideshow.

Const ppShowAll = 1             ' Show all.
Const ppShowNamedSlideShow = 3  ' Show named slideshow.
Const ppShowSlideRange = 2      ' Show slide range.

'
' This is the actual script
'

Dim inputDirectory
Dim inputFolder
Dim inFiles
Dim outputFolder
Dim inputFile
Dim outputFile
Dim curFile
Dim objPPT
Dim objPresentation
Dim objPrintOptions
Dim objFso
Dim curDir



If WScript.Arguments.Count <> 1 Then
    WriteLine "You need to specify input files."
    WScript.Quit
End If

Set objFso = CreateObject("Scripting.FileSystemObject")

curDir = objFso.GetAbsolutePathName(".")

Set inputFolder = objFSO.GetFolder(WScript.Arguments.Item(0))
Set outputFolder = objFSO.GetFolder(WScript.Arguments.Item(0)) 

Set inFiles = inputFolder.Files

Set objPPT = CreateObject( "PowerPoint.Application" )

For Each curFile in inFiles

Set inputFile = curFile

If Not objFso.FileExists( inputFile ) Then
    WriteLine "Unable to find your input file " & inputFile
    WScript.Quit
End If

objPPT.Visible = TRUE
objPPT.Presentations.Open inputFile

Set objPresentation = objPPT.ActivePresentation
Set objPrintOptions = objPresentation.PrintOptions

objPrintOptions.Ranges.Add 1,objPresentation.Slides.Count
objPrintOptions.RangeType = ppShowAll

objPresentation.ExportAsFixedFormat curDir & curFile.Name & ".pdf", ppFixedFormatTypePDF, ppFixedFormatIntentScreen, msoTrue, ppPrintHandoutHorizontalFirst, ppPrintOutputSlides, msoFalse, objPrintOptions.Ranges(1), ppPrintAll, "Slideshow Name", False, False, False, False, False

objPresentation.Close

Next

ObjPPT.Quit
2
Jasper Boyd

Adobe DistillerのようなPDFプリンタドライバ、またはそこにある多くの安価な、またはオープンソースのドライバのいずれかに印刷できます。

2
Rod MacPherson

Office PowerPoint Viewer 2007 にはコマンドラインスイッチがあります/pこれにより、PowerPointファイルをデフォルトのプリンターで印刷できます。

例えば:

Send the presentation to a printer, and print the file.

Example: "c:\program files\Microsoft office\office12\PPTVIEW.exe" /P "Presentation.pptx"

This example prints the Presentation.pptx file.

PDFプリンターは通常、デフォルトのプリンターとして設定する必要があります。

Adobe Distillerではなく、Adobe Acrobatを購入する必要があるので、 PDFCreator を使用することをお勧めします。これは無料で、オプションを調整すると、出力ファイルを自動的に保存できます。このように、MicrosoftやAdobeに追加の支払いをしなくても、完全にコマンドラインでPowerPointファイルをPDFに変換できます。

1
Sun