linux服务器转pdf后汉字不显示和验证码不显示

Posted code_____monkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux服务器转pdf后汉字不显示和验证码不显示相关的知识,希望对你有一定的参考价值。

环境:centOS7,java8,tomcat8,转换工具aspose.word

症状:系统转换出的pdf里汉字不显示,数字、字母正常

解决办法:centOS7安装汉字字体

1,在windows上的c:/windows/font目录中拷贝 宋体、黑体(文件名分别为simsun.ttc、simhei.ttf)到linux服务器;

2,检查linux服务器/usr/share目录下存在“fonts”目录,如果不存在执行升级:

yum -y install fontconfig

3,如果无法执行则需要更新linux

yum update

4,将2个字体文件放入/usr/share/fonts目录中

5,对字体文件进行授权chmod -R 755 /usr/share/fonts/sim*

6,安装字体检索工具ttmkfdir并执行命令

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

7,重载linux字体库

fc-cache

8,查看是否已载入宋体和黑体

fc-list

9,重启tomcat,测试,成功!


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

解决 安装字体

yum install fontconfig

fc-cache

以上是关于linux服务器转pdf后汉字不显示和验证码不显示的主要内容,如果未能解决你的问题,请参考以下文章

NetCore项目部署到Linux之后,登录界面验证码不显示问题

linux部署项目,验证码不显示

linux下 Tomcat 验证码不显示

精华PHP网站验证码不显示的终结解决方案

linux环境下验证码不显示的几种情况

关于LNMP服务器 Thinkphp5验证码不显示问题