Exportar archivo .doc a .pdf

Iniciado por ssccaann43 ©, 22 Octubre 2008, 20:56 PM

0 Miembros y 1 Visitante están viendo este tema.

ssccaann43 ©

Cita de: susanalic en 23 Octubre 2008, 15:37 PM
Cita de: ssccaann43 en 22 Octubre 2008, 21:06 PM
Cita de: susanalic en 22 Octubre 2008, 21:04 PM
esta es la sección de programación en vb. Quieres hacerlo en vb ?

Si la respuesta es no, hay decenas de programas para eso. Incluso word 2007 lleva un plug-in (hay que bajarlo aparte) para lo mismo.

jajaja... Obvio...  ;D

No había visto tu número de mensajes, pensé en novato sección equivocada, jeje.

Pues si no vas a programar un parsing de un tipo de archivo y generador del otro tipo, no te quedará más remedio que recurrir a terceros: hay controles active x dll's para convertir a pdf, los de skysoft tienen, igual hasta hay alguno gratuito.


Gracias por tú sinceridad. Jajaja... Bueno susana gracias por tu respuesta mi linda... La verdad no me quedo otra que recurrir a terceros, cuando termine de armar lo que necesito posteo un ejemplo para que otra persona lo utilice y le sea funcional... Un abrazo.
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

Angeldj27

#11
Cita de: ssccaann43 en 22 Octubre 2008, 21:18 PM
Ok, el archivo lo exporto desde un reporte de crystal, usando el objeto CrystalReport, lo que pasa es q este objeto no me deja exportarlo a pdf directamente. Puedo exportarlo a html, .doc, .rtf, excel, txt. Pero a pdf no. Por esa razón, pues exporto el archivo a alguno de esos que coloco alli, y luego con alguna clase, no se, pues lo llevo a pdf.

Hey una cosita que version de cristal utilizas porque con la que yo trabajo la exporta bien al PDF sin tirar una linea de codigo


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

ssccaann43 ©

#12
Ok, expondre acá lo que hice para resolver mi problema. De manera tal que puedan ayudarse aquellos que buscan una solución al problema que yo tuve.

Inicialmente deben bajarse esta aplicación: Adobe Acrobat Distiller 5.0

Luego de instalar dicha aplicación accesamos a Inicio -> Impresoras y Faxes.

Seleccionamos la impresora Acrobat Distiller, le damos click secundario -> Propiedades.

Luego hacemos click en Preferencias de Impresión y seleccionamos la pestaña llamada Adobe PDF Settings.

Esta Opción tiene que aparecer TILDALA o SELECCIONADA: Do not send fonts to Distiller.

Pues tenemos que DESTILDARLA.

Aceptamos y listo.

Luego, aca les dejo el codigo fuente usado...

Esto en un Módulo Bas:

Código (vb) [Seleccionar]

Option Explicit

Function DOC2PDF(sDocFile, sPDFFile)
On Error GoTo err:
Dim FSO

Dim objWord
Dim objWordDoc
Dim objWordDocs
Dim sPrevPrinter  As String
Dim objDistiller
Dim sTempFile, sFolder

Set objDistiller = CreateObject("PDFDistiller.PDFDistiller")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
Set objWordDocs = objWord.Documents

sTempFile = App.Path & "\Temp"
sDocFile = FSO.GetAbsolutePathName(sDocFile)
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

sPrevPrinter = objWord.ActivePrinter

objWord.ActivePrinter = "Acrobat Distiller"

Set objWordDoc = objWordDocs.Open(sDocFile)

objWord.ActiveDocument.PrintOut False, , , sTempFile
objWordDoc.Close
objWord.ActivePrinter = sPrevPrinter
objWord.Quit
Set objWord = Nothing

objDistiller.FileToPDF sTempFile, sPDFFile, "Print"
Set objDistiller = Nothing
FSO.DeleteFile (sTempFile)

Set FSO = Nothing
MsgBox "Conversión exitosa", vbInformation, "Atención"
Exit Function

err:
MsgBox err.Description, vbExclamation
End Function

Public Function CambiarImpresora(Nombre As String) As Boolean
Dim Impresora As Printer

For Each Impresora In Printers
    If UCase(Impresora.DeviceName) = UCase(Nombre) Then
        Set Printer = Impresora
        CambiarImpresora = True
    End If
Next
CambiarImpresora = False
End Function



En un formulario agregamos un Botón llamado: Command1
Codigo del Form:

Código (vb) [Seleccionar]

Option Explicit
Private Sub Command1_Click()
Dim ImpresoraPredeterminada As String
ImpresoraPredeterminada = Printer.DeviceName
CambiarImpresora ("Acrobat Distiller")
Call DOC2PDF(App.Path & "\A.doc", App.Path & "\A.pdf")
CambiarImpresora Printer.DeviceName
End Sub

Private Sub Form_Load()
Command1.Caption = "Convertir a PDF"
End Sub



Aquí adjunto el SOURCE
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

Angeldj27

Te digo de nuevo con la version 8.5 o la 10 de cristal no tienes que hacer tantas cosas porque el trae eso ya configurado para exportar a .pdf

Saludos...


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

ssccaann43 ©

Cita de: misterpc27 en 23 Octubre 2008, 21:26 PM
Te digo de nuevo con la version 8.5 o la 10 de cristal no tienes que hacer tantas cosas porque el trae eso ya configurado para exportar a .pdf

Saludos...

Gracias, pero lo se... Entiende, debo exportarlo en .doc y despues hacer desde otra pc la conversión, pero eso lo hará otro usuario... Sino creeme que ya lo hubiese resuelto... Nuevamente gracias...
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"