How to export text as image to PDF or changes another font attribute

 

XFRX can export text as image if font doesn't exist - for XFRX 15.6. But you can change a flag for specific font.


 

m.loSession=EVALUATE([xfrx("XFRX#INIT")])  
m.lnRetVal = m.loSession.SetParams("test.pdf",,,,,,"PDF") 
IF m.lnRetVal=0    
   m.loHACK=CREATEOBJECT("_XFRXHACK",m.loSession)    
   m.loSession.ProcessReport("_reports\basetext")    
   m.loSession.Finalize()    
   RELE m.loHACK 
END IF
 
DEFINE CLASS _XFRXHACK AS CUSTOM
   oEDoc=.NULL.
   cTarget=""
   nVersion=0

   PROCEDURE Init(m.loSession)
      m.loSession=IIF(TYPE("m.loSession.oxfSession")="O",m.loSession.oxfSession,m.loSession)
      This.nVersion=VAL(CHRTRAN(m.loSession.GetVersion(),CHRTRAN(m.loSession.GetVersion(),"0123456789",""),""))
      This.cTarget=m.loSession.cTarget
      IF This.cTarget=="PDF" 
         IF This.nVersion<1570000
            =BINDEVENT(m.loSession.oDocument,"addFont",This,"addFont156",1)
         ELSE
            =BINDEVENT(m.loSession.oDocument,"addFont",This,"addFont",1)
         ENDIF
         This.oEDoc=m.loSession.oDocument
      ENDIF
   ENDPROC

   PROCEDURE addFont156(m.tcFontName, m.llBold, m.llItal, m.lnEmbed, m.lnSymbol, m.lnCodePage)
      WITH This.oEDoc 
      IF .aFonts(.nFont,7) AND ATC("+MDD-ISO-15223-1",.aFonts(.nFont,1))>0 && font is symbol
         .aFonts(.nFont,11)=.F. && .F. - Font not exist, .T. - Font exist
         *.aFonts(.nFont,9)=1252 && Code page from 42 to 1252
      ELSE
         .aFonts(.nFont,10)=.F. && .F. - Do not covert to UNICODE, .T. - Convert to UNICODE
      ENDIF
      ENDWITH
   ENDPROC

   PROCEDURE addFont(m.tcFontName, m.llBold, m.llItal, m.lnEmbed, m.lnCodePage)
      WITH This.oEDoc 
      IF .aFonts(.nFont,7) AND ATC("+MDD-ISO-15223-1",.aFonts(.nFont,1))>0 && font is symbol
         .aFonts(.nFont,11)=.F. && .F. - Font not exist, .T. - Font exist
         *.aFonts(.nFont,9)=1252 && Code page from 42 to 1252
      ELSE
         .aFonts(.nFont,10)=.F. && .F. - Do not covert to UNICODE, .T. - Convert to UNICODE
      ENDIF
      ENDWITH
   ENDPROC


 ENDDEFINE