1)今天在做pdfjs东西,从git上下载的资料,里面没有build文件夹,按照example中写的,把helloworld放到tomcat中运行,显示不出来pdf
2)从git上看资料,在ubuntu下安装npm gulp工作,生成generic文件夹失败,使用sudo apt-get install nodejs npm 的版本不对,太低,只有0.10.25,因此删除
3)Sudo apt remove nodejs npm
4)使用Nodejs6的版本也不行,也低,只好使用8的版本
5)curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
6)sudo apt-get install -y nodejs
7)有时候碰到没有见到node目录 sudo ln -s /usr/bin/nodejs /usr/bin/node 解决
8)Sudo npm install -g gulp-cli 安装gulp
9)Cd pdf.js/
10) gulp generic 生成build目录
11)把build下的generic放到webapps下,启动tomcat在网页中输入
192.168.11.48:8088/assets/generic/web/viewer.html ,可以看到pdf了
12)pdf.js跨域访问
192.168.11.48:8088/assets/generic/web/viewer.html?file=http://192.168.11.48:8088/cggl/downloadCgglFile
192.168.11.48:8088/assets/generic/web/viewer.html?file=/cggl/downloadCgglFile/117
也就是file=后跟的是一个文件,或者流
13)说下dropwizard下为什么普通的http://8888/aa.pdf,显示不出来,报文件没有找到,其实这个和tomcat下web-inf是一回事,我们的web-inf下文件也不能访问的,怎么使用,输出文件
@GET
@Path("/downloadCgglFile/{fileId}")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response downloadCgglFile(@SessionUser User user,@PathParam("fileId") long fileId){
WzFileGain wzFileGain = wzFileGainDAO.findById(fileId);
String filePath = getAppHome()+ wzFileGain.getFilePath();
String fileName = wzFileGain.getFileName();
try {
fileName = URLEncoder.encode(wzFileGain.getFileName(), "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return Response.ok(new File(filePath)).header("Content-Disposition", "attachment; filename="+fileName)
.build();
}
14)使用dropwizar下嵌套pdf.js,需要注意修改相对路径为绝对路径
if (typeof window !== 'undefined' && window['pdfjs-dist/build/pdf']) {
pdfjsLib = window['pdfjs-dist/build/pdf'];
} else {
// pdfjsLib = require('../build/pdf.js');
pdfjsLib = require('/assets/pdfview/build/pdf.js');
}
function configure(PDFJS) {
PDFJS.imageResourcesPath = '/assets/pdfview/web/images/';
_pdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/pdfview/build/pdf.worker.js';
PDFJS.cMapUrl = '/assets/pdfview/web/cmaps/';
PDFJS.cMapPacked = true;
}