Page 1 of 1

¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 11:15 am
by Ramón J.
Hola a todos

Como le decía a C. Navarro, quien se toma mucho interés en todos los temas del foro y es muy de agraceder, el tema de convertir archivos rtf en archivos pdf me lleva de calle. Estoy dándole vueltas al tema y viendo que la impresora "Microsoft Print to PDF" está instalada en todos los ordenadores de la empresa, ¿hay alguna posibilidad de parametrizar esta impresora en el sentido de que convierta en modo silencioso en pdf un archivo rtf e indicándole la carpeta donde tiene que guardarlo?

Por ejemplo:
Local cprinter:= "Microsfort printer to PDF"
Local crtf:= "modelo.rtf"
Local cCarpeta:= "\FWH\samples
cPdf:="modelo.pdf"

La idea que tengo, si se puede hacer, es usar la impresora en modo oculto para que convierta el archivo crtf en cCarpeta y con el nombre cPdf.

Un saludo y gracias
Feliz Reyes

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 11:37 am
by karinha
No conoco. Más puede usar el SUMATRAPDF, mui simples:

https://www.sumatrapdfreader.org/free-pdf-reader.html

Saludos.

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 12:33 pm
by karinha

Code: Select all

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------//

function Main()

   local oBar

   DEFINE WINDOW oWnd TITLE "IMPRIME PDF"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar ACTION ImpPdf()

   SET MESSAGE OF oWnd TO "IMPRIME PDF" NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------//

function ImpPdf()

   LOCAL nRet, nPrn, cArq, PastaSistema

   cArq := "C:\FWH1701\SAMPLES\BOL-20.PDF"

   PastaSistema := "C:\INST_NFE"

   ? cArq


   // WinExec( cDirExe+"sumatra\sumatrapdf.exe -reuse-instance -lang br "+gravaPDF)   //-restrict -fullscreen

   vcomando:='c:\sumatra\sumatrapdf -print-to-default '+cArq

   WinExec(vcomando)

return nil

   nRet := PrinterSetUp()

   // nPrn := PrnGetName()

   IF (nRet#0)

      nPrn := PastaSistema+"\sumatrapdf.exe -print-to "+PrinterPortToName(PrnGetPort())+" -reuse-instance -lang br "

      WinExec( nPrn + cArq, 0 ) // sem preview

      //WinExec(PastaSistema+"\sumatrapdf.exe -reuse-instance -lang br "+cArq) // com preview
      //WinExec(PastaSistema+"\sumatrapdf.exe -print-to-default -reuse-instance -lang pt "+cArq) // sem preview

  ENDIF

/*
   IF(nRet#0)

      //WinExec(PastaSistema+"\sumatrapdf.exe -print-to "+nPrn+" -reuse-instance -lang br "+cArq) // sem preview

      //WinExec( "c:\sumatra\sumatrapdf.exe -print-to -reuse-instance -lang pt "+cFilePDF)   //-restrict -fullscreen
      WinExec( "c:\sumatra\sumatrapdf.exe -print-to "+" -lang br "+cFilePDF )



   ENDIF
*/

return nil
 

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 12:34 pm
by karinha

Code: Select all

// Impresion en BMP, JPG o PDF

// http://forums.fivetechsupport.com/viewtopic.php?f=6&t=38472

FUNCTION IMPDPF5()

   QuitProgamLoad( "AcroRd32.EXE" )  // Verifica si esta abierto el Acro...

   cFile := ".\Informes\Cierre Productor CSG N° "+AllTrim(PA18->CCSG)+".PDF"

   SET 3DLOOK OFF

   // cPrintPDF es una variable que contiene el nombre de una
   // impresora virtual PDF (doPDF v7)
   PRINTER oPrn TO cPrintPDF FILE cFile  PREVIEW      

   IF EMPTY( oPrn:hDC )
      RETURN NIL
   ENDIF

RETURN NIL

FUNCTION QuitProgamLoad( cProceso )

   LOCAL oBj, oServ, aProcess, objProcess

   TRY
      oBj := CreateObject( "wbemScripting.SwbemLocator" )
   CATCH
      Return nil
   END

   oServ     := oBj:ConnectServer()

   aProcess  := oServ:ExecQuery( "Select * from Win32_Process" )

   For Each objProcess in aProcess

      If UPPER(objProcess:Name) = UPPER(cProceso)
         objProcess:Terminate()
      ENDIF

   next

Return nil
 

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 12:34 pm
by karinha

Code: Select all

#include "FiveWin.ch"
#include "harupdf.ch"

FUNCTION Main()

   LOCAL oPdf, Page, oImage, oFont, Font1, Font2, Font3

   oPdf := HPDF_New()

   HPDF_SetCompressionMode( oPdf, HPDF_COMP_ALL )

   //*HPDF_SetPassword( oPdf, 'jaime', 'alberto' )

   page := HPDF_AddPage( oPdf )

   HPDF_Page_SetSize( page, 3, 0 ) //** 3 = A4 

   //**oImage:=HPDF_LoadJpegImageFromFile (oPdf,'png\Qr_demo.jpg')
   //**HPDF_Page_DrawImage(page, oImage, 100, 700, 100, 100)

   //HPDF_Page_SetRGBFill(page, 0.80, 0.80, 0.80) //** Para rellenar
   HPDF_Page_SetLineWidth( page, 0.5 ) // ** Grosor
   HPDF_Page_SetRGBStroke( page, 0.2, 0.6, 1.0 ) // ** Color
   HPDF_Page_Rectangle( page, 20, 760, 560, 70 )
   HPDF_Page_Stroke ( page ) //** Muestra el cuadro

   HPDF_Page_BeginText ( page )

   Font1 := HPDF_LoadTTFontFromFile( oPdf, 'C:\Windows\Fonts\Verdana.ttf', HPDF_TRUE )
   Font2 := HPDF_LoadTTFontFromFile( oPdf, 'C:\Windows\Fonts\Lucon.ttf', HPDF_TRUE )

   oFont := HPDF_GetFont( oPdf, Font1, "WinAnsiEncoding" )

   HPDF_Page_SetFontAndSize( page, oFont, 12 )
   HPDF_Page_TextOut( page, 100, 640, "Jaime Coronado 1" )

   oFont := HPDF_GetFont( oPdf, Font2, "WinAnsiEncoding" )

   HPDF_Page_SetFontAndSize( page, oFont, 9 )
   HPDF_Page_TextOut( page, 100, 700, "Jaime Coronado 2" )
   HPDF_Page_TextOut( page, 100, 670, "Programador" )
   HPDF_Page_EndText( page )

   HPDF_SaveToFile( oPdf, 'Prueba.pdf' )

   HPDF_Free( oPdf )

RETURN( nil )
 

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 12:35 pm
by karinha

Code: Select all

#include "FiveWin.ch"

static oWnd

FUNCTION Main()

   local oBar

   DEFINE WINDOW oWnd TITLE "Imprimir PDF"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
      ACTION( IMPRIMIR_PDF() ) TOOLTIP "Imprimir PDF" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT    ;
      ACTION oWnd:End() TOOLTIP "Exit this app" GROUP

   SET MESSAGE OF oWnd TO "Imprimir PDF" NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

RETURN NIL

FUNCTION IMPRIMIR_PDF()

   // ASI, LLAMA EL ADOBE... 3
   ShellExecute(, "Print", "PROP15.PDF",,, 3 )  // Navarro

   // Con el SUMATRAPDF, no llama el adobe, es direto en la impresora.
   // Invisible.

RETURN NIL

// FIN
 

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 12:36 pm
by karinha

Code: Select all

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------//

function Main()

   local oBar

   DEFINE WINDOW oWnd TITLE "IMPRIME PDF CON SUMATRAPDF.EXE"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar ACTION ImpPdf()

   SET MESSAGE OF oWnd TO "IMPRIME PDF CON SUMATRAPDF.EXE" NOINSET CLOCK DATE ;
       KEYBOARD

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------//

function ImpPdf()

   LOCAL cArchivo, vcomando

   // Donde esta el .PDF
   cArchivo := "C:\FWH1701\SAMPLES\BOL-20.PDF" 

   // Llama la impresora default. En mi caso: pdfmachine.exe Impresora Virtual
   vcomando := 'c:\sumatra\sumatrapdf -print-to-default ' + cArchivo

   WinExec(vcomando)

return nil

// fin
 
Saludos.

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 12:40 pm
by karinha
Espero que ayude.

https://www.pdfmachine.com/genp/pdfmachine_white.html

Impresora virtual, la mejor del mundo.

Saludos.

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 2:41 pm
by Ramón J.
Muchas gracias, João, por tus respuestas, pero en tus ejemplos usas Sumatra para ver e imprimir archichos pdf, pero no veo en qué fase se convierte un archivo rtf en un archivo pdf. Además, tengo entendido que Sumatra lee e imprime archivos pdf, pero no los crea.

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 2:51 pm
by karinha
Use el FiveWin(Printer.prg) para crear tús archivos PDFS, ó HARUPDF.

Mira que legal:

https://documento.online-convert.com/es ... /rtf-a-pdf

Saludos.

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Wed Jan 06, 2021 7:35 pm
by Ramón J.
João, no encuentro printer.prg. ¿Está en samples? Si es así no lo tengo, como tampoco tengo HARUPDF

Muchas gracias

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Thu Jan 07, 2021 12:50 am
by karinha

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Thu Jan 07, 2021 11:45 am
by Ramón J.
João, en mi versión no aparecen samples\pdfharu1.prg, samples\pdfharu2.prg, samples/damiano.prg y tampoco Prv2pdf.prg.

Mi versión es FWH1803. Imagino que esos archivos estarán en versiones posteriores.

Un saludo

Re: ¿Se puede parametrizar Microsoft Print To PDF?

Posted: Thu Jan 07, 2021 1:14 pm
by karinha
Libs, HARUPDF:

https://mega.nz/file/RIlSAB6J#L4qDeL8lY ... zhezinPT2w

Actualize su versión del fivewin, és mejor.

Saludos.