Saltar al contenido

Importar o imprimir directamente pdf junto a datos.


jog_rs

Recommended Posts

publicado

Buenas a todos y gracias de antemano, hacia tiempo que no pasaba por aqui.

Resulta que tengo una macro que genera unos datos e importa un PDF con OLEObject, para que aprovechando la impresion de doble cara de la impresora, imprimir por una cara los datos y por la otra el PDF insertado, pues bien, funciona a la perfeccion pero tengo un gran problema con la calidad de la importacion ya que baja considerablemente y apenas son legibles los textos mas pequeños cuando lo imprimo (si imprimo directamente el PDF se ve perfecto). Ante esta situacion cambie de estrategia y cree (con ayuda de algun codigo encontrado por hay) una macro para imprimir el PDF directamente, pero me es imposible hacer la impresion a doble cara, por un lado los datos de la hoja y por otro el pdf.

Hay alguna manera de aumentar la calidad de la importacion del PDF? Es posible controlar la impresion para imprimir el PDF directo en la segunda cara del folio?

Espero haberme expresado bien.

Aqui el codigo para impotar el pdf correspondiente :

'insertamos la TNC en PDF

FicheroPDF = "D:\public\TNC\" & Nmaquina & ".pdf"

hojaficha.Cells(33, 1).Select

ActiveSheet.OLEObjects.Add fileName:=FicheroPDF

ActiveSheet.OLEObjects(1).Select

Selection.ShapeRange.Width = 750

Aqui el codigo para imprimir el pdf correspondiente directamente:

Public Enum actionType

openfile

PrintFile

End Enum

Public Const SW_SHOWNORMAL As Long = 1

Public 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

Function ExecuteFile(fileName As String, action As actionType)

' action can be either "Openfile" or "Printfile".

Dim sAction As String

Select Case action

Case 0 ' openfile

sAction = "Open"

Case 1 ' printfile

sAction = "Print"

End Select

ShellExecute 0, sAction, fileName, vbNullString, "", SW_SHOWNORMAL

End Function

Public Sub Imp_Ficha()

'

' Imp_Ficha Macro

'

'

Set hojaficha = Sheets("Nficha")

hojaficha.Activate

Range("A2:I59").Select

'Range("A30").Activate

Selection.PrintOut

ExecuteFile "D:\public\TNC\" & Nmaquina & ".pdf", PrintFile

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.