Guardar un Doc Word en PDF con diálogo Save As [SOLUCIONADO]

Conversión de Documentos de Word a PDF en Visual Basic

En el mundo de la programación y el desarrollo de software, es habitual encontrarse con la necesidad de convertir archivos de Word (.doc o .docx) a formato PDF. Esta tarea puede ser especialmente relevante en aplicaciones de escritorio que se desarrollan con Visual Basic y que requieren de la integración con programas de procesamiento de texto, como Microsoft Word. A continuación, presentamos un enfoque detallado sobre cómo utilizar el cuadro de diálogo ‘Guardar como’ o ‘Save As’ en Visual Basic para realizar esta conversión de manera efectiva.

Requisitos Previos para la Conversión de Archivos

Antes de comenzar, asegúrate de que tienes instalada la versión adecuada de Microsoft Office Interop Word en tu entorno de desarrollo. Esta librería permite la interacción entre las aplicaciones desarrolladas en Visual Basic y los documentos de Word. Si no está instalada, puedes añadirla a través del Administrador de paquetes NuGet en Visual Studio o descargarla e instalarla manualmente.

Implementación del Código para Convertir el Documento

Para guardar un documento de Word como PDF, necesitarás hacer referencia al espacio de nombres Microsoft.Office.Interop.Word en tu proyecto. De esta forma podrás acceder a las clases y métodos necesarios para manipular los documentos de Word. A continuación, veremos un ejemplo práctico:


Imports Microsoft.Office.Interop

Public Sub ConvertWordToPDF(ByVal wordFilename As String, ByVal pdfFilename As String)
    ' Crear la aplicación de Word y el documento
    Dim appWord As New Word.Application
    Dim wordDocument As Word.Document = appWord.Documents.Open(wordFilename)

    ' Parámetros para el guardado en formato PDF
    Dim paramExportFormat As Word.WdExportFormat = Word.WdExportFormat.wdExportFormatPDF
    Dim paramOpenAfterExport As Boolean = False
    Dim paramExportOptimizeFor As Word.WdExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint
    Dim paramExportRange As Word.WdExportRange = Word.WdExportRange.wdExportAllDocument
    Dim paramStartPage As Integer = 0
    Dim paramEndPage As Integer = 0
    Dim paramItem As Word.WdExportItem = Word.WdExportItem.wdExportDocumentContent
    Dim paramIncludeDocProps As Boolean = True
    Dim paramKeepIRM As Boolean = True
    Dim paramCreateBookmarks As Word.WdExportCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks
    Dim paramDocStructureTags As Boolean = True
    Dim paramBitmapMissingFonts As Boolean = True
    Dim paramUseISO19005_1 As Boolean = False

    ' Exporta el documento a PDF
    wordDocument.ExportAsFixedFormat(pdfFilename, paramExportFormat, paramOpenAfterExport,
                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                     paramEndPage, paramItem, paramIncludeDocProps,
                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                     paramBitmapMissingFonts, paramUseISO19005_1)

    ' Cerrar el documento sin guardar cambios
    wordDocument.Close(False)
    ' Cerrar la aplicación de Word
    appWord.Quit()
End Sub

Este código define un método llamado ConvertWordToPDF, el cual acepta dos argumentos: el nombre del archivo de Word a convertir y el nombre del archivo PDF resultante. Dentro del método, se crea una instancia de la aplicación Word y se abre el documento especificado. Luego se definen parámetros importantes para la exportación del documento y su conversión a PDF. Finalmente, se llama al método ExportAsFixedFormat para realizar la conversión.

Integrando el Cuadro de Diálogo ‘Guardar Como’

Integrar el cuadro de diálogo ‘Guardar Como’ proporciona a los usuarios una mayor flexibilidad para seleccionar la ubicación y el nombre del archivo PDF. Para esto, se utiliza el objeto SaveFileDialog, el cual forma parte del espacio de nombres System.Windows.Forms. A continuación se muestra cómo integrar este cuadro de diálogo en tu aplicación:


Imports System.Windows.Forms

Public Sub SaveDocumentAsPDFUsingDialog(ByVal wordFilename As String)
    ' Crear un cuadro de diálogo para guardar archivos
    Using saveFileDialog As New SaveFileDialog()
        saveFileDialog.Filter = "PDF files (*.pdf)|*.pdf"
        saveFileDialog.DefaultExt = "pdf"
        saveFileDialog.AddExtension = True

        If saveFileDialog.ShowDialog() = DialogResult.OK Then
            ' Utiliza la ruta seleccionada para guardar el documento en formato PDF
            ConvertWordToPDF(wordFilename, saveFileDialog.FileName)
        End If
    End Using
End Sub

El método SaveDocumentAsPDFUsingDialog presenta un cuadro de diálogo para que el usuario pueda seleccionar dónde quiere guardar el archivo PDF. La extensión por defecto se establece como PDF y, si el usuario confirma la selección, se llama al método ConvertWordToPDF con la ruta de archivo proporcionada por el usuario.

Aspectos Adicionales a Considerar

Es importante manejar excepciones y errores que puedan surgir durante la ejecución del código. Por ejemplo, el programa deberá manejar situaciones en las que el archivo de Word no existe o no es accesible. También es aconsejable agregar una lógica para confirmar que Microsoft Word está instalado en el sistema del usuario antes de intentar convertir documentos.

Además, debes considerar la posibilidad de agregar opciones de personalización para los usuarios, como la elección de si se desea que el documento PDF se abra automáticamente tras la conversión o si quieren optimizar el archivo para pantallas en lugar de impresión. Estas y otras opciones pueden incorporarse modificando los parámetros del método ExportAsFixedFormat.

Finalizando la Implementación

Convertir documentos de Word a PDF utilizando el cuadro de diálogo ‘Guardar Como’ en Visual Basic es una tarea que, a pesar de parecer compleja en un primer momento, puede ser implementada de manera eficiente siguiendo los pasos descritos anteriormente. Este proceso mejora la interoperabilidad de tus aplicaciones y te permite ofrecer una funcionalidad ampliamente utilizada en aplicaciones ofimáticas y empresariales. La clave está en familiarizarse con las librerías de interop de Office y entender los parámetros y métodos que estas ponen a disposición para trabajar con documentos de Word.

Recuerda que es fundamental probar exhaustivamente tu aplicación para asegurarte de que la conversión de documentos se realiza con éxito en diferentes escenarios y ante distintos tipos de documentos de Word. La robustez y la confiabilidad son cualidades imprescindibles en cualquier herramienta destinada a la manipulación de archivos críticos como son los documentos de texto.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad