Word y PowerPoint a PDF
Ir a la navegación
Ir a la búsqueda
Este artículo presenta un método para convertir documentos Word a PDF de forma facil.
Yo modifiqué el codigo ligeramente para que no pregunte nada y sea mas automático.
Para usarlo basta con tenerlo en el Escritorio y arrastrar un documento Word y soltarlo sobre el icono del programa.
También cree una variante para PowerPoint.
'************************************************ ' ' DOC2PDF.VBS Microsoft Scripting Host Script (Requires Version 5.6 or newer) ' -------------------------------------------------------------------------------- ' ' Author: Michael Suodenjoki ' Created: 2007.07.07 ' ' This script can create a PDF file from a Word document provided you're using ' Word 2007 and have the 'Office Add-in: Save As PDF' installed. ' ' Constants Const WdDoNotSaveChanges = 0 ' see WdSaveFormat enumeration constants: ' http://msdn2.microsoft.com/en-us/library/bb238158.aspx Const wdFormatPDF = 17 ' PDF format. Const wdFormatXPS = 18 ' XPS format. ' Global variables Dim arguments Set arguments = WScript.Arguments ' *********************************************** ' ECHOLOGO ' ' Outputs the logo information. ' Function EchoLogo() End Function ' *********************************************** ' ECHOUSAGE ' ' Outputs the usage information. ' Function EchoUsage() If arguments.Count=0 Or arguments.Named.Exists("help") Or _ arguments.Named.Exists("h") _ Then WScript.Echo "Generates a PDF from a Word document file using Word 2007." WScript.Echo "" WScript.Echo "Usage: doc2pdf.vbs <options> <doc-file> [/o:<pdf-file>]" WScript.Echo "" WScript.Echo "Available Options:" WScript.Echo "" WScript.Echo " /nologo - Specifies that the logo shouldn't be displayed" WScript.Echo " /help - Specifies that this usage/help information " + _ "should be displayed." WScript.Echo " /debug - Specifies that debug output should be displayed." WScript.Echo "" WScript.Echo "Parameters:" WScript.Echo "" WScript.Echo " /o:<pdf-file> Optionally specification of output file (PDF)." WScript.Echo "" End If End Function ' *********************************************** ' CHECKARGS ' ' Makes some preliminary checks of the arguments. ' Quits the application is any problem is found. ' Function CheckArgs() ' Check that <doc-file> is specified If arguments.Unnamed.Count <> 1 Then WScript.Echo "Error: Obligatory <doc-file> parameter missing!" WScript.Quit 1 End If bShowDebug = arguments.Named.Exists("debug") Or arguments.Named.Exists("d") End Function ' *********************************************** ' DOC2PDF ' ' Converts a Word document to PDF using Word 2007. ' ' Input: ' sDocFile - Full path to Word document. ' sPDFFile - Optional full path to output file. ' ' If not specified the output PDF file ' will be the same as the sDocFile except ' file extension will be .pdf. ' Function DOC2PDF( sDocFile, sPDFFile ) Dim fso ' As FileSystemObject Dim wdo ' As PowerPoint.Application Dim wdoc ' As PowerPoint.Presentation Dim wdocs ' As PowerPoint.Presentations Dim sPrevPrinter ' As String Set fso = CreateObject("Scripting.FileSystemObject") Set wdo = CreateObject("PowerPoint.Application") Set wdocs = wdo.Presentations sDocFile = fso.GetAbsolutePathName(sDocFile) ' Debug outputs... If bShowDebug Then WScript.Echo "Doc file = '" + sDocFile + "'" WScript.Echo "PDF file = '" + sPDFFile + "'" End If sFolder = fso.GetParentFolderName(sDocFile) If Len(sPDFFile)=0 Then sPDFFile = fso.GetBaseName(sDocFile) + ".pdf" End If If Len(fso.GetParentFolderName(sPDFFile))=0 Then sPDFFile = sFolder + "\" + sPDFFile End If ' Enable this line if you want to disable autoexecute macros ' wdo.WordBasic.DisableAutoMacros ' Open the Word document Set wdoc = wdocs.Open(sDocFile) ' Let Word document save as PDF ' - for documentation of SaveAs() method, ' see http://msdn.microsoft.com/en-us/library/bb251061%28v=office.12%29.aspx wdoc.SaveAs sPDFFile, 32 wdoc.Close wdo.Quit Set wdo = Nothing Set fso = Nothing End Function ' *** MAIN ************************************** Call EchoLogo() Call EchoUsage() Call CheckArgs() Call DOC2PDF( arguments.Unnamed.Item(0), arguments.Named.Item("o") ) Set arguments = Nothing
'************************************************ ' ' DOC2PDF.VBS Microsoft Scripting Host Script (Requires Version 5.6 or newer) ' -------------------------------------------------------------------------------- ' ' Author: Michael Suodenjoki ' Created: 2007.07.07 ' ' This script can create a PDF file from a Word document provided you're using ' Word 2007 and have the 'Office Add-in: Save As PDF' installed. ' ' Constants Const WdDoNotSaveChanges = 0 ' see WdSaveFormat enumeration constants: ' http://msdn2.microsoft.com/en-us/library/bb238158.aspx Const wdFormatPDF = 17 ' PDF format. Const wdFormatXPS = 18 ' XPS format. ' Global variables Dim arguments Set arguments = WScript.Arguments ' *********************************************** ' ECHOLOGO ' ' Outputs the logo information. ' Function EchoLogo() End Function ' *********************************************** ' ECHOUSAGE ' ' Outputs the usage information. ' Function EchoUsage() If arguments.Count=0 Or arguments.Named.Exists("help") Or _ arguments.Named.Exists("h") _ Then WScript.Echo "Generates a PDF from a Word document file using Word 2007." WScript.Echo "" WScript.Echo "Usage: doc2pdf.vbs <options> <doc-file> [/o:<pdf-file>]" WScript.Echo "" WScript.Echo "Available Options:" WScript.Echo "" WScript.Echo " /nologo - Specifies that the logo shouldn't be displayed" WScript.Echo " /help - Specifies that this usage/help information " + _ "should be displayed." WScript.Echo " /debug - Specifies that debug output should be displayed." WScript.Echo "" WScript.Echo "Parameters:" WScript.Echo "" WScript.Echo " /o:<pdf-file> Optionally specification of output file (PDF)." WScript.Echo "" End If End Function ' *********************************************** ' CHECKARGS ' ' Makes some preliminary checks of the arguments. ' Quits the application is any problem is found. ' Function CheckArgs() ' Check that <doc-file> is specified If arguments.Unnamed.Count <> 1 Then WScript.Echo "Error: Obligatory <doc-file> parameter missing!" WScript.Quit 1 End If bShowDebug = arguments.Named.Exists("debug") Or arguments.Named.Exists("d") End Function ' *********************************************** ' DOC2PDF ' ' Converts a Word document to PDF using Word 2007. ' ' Input: ' sDocFile - Full path to Word document. ' sPDFFile - Optional full path to output file. ' ' If not specified the output PDF file ' will be the same as the sDocFile except ' file extension will be .pdf. ' Function DOC2PDF( sDocFile, sPDFFile ) Dim fso ' As FileSystemObject Dim wdo ' As Word.Application Dim wdoc ' As Word.Document Dim wdocs ' As Word.Documents Dim sPrevPrinter ' As String Set fso = CreateObject("Scripting.FileSystemObject") Set wdo = CreateObject("Word.Application") Set wdocs = wdo.Documents sDocFile = fso.GetAbsolutePathName(sDocFile) ' Debug outputs... If bShowDebug Then WScript.Echo "Doc file = '" + sDocFile + "'" WScript.Echo "PDF file = '" + sPDFFile + "'" End If sFolder = fso.GetParentFolderName(sDocFile) If Len(sPDFFile)=0 Then sPDFFile = fso.GetBaseName(sDocFile) + ".pdf" End If If Len(fso.GetParentFolderName(sPDFFile))=0 Then sPDFFile = sFolder + "\" + sPDFFile End If ' Enable this line if you want to disable autoexecute macros ' wdo.WordBasic.DisableAutoMacros ' Open the Word document Set wdoc = wdocs.Open(sDocFile) ' Let Word document save as PDF ' - for documentation of SaveAs() method, ' see http://msdn2.microsoft.com/en-us/library/bb221597.aspx wdoc.SaveAs sPDFFile, wdFormatPDF wdoc.Close WdDoNotSaveChanges wdo.Quit WdDoNotSaveChanges Set wdo = Nothing Set fso = Nothing End Function ' *** MAIN ************************************** Call EchoLogo() Call EchoUsage() Call CheckArgs() Call DOC2PDF( arguments.Unnamed.Item(0), arguments.Named.Item("o") ) Set arguments = Nothing