Page 1 of 1

HPDFPRINT - Font cannot be loaded

Posted: Thu Oct 28, 2021 4:36 pm
by edufloriv
Saludos mis amigos,

Estoy usando por primera vez HPDFPRINT (antes usaba PDFCreator) pero tengo la necesidad de no depender de un programa externo, tengo este código:

Code: Select all

...
   SELECT HPDFDOC cDocRuta TO lSuccess papersize HPDF_PAPER_A4

   SET HPDFDOC COMPRESS ALL
   SET HPDFDOC PAGEMODE TO OUTLINE
   SET HPDFDOC ENCODING TO "WinAnsiEncoding"
   SET HPDFINFO AUTHOR      TO 'Inversiones Farmacom S.A.'
   SET HPDFINFO CREATOR     TO 'SisComFar'
   SET HPDFINFO TITLE       TO 'Retiro de Mercado - Cliente '+cQueClie
   SET HPDFINFO SUBJECT     TO 'Producto: '+cArtiNom+' Lote: '+aLoteData[2]
   SET HPDFINFO KEYWORDS    TO 'Retiro, Mercado, Digemid, '+LEFT(cArtiNom,AT(' ',cArtiNom)-1)
   SET HPDFINFO DATECREATED TO date() TIME time()

   START HPDFDOC

      START HPDFPAGE

//Logo, membrete y firma D.T.
         @  15 ,  15 HPDFPRINT IMAGE 'imagen\logo.bmp' WIDTH 100 HEIGHT 40 // STRETCH
         @  32 ,  15 HPDFPRINT LINE TO  32 , 200 PENWIDTH 0.6
         @  34 ,  15 HPDFPRINT 'INVERSIONES FARMACOM S.A.' FONT "Arial" SIZE 11 BOLD
         @ 217 ,  15 HPDFPRINT IMAGE cFirma1 WIDTH 58 HEIGHT 38

//Saludo y Asunto
         @  55 ,  16 HPDFPRINT 'Lima, '+FECHAR(DATE())                          FONT "Arial" SIZE nSize
         @  69 ,  16 HPDFPRINT 'Sres. '+RTRIM(cClieNom)+' ('+cClieCod+')'       FONT "Arial" SIZE nSize
         @  77 ,  16 HPDFPRINT 'Presente.-'                                     FONT "Arial" SIZE nSize
         @  85 ,  16 HPDFPRINT 'Asunto:'                                        FONT "Arial" SIZE nSize BOLD
         @  85 ,  34 HPDFPRINT Win_RetiroDelMercado.TxtAsunto.Value             FONT "Arial" SIZE nSize

//Cuerpo de la carta
         @  93 ,  16 HPDFPRINT 'De nuestra consideración:'                      FONT "Arial" SIZE nSize

         @ 102 ,  16 HPDFPRINT 'Por medio de la presente hacemos de su conocimiento que por motivos de:'                       FONT "Arial" SIZE nSize
         @ 108 ,  16 HPDFPRINT Win_RetiroDelMercado.TxtMotivo.Value                                                            FONT "Arial" SIZE nSize
         @ 114 ,  16 HPDFPRINT 'Estamos procediendo al retiro de producto del mercado en cumplimiento de las Buenas Prácticas' FONT "Arial" SIZE nSize
         @ 118 ,  16 HPDFPRINT 'de Almacenamiento (BPA), por tanto nosotros, Drogueria INVERSIONES FARMACOM S.A.,'             FONT "Arial" SIZE nSize
         @ 122 ,  16 HPDFPRINT 'les vendimos el siguiente producto:'                                                           FONT "Arial" SIZE nSize

//Datos del producto
         @ 130 ,  16 HPDFPRINT 'Código Digemid'             FONT "Arial" SIZE nSize
         @ 130 ,  47 HPDFPRINT ':'                          FONT "Arial" SIZE nSize
         @ 130 ,  50 HPDFPRINT cArtiDis                     FONT "Arial" SIZE nSize
         @ 134 ,  16 HPDFPRINT 'Producto'                   FONT "Arial" SIZE nSize
         @ 134 ,  47 HPDFPRINT ':'                          FONT "Arial" SIZE nSize
         @ 134 ,  50 HPDFPRINT cArtiNom                     FONT "Arial" SIZE nSize
         @ 138 ,  16 HPDFPRINT 'Laboratorio'                FONT "Arial" SIZE nSize
         @ 138 ,  47 HPDFPRINT ':'                          FONT "Arial" SIZE nSize
         @ 138 ,  50 HPDFPRINT cArtiLab                     FONT "Arial" SIZE nSize
         @ 142 ,  16 HPDFPRINT 'R.S.'                       FONT "Arial" SIZE nSize
         @ 142 ,  47 HPDFPRINT ':'                          FONT "Arial" SIZE nSize
         @ 142 ,  50 HPDFPRINT cArtiReg                     FONT "Arial" SIZE nSize
         @ 146 ,  16 HPDFPRINT 'Lote'                       FONT "Arial" SIZE nSize
         @ 146 ,  47 HPDFPRINT ':'                          FONT "Arial" SIZE nSize
         @ 146 ,  50 HPDFPRINT aLoteData[2]                 FONT "Arial" SIZE nSize
         @ 150 ,  16 HPDFPRINT 'Vence'                      FONT "Arial" SIZE nSize
         @ 150 ,  47 HPDFPRINT ':'                          FONT "Arial" SIZE nSize
         @ 150 ,  50 HPDFPRINT aLoteData[3]                 FONT "Arial" SIZE nSize

//Cierre de la página
         nFi := 154
         nFi := nFi + 4
         @ nFi ,  16 HPDFPRINT cBlock2 TO nFi+48 , 200  FONT "Arial" SIZE nSize

         nFi := nFi + 51
         @ nFi ,  16 HPDFPRINT 'Atentamente,' FONT "Arial" SIZE nSize
         
         @ 237 ,  16 HPDFPRINT '______________________'             FONT "Arial" SIZE nSize BOLD
         nFi := nFi + 4
         @ 241 ,  16 HPDFPRINT '   DIRECTOR TECNICO   '             FONT "Arial" SIZE nSize BOLD

         @ 273 ,  80 HPDFPRINT 'Almacén: Jr. Mariscal Miller Nº 2070 - Lince'   FONT "Arial" SIZE 8 BOLD
         @ 277 ,  60 HPDFPRINT 'Oficina Administrativa: Av. Elmer Faucett Nº 1663 - Urb. Jardines Virú - Callao'   FONT "Arial" SIZE 8 BOLD
         @ 281 ,  73 HPDFPRINT 'Teléfono: 265-0000 pag.web: www.farmacom.com.pe'   FONT "Arial" SIZE 8 BOLD

      END HPDFPAGE


      START HPDFPAGE

//Logo y membrete
         @  15 ,  15 HPDFPRINT IMAGE 'Imagen\logo.bmp' WIDTH 100 HEIGHT 40 // STRETCH
         @  32 ,  15 HPDFPRINT LINE TO  32 , 200 PENWIDTH 0.6
         @  34 ,  15 HPDFPRINT 'INVERSIONES FARMACOM S.A.' FONT "Arial" SIZE 11 BOLD

//Datos del producto
         nFi := 50
         @ nFi ,  60 HPDFPRINT 'INFORMACION DE RETIRO DE PRODUCTO' FONT "Arial" SIZE 14 BOLD
         nFi := nFi + 5
         @ nFi ,  16 HPDFPRINT 'Código Digemid'     FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         @ nFi ,  50 HPDFPRINT cArtiDis             FONT "Arial" SIZE nSize
         nFi := nFi + 4
         @ nFi ,  16 HPDFPRINT 'Producto'           FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         @ nFi ,  50 HPDFPRINT cArtiNom             FONT "Arial" SIZE nSize
         nFi := nFi + 4
         @ nFi ,  16 HPDFPRINT 'Laboratorio'        FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         @ nFi ,  50 HPDFPRINT cArtiLab             FONT "Arial" SIZE nSize
         nFi := nFi + 4
         @ nFi ,  16 HPDFPRINT 'R.S.'               FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         @ nFi ,  50 HPDFPRINT cArtiReg             FONT "Arial" SIZE nSize
         nFi := nFi + 4
         @ nFi ,  16 HPDFPRINT 'Lote'               FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         @ nFi ,  50 HPDFPRINT aLoteData[2]         FONT "Arial" SIZE nSize
         nFi := nFi + 4
         @ nFi ,  16 HPDFPRINT 'Vence'              FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         @ nFi ,  50 HPDFPRINT aLoteData[3]         FONT "Arial" SIZE nSize

//Datos facturas
         nFi := nFi + 8
         nF1 := nFi + 8
         @ nFi , 15  HPDFPRINT 'Venta del producto cliente' FONT "Arial" SIZE nSize
         nFi := nFi + 8
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1
         nFi := nFi + 2
         @ nFi , 40  HPDFPRINT 'Nº FACTURA'         FONT "Arial" SIZE nSize
         @ nFi , 90  HPDFPRINT 'FECHA DE VENTA'     FONT "Arial" SIZE nSize
         @ nFi , 130 HPDFPRINT 'CANTIDAD'           FONT "Arial" SIZE nSize
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1
         FOR nFac = 1 TO LEN(aFacturas)
            nFi := nFi + 4
            @ nFi , 40  HPDFPRINT aFacturas[nFac,1]    FONT "Arial" SIZE nSize
            @ nFi , 95  HPDFPRINT aFacturas[nFac,2]    FONT "Arial" SIZE nSize
            @ nFi , 150 HPDFPRINT aFacturas[nFac,3]    FONT "Arial" SIZE nSize RIGHT
         NEXT
         nFi := nFi + 4
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1 // horizontal inferior
         @ nF1 , 15  HPDFPRINT LINE TO nFi , 15  PENWIDTH 0.1
         @ nF1 , 85  HPDFPRINT LINE TO nFi , 85  PENWIDTH 0.1
         @ nF1 , 125 HPDFPRINT LINE TO nFi , 125 PENWIDTH 0.1
         @ nF1 , 195 HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1

//Información stock
         nFi := nFi + 8
         nF1 := nFi + 8
         @ nFi   , 15  HPDFPRINT 'Información de stock disponible' FONT "Arial" SIZE nSize
         @ nFi   , 80  HPDFPRINT 'SI' FONT "Arial" SIZE nSize
         @ nFi-1 , 85  HPDFPRINT RECTANGLE TO nFi+5 , 90 PENWIDTH 0.1
         @ nFi   , 95  HPDFPRINT 'NO' FONT "Arial" SIZE nSize
         @ nFi-1 , 102 HPDFPRINT RECTANGLE TO nFi+5 ,107 PENWIDTH 0.1
         nFi := nFi + 8
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1
         nFi := nFi + 2
         @ nFi , 40  HPDFPRINT 'LOTE'               FONT "Arial" SIZE nSize
         @ nFi , 90  HPDFPRINT 'F.VENCIMIENTO'      FONT "Arial" SIZE nSize
         @ nFi , 130 HPDFPRINT 'CANTIDAD'           FONT "Arial" SIZE nSize
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1 // horizontal inferior
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1 // horizontal inferior
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1 // horizontal inferior
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1 // horizontal inferior
         nFi := nFi + 6
         @ nFi , 15  HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1 // horizontal inferior
         @ nF1 , 15  HPDFPRINT LINE TO nFi , 15  PENWIDTH 0.1
         @ nF1 , 85  HPDFPRINT LINE TO nFi , 85  PENWIDTH 0.1
         @ nF1 , 125 HPDFPRINT LINE TO nFi , 125 PENWIDTH 0.1
         @ nF1 , 195 HPDFPRINT LINE TO nFi , 195 PENWIDTH 0.1
         
//Conformidad del cliente
         nFi := nFi + 8
         @ nFi ,  70 HPDFPRINT 'CONFORMIDAD DE CLIENTE' FONT "Arial" SIZE 14 BOLD
         nFi := nFi + 8
         @ nFi ,  16 HPDFPRINT 'Nombre'             FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         nFi := nFi + 7
         @ nFi ,  16 HPDFPRINT 'DNI'                FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         nFi := nFi + 7
         @ nFi ,  16 HPDFPRINT 'Fecha'              FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         nFi := nFi + 7
         @ nFi ,  16 HPDFPRINT 'Hora'               FONT "Arial" SIZE nSize
         @ nFi ,  47 HPDFPRINT ':'                  FONT "Arial" SIZE nSize
         
// Firma sello cliente
         @ nFi   , 140 HPDFPRINT '______________________'             FONT "Arial" SIZE nSize BOLD
         @ nFi+4 , 140 HPDFPRINT '    SELLO Y FIRMA     '             FONT "Arial" SIZE nSize BOLD

         @ 273 ,  80 HPDFPRINT 'Almacén: Jr. Mariscal Miller Nº 2070 - Lince'      FONT "Arial" SIZE 8 BOLD
         @ 277 ,  60 HPDFPRINT 'Oficina Administrativa: Av. Elmer Faucett Nº 1663 - Urb. Jardines Virú - Callao'   FONT "Arial" SIZE 8 BOLD
         @ 281 ,  73 HPDFPRINT 'Teléfono: 265-0000 pag.web: www.farmacom.com.pe'   FONT "Arial" SIZE 8 BOLD

      END HPDFPAGE

   END HPDFDOC
Pero en la ejecución me lanza 2 errores, el primero es con respecto a la imagen:
PDF-ERROR-1.png
PDF-ERROR-1.png (18.37 KiB) Viewed 625 times
Que imagino se deriva de esta línea:

Code: Select all

@  15 ,  15 HPDFPRINT IMAGE 'Imagen\logo.bmp' WIDTH 100 HEIGHT 40 // STRETCH
Y el segundo es con respecto al font:
PDF-ERROR-2.png
PDF-ERROR-2.png (17.45 KiB) Viewed 625 times
Yo imagino que el problema del font es en esta línea:

Code: Select all

@  34 ,  15 HPDFPRINT 'INVERSIONES FARMACOM S.A.' FONT "Arial" SIZE 11 BOLD
Pero lo que me extraña es que cuando compilo el ejemplo que viene en HMG35, el Demo1, este se ejecuta sin error alguno y tiene líneas similares:

Code: Select all

        @ 100, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in ITALIC." FONT "aRIAL" SIZE 14 ITALIC
        @ 110, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in BOLD and ITALIC." FONT "aRIAL" SIZE 14 BOLD ITALIC

Agradeceré sus indicaciones. Cordiales saludos a todos y gracias anticipadas.

Re: HPDFPRINT - Font cannot be loaded

Posted: Thu Oct 28, 2021 5:02 pm
by edufloriv
Amigos ya lo resolví:

Creo que no leí la documentación, HPDFPRINT no acepta imagenes .BMP:

Cambie por esto:

Code: Select all

//Logo, membrete y firma D.T.
         @  15 ,  15 HPDFPRINT IMAGE 'imagen\logo.jpg' WIDTH 100 HEIGHT 40 TYPE JPG
         @  32 ,  15 HPDFPRINT LINE TO  32 , 200 PENWIDTH 0.6
         @  34 ,  15 HPDFPRINT 'INVERSIONES FARMACOM S.A.' FONT "Arial" SIZE 11 BOLD
         @ 217 ,  15 HPDFPRINT IMAGE cFirma1 WIDTH 58 HEIGHT 38 TYPE JPG // cFirma1 tambien lo cambie a formato .jpg
Por alguna extraña razón al corregir el error de la imagen, ya no me sale el error del FONT ???? :roll:

Obvio tuve que cambiar el tipo de imagenes de los archivos de .bmp a .jpg lo hice con IrfanView.

Cordiales saludos.