Solución:
Aquí está la solución para Word 2013. Implica solo agregar una macro de Visual Basic a Word y algunos registros al registro.
Cree una macro global en Word 2013: abra cualquier documento en Word, abra el editor de Visual Basic integrado (Alt + F11), seleccione Normal en el panel izquierdo, haga clic en Insertar en el menú principal, luego Móduloy copie el código en el editor:
Sub ExportToPDFext()
ChangeFileOpenDirectory ThisDocument.Path
ActiveDocument.ExportAsFixedFormat _
OutputFileName:=Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".")) + "pdf", _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint, _
Range:=wdExportAllDocument, _
From:=1, _
To:=1, _
Item:=wdExportDocumentContent, _
IncludeDocProps:=True, _
KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, _
DocStructureTags:=True, _
BitmapMissingFonts:=True, _
UseISO19005_1:=False
Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub
Guarde el módulo (Ctrl + S) y cierre el editor de Visual Basic y Word.
Luego agregue las opciones del menú contextual al registro. Crea y ejecuta un archivo con la extensión .reg
:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTWord.Document.8shellSavePDFhere]
@="Save PDF here"
[HKEY_CLASSES_ROOTWord.Document.8shellSavePDFherecommand]
@=""C:\Program Files\Microsoft Office\Office15\WINWORD.EXE" /mExportToPDFext /q "%1""
[HKEY_CLASSES_ROOTWord.Document.12shellSavePDFhere]
@="Save PDF here"
[HKEY_CLASSES_ROOTWord.Document.12shellSavePDFherecommand]
@=""C:\Program Files\Microsoft Office\Office15\WINWORD.EXE" /mExportToPDFext /q "%1""
El clic derecho “Guardar PDF aquí” aparecerá en el Explorador de archivos DOC y DOCX.
Funciona de forma silenciosa y admite la conversión por lotes de varios documentos seleccionados.
Utilice la capacidad de línea de comandos de PDFCreator para convertir cualquier archivo imprimible a PDF
-
Descargue e instale PDFCreator junto con su módulo COM. El módulo COM es importante o de lo contrario el siguiente VBscript no puede comunicarse con su impresora PDF
-
Copie y pegue este código en un archivo de texto y guárdelo como
Convert2PDF.vbs
Set fso = CreateObject("Scripting.FileSystemObject") Set PDFCreator = Wscript.CreateObject("PDFCreator.clsPDFCreator", "PDFCreator_") With PDFCreator ReadyState = 0 .cStart "/NoProcessingAtStartup" .cOption("UseAutosave") = 1 .cOption("UseAutosaveDirectory") = 1 .cOption("AutosaveFormat") = 0 .cOption("AutosaveStartStandardProgram") = 0 DefaultPrinter = .cDefaultprinter .cDefaultprinter = "PDFCreator" .cClearcache .cPrinterStop = false .cOption("AutosaveDirectory") = fso.GetParentFolderName(WScript.Arguments(0)) .cOption("AutosaveFilename") = fso.GetBaseName(WScript.Arguments(0)) .cPrintfile cStr(WScript.Arguments(0)) c = 0 Do While (ReadyState = 0) and (c < 120) c = c + 1 Wscript.Sleep 250 Loop .cDefaultprinter = DefaultPrinter .cClearcache WScript.Sleep 200 .cClose End With Public Sub PDFCreator_eReady() ReadyState = 1 End Sub
-
Coloque un acceso directo a su VBscript en su shell: enviar a la carpeta para un acceso más rápido
(o)
Ejecute su VBScript desde la línea de comando si desea un control total sobre el nombre del archivo de salida.
Use este código ligeramente modificado para esto.C:Convert2PDF.vbs "C:inputfile.doc" "C:outputfolder" "outputfilename"