回答网友提问 2015-7-28
因为好多人问能不能显示中文的问题,我总结大致分为两类问题:
1.能否显示中文?2.能否读取远程服务器上的PDF(包括中文文件名)
第一个问题:能否显示中文?
首先,显示中文肯定是可以的,不论是文件名还是文件的正文,见下图:
如果你说显示不出中文,我想是不是下面这种情况:
这属于js中文乱码问题,你看中文文件名完全没有识别出来,看一下你的viewer.html文件在<head>标记是不是有这句:<meta charset="utf-8">
换成:<meta http-equiv="Content-Type" content="text/html" charset="gb2312" > 就可以啦!说白了就是charset换成gb2312
第一个问题over。
第二个问题:能否读取远程服务器上的PDF(包括中文文件名)
我们哆嗦一点,从头说起,首先用mozilla的example证明读取远程服务器上的pdf绝对没有问题,见下图
读取http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf
然后我换成公司服务器上的pdf文件地址,运行,如下图所示,我想大多数人遇到的都是这个问题。
这个问题简单说就是跨域访问,其实mozilla的example里有一段声明提到了这个问题,只是这个声明不那么显眼,在helloworld.html中,见下图
(CORS) - most servers don't support cross-origin browser requests.
CORS就是跨域访问,大多数服务器都不支持跨域访问。
要解决跨域访问问题,有很多解决方案,由于能力有限,那些好复杂的处理办法我还完全不懂,不过我百度的水平还是一流的,下面这个链接就是处理这个问题的简单方法,无奈中文资料太少。http://www.webdavsystem.com/ajax/programming/cross_origin_requests
如果看不懂英文,我翻译过来就是一张图
设置完毕后再运行:成功,跨域访问问题顺利解决,见下图。第二个问题OVER。
关于7.28第二个问题的延伸,同事帮助解决了一个小细节 2015-11-17
<metahttp-equiv="X-UA-Compatible"content="IE=edge"charset="utf-8"/>