Access - imprimir directamente PDF

 
Vista:

imprimir directamente PDF

Publicado por MARIA (23 intervenciones) el 24/09/2004 08:09:41
Tengo un programa en access, y en el tengo unos hipervinculos q hacen referencia a unos archivos .PDF, cuando pincho en el vínculo se habre el archivo, pero hay la opcion de en vez de que se habra el archivo imprimirlo directamente??? El tema es q en vez de q se habra la ventana con el pdf q lo imprima. MUCHAS GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

imprimir directamente PDF

Publicado por Alejandro (4142 intervenciones) el 11/05/2023 21:44:13
Para imprimir directamente un archivo PDF desde un programa de Access, puedes utilizar la función `ShellExecute` para abrir el archivo PDF y luego utilizar la función `SendMessage` para enviar el comando de impresión al visor de PDF predeterminado.

Aquí tienes un ejemplo de cómo puedes lograrlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
Private Const WM_COMMAND As Long = &H111
Private Const ID_FILE_PRINT As Long = 1001
 
Sub ImprimirPDF()
    Dim filePath As String
    filePath = "ruta_del_archivo.pdf" ' Reemplaza con la ruta y nombre de tu archivo PDF
 
    ' Abre el archivo PDF
    ShellExecute Me.hwnd, "Open", filePath, "", "", 1
 
    ' Espera 1 segundo para asegurarse de que el visor de PDF se haya abierto completamente
    Application.Wait Now + TimeValue("0:00:01")
 
    ' Busca la ventana del visor de PDF
    Dim hWndPDF As Long
    hWndPDF = FindWindowEx(0&, 0&, "AcrobatSDIWindow", vbNullString)
 
    ' Envía el comando de impresión al visor de PDF
    If hWndPDF <> 0 Then
        SendMessage hWndPDF, WM_COMMAND, ID_FILE_PRINT, 0
    End If
End Sub

Asegúrate de reemplazar `"ruta_del_archivo.pdf"` con la ruta y nombre de tu archivo PDF.

Ten en cuenta que este código asume que tienes un visor de PDF instalado en tu sistema y configurado como el programa predeterminado para abrir archivos PDF. También puede haber variaciones dependiendo de la versión del visor de PDF que estés utilizando.

Es importante mencionar que este enfoque depende del visor de PDF y su capacidad para imprimir directamente sin mostrar la ventana de impresión. Algunos visores de PDF pueden no admitir esta funcionalidad o pueden requerir configuraciones adicionales.

Recuerda siempre tener en cuenta los requisitos y limitaciones del entorno de tu aplicación al implementar este código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar