SAS® Visual Analytics displays INTERNAL_SERVER_ERROR when printing a report that uses a Compact File Format (CFF) font


If your SAS Visual Analytics report includes a Compact File Format (CFF) font, then printing fails with an error that is similar to this one:

INTERNAL SERVER ERROR, error executing request. External pdf generator failed.

In addition, the Report Renderer service log might contain the following warnings and errors:

2019-09-09 09:14:01.313  WARN 20998 --- [o-auto-1-exec-6] c.s.r.service.utils.ProcessLogger        : <user>(1bb3b744) [c7afafa9fc151116] Failed to identify EGL_DRIVERS_PATH from environment, so using defaults.
        Updated EGL_DRIVERS_PATH to: /opt/sas/spre/home/lib64/cpp/6:/opt/sas/spre/home/lib64/cpp/6/egl:/opt/sas/spre/home/lib64/cpp/6/gallium
        terminate called after throwing an instance of 'std::out_of_range'
          what():  vector::_M_range_check: __n (which is 18446744073709551615) >= this->size() (which is 8)
        Caught signal 6 (SIGABRT)
        stack trace:
        /lib64/libc.so.6(abort+0x148) [0x7f5e1c9398f8]
        /opt/sas/spre/home/lib64/cpp/6/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x15d) [0x7f5e1d2777bd]
        /opt/sas/spre/home/lib64/cpp/6/libstdc++.so.6(+0x8e756) [0x7f5e1d275756]
        /opt/sas/spre/home/lib64/cpp/6/libstdc++.so.6(+0x8e7a1) [0x7f5e1d2757a1]
        /opt/sas/spre/home/lib64/cpp/6/libstdc++.so.6(+0x8e9b9) [0x7f5e1d2759b9]
        /opt/sas/spre/home/lib64/cpp/6/libstdc++.so.6(_ZSt24__throw_out_of_range_fmtPKcz+0xf5) [0x7f5e1d2a2d85]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(+0x10267d) [0x7f5e205a267d]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(+0xf076f) [0x7f5e2059076f]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(+0xf4a77) [0x7f5e20594a77]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(+0xf9922) [0x7f5e20599922]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(+0xfe2c6) [0x7f5e2059e2c6]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(+0xfe321) [0x7f5e2059e321]
        /opt/sas/spre/home/lib64/cpp/6/libOpenGLES2DisplayList.so.6(_ZN11displaylist10PDFBuilder11endDocumentEv+0x10) [0x7f5e2050605c]
        /opt/sas/spre/home/lib64/cpp/6/libBirdPrint.so.6(_ZN4BIRD8PrintBot7makePDFERKSt10shared_ptrINS_12PrintContextEE+0xec7) [0x7f5e23b1f151]
        /opt/sas/spre/home/lib64/cpp/6/libBirdPrint.so.6(_ZN4BIRD8PrintBot4makeERKSt10shared_ptrINS_12PrintContextEE+0x3f) [0x7f5e23b1fbc5]
        /opt/sas/spre/home/bin/cpp/6/BirdPrintDriver() [0x405fae]
        /opt/sas/spre/home/bin/cpp/6/BirdPrintDriver() [0x406395]
        /opt/sas/spre/home/bin/cpp/6/BirdPrintDriver() [0x4050e8]
        /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f5e1c9243d5]
        /opt/sas/spre/home/bin/cpp/6/BirdPrintDriver() [0x4047b9]

2019-09-09 09:14:01.314  WARN 20998 --- [o-auto-1-exec-6] c.s.r.service.utils.ProcessUtils         : <user>(1bb3b744) [c7afafa9fc151116] Process Failed - 95e201f2-a1d9-4699-be32-123923c23697 - rc = 6

org.apache.commons.exec.ExecuteException: Process exited with an error: 6 (Exit value: 6)
        at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:153)
        at com.sas.reportrenderer.service.utils.ProcessUtils.executeProcess(ProcessUtils.java:74)
        at com.sas.reportrenderer.service.RendererService.render(RendererService.java:296)
        at com.sas.reportrenderer.service.RendererService.createPDF(RendererService.java:277)
        at com.sas.reportrenderer.service.RendererController.createPDF(RendererController.java:745)
        at com.sas.reportrenderer.service.RendererController.renderedImage(RendererController.java:288)
        at com.sas.reportrenderer.service.RendererController$$FastClassBySpringCGLIB$$dea17299.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
        at ... [167 lines suppressed] (Unknown Source)

2019-09-09 09:14:01.314  WARN 20998 --- [o-auto-1-exec-6] c.s.r.service.RendererService            : <user>(1bb3b744) [c7afafa9fc151116] BirdPrint executed and returned RendererResourceException
2019-09-09 09:14:01.314 ERROR 20998 --- [o-auto-1-exec-6] c.s.r.service.RendererController         : <user>(1bb3b744) [c7afafa9fc151116] ENDPOINT: createPdf. Leaving w/ ERROR: RendererResourceException Thrown. code=15224 httpStatus=500
 

The problem occurs because CFF fonts are not supported by the PDF-generation code.  To work around the issue, you can convert the CFF font to a TTF font. Free online tools, such as  https://convertio.co/cff-ttf/, are available to perform this task.