Converte un file Microsoft Word in Pdf. Lo script pilota Word attraverso la sua interfaccia COM ("Word.Application") e genera un file postscript. Poi lo converte in PDF. Affinchè lo script funzioni correttamente, è necessario installare un stampate PostScript con l'output rediretto su FILE: Per far ciò è necessario scaricare dal sito Adobe: • driver postscript generico • file PPD Adobe (PostScript Printer Description) Installare quindi il driver, assegnargli il PPD corretto, dirigere l'output su FILE: e assegnare un nome (ad esempio GenericPS). Funzionano anche altri driver postscript ed altri PPD. E' consiglibile comunque che l'output sia rediretto su FILE: (questo per evitare, in caso di errore nello script, di stampare realmente su qualche stampante installata). Passi dello script:
Prerequisiti:
Sorgente: ' --------------------------------------------------------
'
' Doc2PDF 0.1
'
' info@fhtino.it
'
' --------------------------------------------------------
Dim cfgGhostScript
Dim objFSO
Dim workDir
Dim errFlag
cfgGhostScript = "C:\Programmi\gs\gs8.13\bin\gswin32c.exe"
Set objFSO=CreateObject("Scripting.FileSystemObject")
wscript.echo "/\/\/\/\/\ START /\/\/\/\/\"
workDir = objFSO.GetFolder(".").Path & "\"
docFile = "in2.doc"
wscript.echo "DocFile: " & docFile
' --- conversione ---
wscript.echo "convertDoc2PS: start"
errFlag=convertDoc2PS(workDir & docFile, workDir & docFile & ".ps")
wscript.echo "convertDoc2PS: end "
if (errFlag=0) then
wscript.echo "convertPS2PDFGhostScript: start"
errFlag=convertPS2PDFGhostScript(workDir & docFile & ".ps", workDir & docFile & ".pdf")
wscript.echo "convertPS2PDFGhostScript: end"
if (errFlag=0) then
wscript.echo "OK"
else
wscript.echo "Error PS-->PDF"
end if
else
wscript.echo "Error DOC-->PS"
end if
wscript.echo "/\/\/\/\/\ END /\/\/\/\/\"
wscript.quit
' ------------------------------------------------------------------------------
function convertDoc2PS(byval docFile, byval psFile)
Dim objWrdApp
Dim objWrdDoc
Dim oldActivePrinter
Set objWrdApp=CreateObject("Word.Application")
objWrdApp.visible=false
Set objWrdDoc=objWrdApp.Documents.Open(docFile,false,true)
oldActivePrinter=objWrdApp.activePrinter
objWrdApp.activePrinter="GenericPS"
objWrdApp.options.PrintBackGround=false
objWrdApp.printOut ,,,psFile
objWrdApp.activePrinter=oldActivePrinter
objWrdApp.Quit false
Set objWrdApp=Nothing
Set objWrdDoc=Nothing
convertDoc2PS=0
end function
' ------------------------------------------------------------------------------
function convertPS2PDFGhostScript(byval psFile, byval pdfFile)
Dim execString
Dim objWshShell
Dim intRC
execString = cfgGhostScript
execString = execString & " -sFONTPATH=c:\winnt\fonts\ "
execString = execString & " -dNOPAUSE "
execString = execString & " -q "
execString = execString & " -dBATCH "
execString = execString & " -sDEVICE=pdfwrite "
execString = execString & " -dCompatibilityLevel=1.3 "
execString = execString & " -dProcessColorModel=/DeviceCMYK "
execString = execString & " -dEmbedAllFonts=true "
execString = execString & " -dSubsetFonts=true "
execString = execString & " -dAutoRotatePages=/None "
execString = execString & " -dAutoFilterColorImages=false "
execString = execString & " -dColorImageFilter=/FlateEncode "
execString = execString & " -dEncodeColorImages=true "
execString = execString & " -dColorConversionStrategy=/LeaveColorUnchanged "
execString = execString & " -dDownsampleColorImages=false "
execString = execString & " -dDownsampleGrayImages=false "
execString = execString & " -dDownsampleMonoImages=false "
execString = execString & " -r1200 "
execString = execString & " -sOutputFile=" & """" & pdfFile & """"
execString = execString & " " & """" & psFile & """"
set objWshShell = CreateObject("WScript.Shell")
intRC=objWshShell.Run(execString,7,true)
set objWshShell = Nothing
if intRC<>0 then
wscript.echo "error: " & intRC
convertPS2PDFGhostScript=1
exit function
end if
convertPS2PDFGhostScript=0
end function
' ------------------------------------------------------------------------------
|



