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

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