VBA:PublishPDF Use Corel WordPerfect to convert WP documents to PDF
Option Explicit
Dim blnExitWP, colItems, strMsg, strPDFDoc, strWPDoc
Dim objFSO, objItem, objWMIService, objWP
strMsg = ""
' Open a FileSystem Object
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
' Parse the command line arguments
With WScript.Arguments
If .Named.Count > 0 Then Syntax
Select Case .Unnamed.Count
Case 1
strWPDoc = .Unnamed(0)
' No PDF file name specified, so we'll take the location and
' file name of the WordPerfect document and append a PDF extension
strPDFDoc = objFSO.BuildPath( objFSO.GetParentFolderName( strWPDoc ), _
objFSO.GetBaseName( strWPDoc ) & ".pdf" )
Case 2
strWPDoc = .Unnamed(0)
strPDFDoc = .Unnamed(1)
Case Else
Syntax
End Select
End With
' Check if the WordPerfect file exists
If Not objFSO.FileExists( strWPDoc ) Then
strMsg = "ERROR: File """ & strWPDoc & """ not found" & vbCrLf & vbCrLf
Syntax
End If
' Check if WordPerfect is already active by
' searching for a process named WPWIN**.EXE
blnExitWP = True
Set objWMIService = GetObject( "winmgmts://./root/cimv2" )
Set colItems = objWMIService.ExecQuery( "SELECT * FROM Win32_Process" )
For Each objItem In colItems
If Left( UCase( objItem.Name ), 5 ) = "WPWIN" And _
Right( UCase( objItem.Name ), 4 ) = ".EXE" And _
Len( objItem.Name ) < 12 Then blnExitWP = False
Next
Set objWMIService = Nothing
' Create a new WP OLE Automation object
Set objWP = CreateObject( "WordPerfect.PerfectScript" )
With objWP
' Open the specified document
.FileOpen( strWPDoc )
' Publish to PDF
.PdfDlg( strPDFDoc )
' Close the document
.Close
' Close WordPerfect unless it was already active
If blnExitWP Then .ExitWordPerfect
End With
' Release the objects
Set objFSO = Nothing
Set objWP = Nothing
Sub Syntax( )
strMsg = strMsg & vbCrLf _
& WScript.ScriptName & ", Version 1.00" & vbCrLf _
& "Convert a WordPerfect document to Adobe PDF" & vbCrLf & vbCrLf _
& "Usage: " & UCase( WScript.ScriptName ) _
& " wpdoc_filename [ pdf_filename ]" & vbCrLf & vbCrLf _
& "Where: ""wpdoc_filename"" is the WP file to be converted" _
& vbCrLf _
& " ""pdf_filename"" is the name for the PDF file" _
& vbCrLf _
& " " _
& "(default is name of WP file with .PDF extension)" _
& vbCrLf & vbCrLf _
& "Written by Rob van der Woude" & vbCrLf _
& "http://www.robvanderwoude.com"
WScript.Echo strMsg
WScript.Quit(1)
End Sub