医为浏览器基于cefsharp49内核实现,在PDF阅读功能方面有不少问题。
学习cefsharp处理pdf功能,查找资料发现pdf是使用cef自带扩展来处理的,扩展在cefsharp工程bin/x86/debug/cef_extensions.pak文件内,下载PackPAK
软件可以解压pak文件,查看内容,解压后可以得到resources目录,包含了cef的各种扩展,下图为pdf文件预览使用的目录
修改js内容后再使用PackPAK软件打包回pak后,替换bin/x86/debug下pak文件,测试发现是可以有效使用,但pdf解析使用的是embed
插件
<embed width="100%" height="100%" name="plugin" id="plugin" src="http://127.0.0.1/dthealth/web/html/mofu.pdf" type="application/pdf" internalinstanceid="19" title="">
解析pdf实际使用的是application/pdf插件。但没找到如何修改插件的办法。
每次重新编译后,会重新生成pak文件
高版本内核不再使用cef_extensions.pak,使用resources.pak
高版本内核上述问题都不存在
pdfjs是mozilla开发的一个使用HTML5构建的可移植文档格式库,支持svg与canvas实现。使用它可以预览pdf,在应用层面websys.js中实现二个公共方法预览pdf
//使用window.open('http://127.0.0.1/dthealth/web/html/mohu.pdf');打开时模糊,
//可以使用以下二种方法打开
websys_createWindow('http://127.0.0.1/dthealth/web/html/mohu.pdf','title','width=900;height=500;');
websys_showModal({
url:'http://127.0.0.1/dthealth/web/html/mohu.pdf',
width:1000,height:500,title:"title"
});
websys_createWindow('../html/help/CH/XML打印.pdf','title','width=900;height=500;');
websys_showModal({
url:'../html/help/CH/XML打印.pdf',
width:1000,height:500,title:"title"
});
效果图:
访问量: 509974