pdf的使用遇到的问题

http://blog.csdn.net/atluckstar/article/details/77688972

回答网友提问  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

同事使用的时候发现一个小问题,跨域访问按照我所说的问题2设置了还是不行(IE浏览器),但是用搜狗浏览器极速模式就可以,于是采取了如下办法问题解决:在页面添加  <meta http-equiv="X-UA-Compatible" content="IE=edge" charset="utf-8" />

 

原文地址:https://www.cnblogs.com/yesu/p/8268542.html