** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Modos de impresión a PDF desde VBA
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoModos de impresión a PDF desde VBA

 Responder Responder
Autor
Mensaje
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 670
Enlace directo a este mensaje Tema: Modos de impresión a PDF desde VBA
    Enviado: 16/Enero/2018 a las 13:34
Hola a todos,
He estado utilizando el Addon de Adobe Acrobat en Access 2010 con bastante éxito y consiguiendo documentos PDF con filtros, paginaciones, condiciones, etc. que nunca pensé podría sacar.
El problema con el que me encuentro ahora es que estoy en otra empresa, y tienen una versión posterior de Access, la 2013 y no es compatible ya con el plugin que instala Adobe Acrobat por lo que tengo que buscar una alternativa.
¿Qué otros programas compatibles gratuitos (inicialmente) con impresión desde VBA para PDF puedo utilizar? He visto personas en el foro que han utilizado PDFtk pero quería saber si hay alguno más interesante antes de meterme con él.

Muchas gracias!
Juan Carlos
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Enlace directo a este mensaje Enviado: 16/Enero/2018 a las 13:58
¿Y que quieres conseguir? .... desde Access (versiones 2007 y posteriores) se puede imprimir directamente en PDF sin necesidad de pasos intermedios.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 670
Enlace directo a este mensaje Enviado: 16/Enero/2018 a las 14:41
Que yo sepa, sólo se puede imprimir 1 informe en PDF desde las opciones predeterminadas y no un grupo de ellos (hay que hacerlo uno a uno). Yo necesito entre otras cosas, poder imprimir de una vez un grupo de 30 o 40 objetos Informe, que me filtre por una serie de datos cada uno y que los una para obtener un sólo PDF final.
Siempre he utilizado VBA para estas acciones mediante el AcroPDDoc teniendo instalado Adobe Acrobat y ahora que ya no puedo tenerlo estoy buscando una alternativa que cubra esas necesidades.

Saludos
Arriba
acilu55 Ver desplegable
Habitual
Habitual


Unido: 27/Septiembre/2011
Estado: Sin conexión
Puntos: 100
Enlace directo a este mensaje Enviado: 16/Enero/2018 a las 15:14
puede que te sirvan las dll del pdfsharp son gratuitas y manejan stupendamente los pdf desde access: unir, superponer, firmar, etc,,
Gracias a todos de antemano
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 670
Enlace directo a este mensaje Enviado: 16/Enero/2018 a las 15:18
Gracias acilu,
Si admite también impresión a PDF me interesa. Le daré un vistazo a ver.

P.D. Por si no me he explicado bien, necesito poder imprimir un Informe de Access (de X páginas) a PDF, y luego una vez creados los archivos, hacer un merge de los mismos para generar un único PDF. Más que nada porque sólo he encontrado herramientas para hacer o impresión de un PDF ya creado desde VBA o unión de PDFs.

Gracias!


Editado por majete - 16/Enero/2018 a las 16:17
Arriba
ceac Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 05/Octubre/2007
Localización: Colombia
Estado: Sin conexión
Puntos: 1465
Enlace directo a este mensaje Enviado: 16/Enero/2018 a las 17:08
Si creas un Informe, donde insertar los informes como Subinformes, los que imprimes individuales como PDFs, al final solo imprimes uno solo PDF con varios Subinformes dentro de el.

Editado por ceac - 16/Enero/2018 a las 17:09
«Todos morimos, pero sólo unos pocos viven de verdad» Mel Gibson - Corazón Valiente

Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5183
Enlace directo a este mensaje Enviado: 16/Enero/2018 a las 17:31
Hola!

Has mirado pdfcreator?

Sub PrintAccessReportToPDF_Early()
'Author       : Ken Puls ( www.excelguru.ca)
'Macro Purpose: Print to PDF file using PDFCreator
'   (Download from http://sourceforge.net/projects/pdfcreator/ )
'   Designed for early bind, set reference to PDFCreator
    Dim pdfjob As PDFCreator.clsPDFCreator
    Dim sPDFName As String
    Dim sPDFPath As String
    Dim sPrinterName As String
    Dim sReportName As String
    Dim lPrinters As Long
    Dim lPrinterCurrent As Long
    Dim lPrinterPDF As Long
    Dim prtDefault As Printer
    Dim bRestart As Boolean
    '/// Change the report and output file name here! ///
    sReportName = "Chart of Accounts"
    sPDFName = sReportName & ".pdf"
    sPDFPath = Application.CurrentProject.Path & "\"
    'Activate error handling
    On Error GoTo EarlyExit
    'Check if PDFCreator is already running and attempt to kill the process if so
    Do
        bRestart = False
        Set pdfjob = New PDFCreator.clsPDFCreator
        If pdfjob.cStart("/NoProcessingAtStartup") = False Then
            'PDF Creator is already running. Kill the existing process
            Shell "taskkill /f /im PDFCreator.exe", vbHide
            DoEvents
            Set pdfjob = Nothing
            bRestart = True
        End If
    Loop Until bRestart = False
    'Resolve index number of printers to allow changing and preserving
    sPrinterName = Application.Printer.DeviceName
    On Error Resume Next
    For lPrinters = 0 To Application.Printers.Count
        Set Application.Printer = Application.Printers(lPrinters)
        Set prtDefault = Application.Printer
        Select Case prtDefault.DeviceName
            Case Is = sPrinterName
               lPrinterCurrent = lPrinters
            Case Is = "PDFCreator"
               lPrinterPDF = lPrinters
            Case Else
               'do nothing
        End Select
    Next lPrinters
    On Error GoTo EarlyExit
   
    'Change the default printer
    Set Application.Printer = Application.Printers(lPrinterPDF)
    Set prtDefault = Application.Printer
    'Start PFF Creator
    Set pdfjob = New PDFCreator.clsPDFCreator
    With pdfjob
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Can't initialize PDFCreator.", vbCritical + _
                    vbOKOnly, "PrtPDFCreator"
            Exit Sub
        End If
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sPDFPath
        .cOption("AutosaveFilename") = sPDFName
        .cOption("AutosaveFormat") = 0    ' 0 = PDF
        .cClearCache
    End With
    'Print the document to PDF
    DoCmd.OpenReport (sReportName)
   
    'Wait until the print job has entered the print queue
    Do Until pdfjob.cCountOfPrintjobs = 1
        DoEvents
    Loop
    pdfjob.cPrinterStop = False
    'Wait until the file shows up before closing PDF Creator
    Do
        DoEvents
    Loop Until Dir(sPDFPath & sPDFName) = sPDFName
Cleanup:
    'Release objects and terminate PDFCreator
    Set pdfjob = Nothing
    Shell "taskkill /f /im PDFCreator.exe", vbHide
    On Error GoTo 0
    
    'Reset the (original) default printer and release PDF Creator
    Set Application.Printer = Application.Printers(lPrinterCurrent)
    Set pdfjob = Nothing
    
    Exit Sub
EarlyExit:
    'Inform user of error, and go to cleanup section
    MsgBox "There was an error encountered. PDFCreator has" & vbCrLf & _
           "has been terminated. Please try again.", _
           vbCritical + vbOKOnly, "Error"
    Resume Cleanup
End Sub
Un Saludo.
Arriba
JuanW Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Mayo/2005
Localización: España
Estado: Sin conexión
Puntos: 187
Enlace directo a este mensaje Enviado: 17/Enero/2018 a las 11:27
Yo tenía el mismo problema. Me quitaron Adobe Acrobat y ya no podia usar las funciones de las DLL's.

Lo solucion que he encontrado es usar la impresora PDF995 y crear esos informes, para posteriormente unirlos en uno solo con el programa PDFCombine.exe (tambien desde VBA) que es parte del software PDF995.

Espero que te sirva.
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 670
Enlace directo a este mensaje Enviado: 17/Enero/2018 a las 15:24
Estupendo!
Veo que tengo varias opciones ya para probar. De momento he creado un código sin complementos que me permite guardar los PDFs de cada Report (Informe de access) en carpetas distintas según el tipo de Informe (Ejecutivo, Departamental, etc.) que necesite.
Voy a probar PDF995 para el tema de combinar y también el PDFcreator que parece bastante currado y os cuento en breve.

Gracias mil!
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5183
Enlace directo a este mensaje Enviado: 17/Enero/2018 a las 15:32
Hola!

De casualidad he visto en la web del maestro Emilio Sancha un ejemplo de crear PDF utilizando el PDFCreator.

Ejemplo 183


Editado por mounir - 17/Enero/2018 a las 15:32
Un Saludo.
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 670
Enlace directo a este mensaje Enviado: 17/Enero/2018 a las 15:49
Genial!
Voy a verlo...
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 670
Enlace directo a este mensaje Enviado: 08/Marzo/2018 a las 11:55
Finalmente después de casi 2 meses de trabajo, he logrado trabajar un código con el programa pdf995 para que me una varios PDF tal y como yo necesito (con filtros, paginación, etc.).
El problema es que al crear los PDFs con "DoCmd..." me incrusta las fuentes que utilizo en cada uno de los PDFs independientes y el tamaño de los ficheros finales es excesivamente grande como para que me lo validen, así que casi vuelvo a estar en el punto de partida.

Cerramos el hilo y abro otro con ese problema.
Gracias
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable