Con estas librerías:
libs=hbzebra
libs=hbhpdf
libs=libhpdf
Incluyendo:
#require "hbzebra"
Se arma el .pdf con harupdf y se pone el QR dentro del objeto pdf de la página
Suerte !
*************************************************
* Pageobj = Objeto pagina del oPDF
* Pdfobj = Objeto del oPDF
* nX = Coordenadas eje X en DPI
* nY = Coordenas eje Y en Pdfobj:nRow
* nLineWidth = Profundidad de la linea del codigo
* cType = Tipo de codigo
* cCode = Texto del codigo
* prtCode = Se imprime el cCode o no
* nletra = Tamanio del font
* nFlags = Ni La Mas Puta Idea
******************** && GENERA CODIGOS DE BARRA PARA EL PDF
Function DrawBarcode( Pageobj, Pdfobj, nX, nY, nLineWidth, cType, cCode, prtCode, nletra, nFlags )
LOCAL hZebra, nLineHeight, cTxt
IF prtCode=NIL
prtCode:=.F.
ENDIF
IF nletra=NIL
nletra:=09
ENDIF
IF nY=NIL
nY:=0
ENDIF
IF nX=NIL
nX:=05
ENDIF
nY := nY * nletra * Pdfobj:nLineHeight && CONVIERTE DE nY=Pdfobj:nRow a nY=DPI
nY := HPDF_Page_GetHeight( Pageobj ) - nY
DO CASE
CASE cType="EAN13"
hZebra := hb_zebra_create_ean13( cCode, nFlags )
CASE cType="EAN8"
hZebra := hb_zebra_create_ean8( cCode, nFlags )
CASE cType="UPCA"
hZebra := hb_zebra_create_upca( cCode, nFlags )
CASE cType="UPCE"
hZebra := hb_zebra_create_upce( cCode, nFlags )
CASE cType="CODE39"
hZebra := hb_zebra_create_code39( cCode, nFlags )
CASE cType="ITF"
hZebra := hb_zebra_create_itf( cCode, nFlags )
CASE cType="MSI"
hZebra := hb_zebra_create_msi( cCode, nFlags )
CASE cType="CODABAR"
hZebra := hb_zebra_create_codabar( cCode, nFlags )
CASE cType="CODE93"
hZebra := hb_zebra_create_code93( cCode, nFlags )
CASE cType="CODE11"
hZebra := hb_zebra_create_code11( cCode, nFlags )
CASE cType="CODE128"
hZebra := hb_zebra_create_code128( cCode, nFlags )
CASE cType="PDF417"
hZebra := hb_zebra_create_pdf417( cCode, nFlags )
nLineHeight := nLineWidth * 3
CASE cType="DATAMATRIX"
hZebra := hb_zebra_create_datamatrix( cCode, nFlags )
nLineHeight := nLineWidth
CASE cType="QRCODE"
hZebra := hb_zebra_create_qrcode( cCode, nFlags )
nLineHeight := nLineWidth
ENDCASE
IF hZebra != NIL
IF hb_zebra_geterror( hZebra ) == 0
IF Empty( nLineHeight )
nLineHeight := 16
ENDIF
cTxt := hb_zebra_getcode( hZebra )
IF prtCode
oPDF:DrawText( Pdfobj:nRow+=3, 01, cCode,,nletra,"Courier" )
ENDIF
hb_zebra_draw_hpdf( hZebra, Pageobj, nX, nY, nLineWidth, -nLineHeight )
ELSE
ALERT("Tipo= "+cType+";Codigo= "+cCode+";Error= "+STR(hb_zebra_geterror( hZebra )) )
ENDIF
hb_zebra_destroy( hZebra )
ELSE
ALERT("TIPO DE CODIGO DE BARRAS INCORRECTO; ;"+cType)
ENDIF
RETURN ""
********************************
* hZebra = Codigo de barras
* PageObj = Objeto pagina
* nX = Coordenadas eje X
* nY = Coordenadas eje Y
* nLineWidth = Ancho del codigo
* nLineHeight= Alto del codigo
***************
STATIC FUNCTION hb_zebra_draw_hpdf( hZebra, Pageobj, ... )
IF hb_zebra_geterror( hZebra ) != 0
RETURN HB_ZEBRA_ERROR_INVALIDZEBRA
ENDIF
hb_zebra_draw( hZebra, {| x, y, w, h | HPDF_Page_Rectangle( Pageobj, x, y, w, h ) }, ... )
HPDF_Page_Fill( Pageobj )
RETURN 0