https://1drv.ms/v/c/bd0cf3d17da31758/EXmcp98QIuBGqO8MdoVUvysBtN59hK8HEksRfEPBLqlOxg?e=Wuhfu6
Gracias. Saludos
Ruben Dario Fernandez
FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
¿En qué carpeta quieres GUARDAR EL NADA.PDF?
Regards, saludos.
#include "FiveWin.ch"
#include "Ribbon.ch"
function Main()
local n, oWin, oFont
DEFINE DIALOG oDlg SIZE 1100,800
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
@ 2, 10 BUTTON oBtn PROMPT "Imprime varias hojas" OF oDlg ACTION Imprime() FONT oFont
@ 4, 10 BUTTON oBtn PROMPT "Imprime pocas hojas" OF oDlg ACTION Imprime2() FONT oFont
ACTIVATE DIALOG oDlg
oFont:End()
return nil
FUNCTION IMPRIME()
PRINT oPrn NAME "muchas" PREVIEW MODAL
oPrn:lPrvModal:=.t.
oPrn:SetPage(1)
oPrn:SetPortrait()
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RETURN nil
FUNCTION IMPRIME2()
PRINT oPrn NAME "pocas" PREVIEW MODAL
oPrn:lPrvModal:=.t.
oPrn:SetPage(1)
oPrn:SetPortrait()
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RETURN nil// C:\FWH\SAMPLES\RUBEN02.PRG
#include "FiveWin.ch"
FUNCTION Main()
LOCAL n, oWin, oFont, oDlg, oBtn
IF FILE( "MUCHAS.PDF" )
DELETEFILE( "MUCHAS.PDF" )
ENDIF
IF FILE( "POCAS.PDF" )
DELETEFILE( "POCAS.PDF" )
ENDIF
IF FILE( "NADA.PDF" )
DELETEFILE( "NADA.PDF" )
ENDIF
IF FILE( "VARIAS.PDF" )
DELETEFILE( "VARIAS.PDF" )
ENDIF
DEFINE DIALOG oDlg SIZE 800, 800
DEFINE FONT oFont NAME "TAHOMA" SIZE 0, - 14
@ 2, 10 BUTTON oBtn PROMPT "Imprime varias hojas" OF oDlg ;
ACTION Imprime() FONT oFont
@ 4, 10 BUTTON oBtn PROMPT "Imprime pocas hojas" OF oDlg ;
ACTION Imprime2() FONT oFont
@ 6, 10 BUTTON oBtn PROMPT "Imprime Varias Directo" OF oDlg ;
ACTION Generar_PDF() FONT oFont
ACTIVATE DIALOG oDlg
oFont:End()
RETURN NIL
FUNCTION IMPRIME()
LOCAL oPrn
PRINT oPrn NAME "Muchas" PREVIEW MODAL
oPrn:lPrvModal := .T.
oPrn:SetPage( 1 )
oPrn:SetPortrait()
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RETURN NIL
FUNCTION IMPRIME2()
LOCAL oPrn2
PRINT oPrn2 NAME "pocas" PREVIEW MODAL
oPrn2:lPrvModal := .T.
oPrn2:SetPage( 1 )
oPrn2:SetPortrait()
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RETURN NIL
FUNCTION Generar_PDF()
LOCAL cText := MEMOREAD( "C:\FWH1905\samples\RUBEN.txt" )
LOCAL oPrn3, oFont
PRINT oPrn3 FILE "Varias.pdf" // en silencio sin preview
DEFINE FONT oFont NAME "COURIER NEW" SIZE 0,-28 OF oPrn3
oPrn3:lPrvModal := .T.
oPrn3:SetPage( 1 )
oPrn3:SetPortrait()
PAGE
@ 1,1 PRINT TO oPrn3 TEXT @cText SIZE 7,10 INCHES FONT oFont
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RELEASE FONT oFont
IF FILE( "C:\FWH1905\SAMPLES\VARIAS.PDF" )
HTMLVIEW( "C:\FWH1905\SAMPLES\Varias.pdf" )
ENDIF
RETURN NILGracias Joao.
Tu ejemplo funciona, pero no es como lo planteo.
Desde el Preview doy al boton de Acrobat para generar el pdf y luegoo quiero visualizarlo, esa es la cuestion.
Mi ejemplo te funciona bien?
Gracias, Saludos
Ruben Dario Fernandez
// C:\FWH\SAMPLES\RUBEN03.PRG
#include "FiveWin.ch"
MEMVAR WNOMBREARQPDF
FUNCTION Main()
LOCAL n, oWin, oFont, oDlg, oBtn
IF FILE( "MUCHAS.PDF" )
DELETEFILE( "MUCHAS.PDF" )
ENDIF
IF FILE( "POCAS.PDF" )
DELETEFILE( "POCAS.PDF" )
ENDIF
IF FILE( "NADA.PDF" )
DELETEFILE( "NADA.PDF" )
ENDIF
IF FILE( "VARIAS.PDF" )
DELETEFILE( "VARIAS.PDF" )
ENDIF
DEFINE DIALOG oDlg SIZE 800, 800
DEFINE FONT oFont NAME "TAHOMA" SIZE 0, - 14
@ 2, 10 BUTTON oBtn PROMPT "Imprime varias hojas" OF oDlg ;
ACTION Imprime() FONT oFont WHEN( .F. )
@ 4, 10 BUTTON oBtn PROMPT "Imprime pocas hojas" OF oDlg ;
ACTION Imprime2() FONT oFont WHEN( .F. )
@ 6, 10 BUTTON oBtn PROMPT "Imprime Varias Directo" OF oDlg FONT oFont ;
ACTION( MsgRun( "GENERANDO ARCHIVO *.PDF... ", ;
"Por Favor, Aguarde... ", ;
{ || WinExec( Generar_PDF() ), 3 } ) )
ACTIVATE DIALOG oDlg
oFont:End()
RETURN NIL
FUNCTION IMPRIME()
LOCAL oPrn
PRINT oPrn NAME "Muchas" PREVIEW MODAL
oPrn:lPrvModal := .T.
oPrn:SetPage( 1 )
oPrn:SetPortrait()
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RETURN NIL
FUNCTION IMPRIME2()
LOCAL oPrn2
PRINT oPrn2 NAME "pocas" PREVIEW MODAL
oPrn2:lPrvModal := .T.
oPrn2:SetPage( 1 )
oPrn2:SetPortrait()
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RETURN NIL
FUNCTION Generar_PDF()
// LOCAL cText := MEMOREAD( "C:\TMP\samples\RUBEN.txt" )
LOCAL oPrn3, oFont
LOCAL cText := "Este é um texto de teste para impressão Para Ruben"
PRINT oPrn3 FILE "Varias.pdf" // en silencio sin preview
DEFINE FONT oFont NAME "COURIER NEW" SIZE 0,-18 OF oPrn3
oPrn3:lPrvModal := .T.
oPrn3:SetPage( 1 )
oPrn3:SetPortrait()
PAGE
oPrn3:CmSay ( 1, 1, cText, oFont )
ENDPAGE
PAGE
oPrn3:CmSay ( 1, 1, cText, oFont )
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
PAGE
ENDPAGE
ENDPRINT
RELEASE FONT oFont
/*
IF FILE( "C:\FWH1905\SAMPLES\VARIAS.PDF" )
HTMLVIEW( "C:\TMP\SAMPLES\Varias.pdf" )
ENDIF
*/
IF FILE( "VARIAS.PDF" )
WNOMBREARQPDF := "VARIAS.pdf"
// ShellExecute( 0, "Print", WNOMBREARQPDF,,, 3 ) // Imprime
ShellExecute( 0, "Open", WNOMBREARQPDF,,, 3 ) // Abrir ADOBE
ENDIF
RETURN NIL
// FIN / ENDEstimado Joao, gracias, te estoy molestando demasiado.
Tu ejemplo funciona bien, pero no es lo que quiero.
Quiero hacer lo mismo que ves en el video, cuando doy imprimir 3 paginas.
No modificar nada.
Porque funciona imprimiendo 3 páginas y 30 no funciona? Hay algo que anda mal en FWH al crear el PDF grande.
Saludos
Ruben Dario Fernandez.
En cual versión del FWH no funciona?
Regards, saludos.
En la 2501, 2410
Gracias
Ruben, intenta hacer tu mismo ejemplo poniendo algo, lo que sea ( aunque solo sea un caracter en cada pagina ) y me dices si sigues teniendo el mismo problema o no
// C:\FWH\SAMPLES\RUBEN04.PRG
#include "FiveWin.ch"
#Define PAD_LEFT 0
#Define PAD_RIGHT 1
#Define PAD_CENTER 2
MEMVAR WNOMBREARQPDF
FUNCTION Main()
LOCAL n, oWin, oFont, oDlg, oBtn, DeDondeRuben
IF FILE( "MUCHAS.PDF" )
DELETEFILE( "MUCHAS.PDF" )
ENDIF
IF FILE( "POCAS.PDF" )
DELETEFILE( "POCAS.PDF" )
ENDIF
IF FILE( "NADA.PDF" )
DELETEFILE( "NADA.PDF" )
ENDIF
IF FILE( "VARIAS.PDF" )
DELETEFILE( "VARIAS.PDF" )
ENDIF
DEFINE FONT oFont NAME "TAHOMA" SIZE 0, - 14 BOLD
DEFINE DIALOG oDlg SIZE 500, 400 FONT oFont
oDlg:lHelpIcon := .F.
@ 2, 10 BUTTON oBtn PROMPT "Directo en la impresora " OF oDlg ;
ACTION Generar_PDF( DeDondeRuben := "DIRECTONAIMP" )
@ 4, 10 BUTTON oBtn PROMPT " Con Preview de FWH " OF oDlg ;
ACTION Generar_PDF( DeDondeRuben := "CONPREVIEWFIVE" )
@ 6, 10 BUTTON oBtn PROMPT " Con Preview en PDF " OF oDlg ;
ACTION Generar_PDF( DeDondeRuben := "CONPREVIEWPDF" )
@ 8, 10 BUTTON oBtn PROMPT " Salida del Sistema " OF oDlg ;
ACTION( oDlg:End() ) CANCEL
ACTIVATE DIALOG oDlg CENTERED
oFont:End()
RETURN NIL
FUNCTION Generar_PDF( DeDondeRuben )
LOCAL oPrn, oFont, nPagina
LOCAL cText := "Este é um texto de teste para impressão Para Ruben"
nPagina := 1
IF DeDondeRuben = "DIRECTONAIMP" // DIRECTO / IMPRESSORA
PRINT oPrn NAME "RUBEN"
ELSEIF DeDondeRuben = "CONPREVIEWFIVE" // PREVIEW / FWH
PRINT oPrn NAME "RUBEN" PREVIEW MODAL
ELSEIF DeDondeRuben = "CONPREVIEWPDF" // GENERAR ARCHIVO PDF.
PRINT oPrn FILE "RUBEN.pdf" // en silencio sin preview
ENDIF
DEFINE FONT oFont NAME "COURIER NEW" SIZE 0,-18 OF oPrn
oPrn:lPrvModal := .T.
oPrn:SetPage( 1 )
oPrn:SetPortrait()
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
PAGE // 10
oPrn:cmSay( 1, 18, ;
OemToAnsi( "P gina: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:CmSay ( 05, 1, cText, oFont )
++nPagina
ENDPAGE
ENDPRINT
RELEASE FONT oFont
IF DeDondeRuben = "CONPREVIEWPDF"
// FWSavePreviewToPDF( oPrn, "RUBEN.PDF", .F. )
// Para visualizar el PDF. HTMLPDF.PRG
// HTMLVIEW( "RUBEN.PDF" )
WNOMBREARQPDF := cShortName( "RUBEN.pdf" )
// ShellExecute( 0, "Print", WNOMBREARQPDF,,, 3 ) // Imprime
ShellExecute( 0, "Open", WNOMBREARQPDF,,, 3 ) // Abrir ADOBE
ENDIF
RETURN NIL
/*
* SPN.PRG
*
* cShortName() - FilePath Long to Short (GetShortPathNameA())
*
* Soporte a Funciones del Api de Windows
*
* Andrade A. Daniel - 2002
* Rosario, Argentina
*
* Libre Distribución
*/
/*
* cShortName()
*/
FUNCTION cShortName( cLong )
LOCAL cShort := Space( 164 ) + Chr( 0 )
LOCAL nBuffer := 164
LOCAL nLen
nLen := GetSPName( cLong, @cShort, nBuffer )
cShort := Left( cShort, nLen )
RETURN( cShort )
DLL32 STATIC FUNCTION GetSPName( lpszLongPath AS STRING, lpszShortPath AS STRING, lBuffer AS LONG ) ;
AS LONG PASCAL FROM "GetShortPathNameA" LIB "kernel32"
// FIN / END kapiabafwh@gmail.comHola Joao, disculpa tantas molestias.
Pasa lo mismo.
1- Directo a la impresora - ME PIDE UN NOMBRE Y GENERA PDF PERO NO SALE POR IMPRESORA
2- Con Preview de FWH - No encuenta el pdf.
3- Con Preview PDF - No encuentra el PDF
En 2 y 3 despues que salgo de la aplicacion el PDF esta, pero al momento de visualizarlo no lo encuenta
Gracias a ti Joao y al SR. Navarro infinitas
Ruben Dario Fernandez
Sr. Navarro, si sigo con el mismo problema.
Muchas gracias y disculpe el; incoveniente.
Saludos
Ruben Dario Fernandez
Hola:
Solo para saber con la version 2501 y 2504 el codigo que puse funciona bien ?
(Dar en el boton de Acrobat y ver el PDF)
Muchas gracias.
Saludos
Ruben Dario Fernandez
D.Fernandez wrote: Hola Joao, disculpa tantas molestias.Ruben, definitivamente tienes un problema con tu versión de FWH, si tienes FWH19.05 veras que funciona a 1000 maravillas. Quizás necesites la última versión de FWH15.01 creo... Sería interesante si el maestro Navarro probara este ejemplo que publiqué para ver la reacción con la versión actual de FWH.
Pasa lo mismo.
1- Directo a la impresora - ME PIDE UN NOMBRE Y GENERA PDF PERO NO SALE POR IMPRESORA
2- Con Preview de FWH - No encuenta el pdf.
3- Con Preview PDF - No encuentra el PDF
En 2 y 3 despues que salgo de la aplicacion el PDF esta, pero al momento de visualizarlo no lo encuenta
Gracias a ti Joao y al SR. Navarro infinitas
Ruben Dario Fernandez