Chinese characters and verification codes are not displayed after the linux server converts to pdf

Environment: centOS7, java8, tomcat8, conversion tool aspose.word

Symptoms: Chinese characters are not displayed in the pdf converted by the system, and numbers and letters are normal

Solution: centOS7 installs Chinese fonts

1. Copy Arial and Heriti (file names are simsun.ttc and simhei.ttf) in the c:/windows/font directory on Windows to the Linux server;

2. Check that the "fonts" directory exists in the /usr/share directory of the linux server. If it does not exist, perform an upgrade:

yum -y install fontconfig

3. If it cannot be executed, you need to update linux

yum update

4. Put 2 font files into the /usr/share/fonts directory

5. Authorize the font file chmod -R 755 /usr/share/fonts/sim*

6. Install the font retrieval tool ttmkfdir and execute the command

yum -y install ttmkfdir
ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

7. Overload the linux font library

fc-cache

8. Check whether Arial and Heidi have been loaded

fc-list

9. Restart tomcat, test, success!


org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.InternalError: java.lang.reflect.InvocationTargetException

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:209)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:141)

at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:82)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.base/java.lang.Thread.run(Thread.java:834)

Caused by: java.lang.InternalError: java.lang.reflect.InvocationTargetException

at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)

at java.base/java.security.AccessController.doPrivileged(Native Method)

at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)

at java.desktop/java.awt.Font.getFont2D(Font.java:497)

at java.desktop/java.awt.Font$FontAccessImpl.getFont2D(Font.java:237)

at java.desktop/sun.font.FontUtilities.getFont2D(FontUtilities.java:139)

at java.desktop/sun.java2d.SunGraphics2D.checkFontInfo(SunGraphics2D.java:670)

at java.desktop/sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:831)

at java.desktop/sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:46)

at java.desktop/sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2929)

at com.test.base.utils.RandomValidateCode.drowString(RandomValidateCode.java:101)

at com.test.base.utils.RandomValidateCode.getRandcode(RandomValidateCode.java:67)

at com.test.base.service.sysmanager.UserService.getVerifyCode(UserService.java:125)

at com.test.base.service.sysmanager.UserService$$FastClassBySpringCGLIB$$cb909668.invoke(<generated>)

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)

at com.test.base.service.sysmanager.UserService$$EnhancerBySpringCGLIB$$76c5ebec.getVerifyCode(<generated>)

at com.test.base.controller.HomeController.getConfig(HomeController.java:38)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

... 49 common frames omitted

Caused by: java.lang.reflect.InvocationTargetException: null

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)

at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)

... 77 common frames omitted

Caused by: java.lang.NullPointerException: null

at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)

at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)

at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)

at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)

at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:367)

at java.base/java.security.AccessController.doPrivileged(Native Method)

at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:312)

at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)

at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)

... 82 common frames omitted

Troubleshoot installing fonts

yum install fontconfig

fc-cache

Guess you like

Origin blog.csdn.net/yonghutwo/article/details/128944497