VB VSPrinter importa un archivo emf desde el exterior para configurar la impresión en papel A4 y luego lo guarda como formato de archivo pdf.
Cree un PictureBox1 y haga referencia a la API en el formulario. Cuando se obtenga CDN_SELCHANGE, llame a GetFilesName para obtener el archivo seleccionado por el usuario. El código es el siguiente:
Función privada GetFilesName. (hWindow As Long) Como cadena
Atenuar hParent As Long
Atenuar lRetValue As Long
Atenuar theFileName(1024) Como byte
Para i = 0 Para UBound(theFileName)
theFileName(i) = 0
Siguiente
hParent = GetParent(hWindow)
lRetValue = SendMessage(hParent, CDM_GETFILEPATH, 1024, theFileName(0))
GetFilesName = StrConv(theFileName, vbUnicode)
Función final
El método de llamada La API GetOpenFileName es la siguiente:
p>Función pública ShowOpenFileDlg(hParent As Long) As Long
En caso de error, GoTo lblExit
STRFilter estático como cadena
strFilter = "Todas las imágenes" & Chr(0) & "*.bmp;*.dib;*.jpg;*.gif;*.wmf;*.emf;*.ico;*.cur" & Chr(0) & _
"Mapa de bits (*.bmp;*.dib)" & Chr(0) & "*.bmp;*.dib" & Chr (0) & _
"JPEG (*.jpg )" & Chr(0) & "*.jpg" & Chr(0) & _
"GIF (*.gif)" & Chr(0) & "*.gif" & Chr(0 ) & _
"Metaarchivo (*.wmf;*.emf)" & Chr(0) & "*.wmf;*.emf" & Chr( 0) & _
"Iconos (*.ico;*.cur)" & Chr(0) & "*.ico;*.cur" & Chr (0) & _
"Todos los archivos (*.*) " & Chr(0) & "*.*" & Chr(0) & Chr (0)
FrmPreview.Hide
puntero = GetProcAddr(AddressOf wndProc)
Atenuar MyID siempre
Con openfile
.lStructSize = Len(openfile)
.hwndOwner = hPadre
> .hInstance = App.hInstance
.lpstrFilter = strFilter
.lpstrCustomFilter = ""
.nMaxCustFilter = 0
.nFilterIndex = 0
.lpstrFile = nombre de archivo
.nMaxFile = 1023
.lpstrFileTitle = ""
.nMaxFileTitle = 0
.lpstrInitialDir = ""
.lpstrTitle = ""
.flags = OFN_ENABLEHOOK + OFN_HIDEREADONLY + OFN_ENABLETEMPLATE + OFN_EXPLORER
.nFileOffset = 0
.nFileExtension = 0
.lpstrDefExt = ""
.lCustData = 0
.lpfnHook = puntero
.lpTemplateName = "DLGOPENTEMP"
Terminar con
ShowOpenFileDlg = GetOpenFileName(openfile)
lblExit:
Finalizar función
Módulo de función LLAMADA en el formulario para cargar imágenes en VSPrint, el código de configuración es el siguiente:
'------------------- --Vista previa del informe
VSPrinter1.StartDoc
VSPrinter1.Zoom = 100 'La relación de visualización es 100%
VSPrinter1.RenderControl = Form1.Picture1.hWnd p> p>
'---------------------Configuración
Con VSPrinter1
'Establecer título
p>
.FontSize = 16
.FontBold = True
.TextAlign = taCenterMiddle
.Paragraph = "Impreso por : Zhang San" p>
.Footer = "Imprimir fecha: " & Formato(Fecha, "aaaa/mm/dd ") & " No." & ipage & "page,*** " & páginas & "página"
.FontBold = True
.FontSize = 10
.TextAlign = taRightTop
.Paragraph = " " p>
.FontBold = Falso
.FontSize = 10
Terminar con
VSPrinter1.EndDoc