应项目需求要把PDF内嵌到网页中显示,其中有了很多办法,比如用<embed/>元素放入PDF文件,但是效果不理想,浏览器兼容不理想,在ie9/8(其他版本没有测试)显示会提示下载pdf文件。当然这不是我想要的效果,这种做法可以轻易地在网络上找到,我这里不就细说。
下面介绍的是另一种办法,就是借用FlashPaper软件改用swf格式来实现,各大浏览器对flash的支持已经相当友好了,除非用户禁止了现在flash。
一:FlashPaper
开始使用这款软件之前,花点时间来认识它,FlashPaper是Macromedia公司旗下的一款产品,它可以将Word,Excel,Powerpoint等文档转换为swf且不会影响到原来的图片和排版,使用户可以很方便的将其插入到网页中。
同类产品还有iSpring和Print2Flash,注意的是FlashPaper不支持64为系统,如需安装在64位系统上推荐使用Print2Flash。
iSpring和Print2Flash都可以将PPT转flash。iSpring是专门的PPT转flash软件,而且它也只能转PPT。FlashPaper可以支持任何类型文件转flash文件。更重要的是FlashPaper转换出来的Flash文件是基于网页式的浏览模式,而iSpring转换出来的Flash文件能保持好对原有PPT的浏览模式,如果需要将PPT转Flash我们极力推荐iSpring软件。
二:先下载安装FlashPaper软件。
安装后界面如下
然后把我们的PDF文件直接拖放进去,然后出现该解析过程
解析完成后出现界面如下
然后点file>exit就可以生成一个.swf的文件供我们网页使用。但是这样生成的文件 是带有一个Logo的。因为到这里为止,我们一直在用FlashPaper为我们提供的默认组件。该提供的默认组件包括如下图所示:
按照 FlashPaper 工作原理(利用原有的flash模版来把文档转换为swf文档)也就是说,如果我们想去掉LOGO我们就必须要自己定义 FlashPaper 组件,修改它里面的flash文件。
三,自定义 FlashPaper
我这里有一个定义好了的“DefaultViewer2.swf”,你可以直接把它复制到你的Macromedia FlashPaper 2安装目录Interface中进行替换,重启软件后就可以使用自定义过的 FlashPaper 。
当然你也可以按照自己的需要定制属于自己的 FlashPaper 。
1:利用flash的反编译软件将.swf文件转换为.fla文件。我在这里使用的是“硕思闪客精灵7.1”。
现在进入到你的Macromedia FlashPaper 2安装目录Interface中找到“DefaultViewer2.swf”文件,把它拖进到“硕思闪客精灵”软件中,待完全放进去后,点击软件的上方“导出FLA/FLEX按钮,选择你要保存的位置和flash版本后点击确定,就可得到”DefaultViewer2.fla"文件。
2:用flash软件打开反编译过来的"DefaultViewer2.fla“文件,对其进行自定义。
在第三针位置即第二个a的位置按f9调出动作窗口,在最后一个if
if (gMainView === undefined)
{
fpLocalizations_o = new Object();
fpLocalizations_o.en = new FlashPaper.Localization.English();
fpLocalizations_o.de = new FlashPaper.Localization.German();
fpLocalizations_o.fr = new FlashPaper.Localization.French();
fpLocalizations_o.ja = new FlashPaper.Localization.Japanese();
fpLocalizations_o.es = new FlashPaper.Localization.Spanish();
fpLocalizations_o.it = new FlashPaper.Localization.Italian();
fpLocalizations_o.ko = new FlashPaper.Localization.Korean();
gMainView = new FlashPaper.MainView(this);
gMainView.addListener(this);
} // end if
的里面加入自己定制的内容。
if (gMainView === undefined)
{
fpLocalizations_o = new Object();
fpLocalizations_o.en = new FlashPaper.Localization.English();
fpLocalizations_o.de = new FlashPaper.Localization.German();
fpLocalizations_o.fr = new FlashPaper.Localization.French();
fpLocalizations_o["zh-TW"] = new FlashPaper.Localization.TChinese();
fpLocalizations_o.es = new FlashPaper.Localization.Spanish();
fpLocalizations_o.it = new FlashPaper.Localization.Italian();
fpLocalizations_o["zh-CN"] = new FlashPaper.Localization.SChinese();
gMainView = new FlashPaper.MainView(this);
gMainView.addListener(this);
gMainView.showUIElement("PrevNext", true);
gMainView.showUIElement("Print", false);
gMainView.showUIElement("Find", true);
gMainView.showUIElement("Tool", false);
gMainView.showUIElement("Pop", false);
gMainView.showUIElement("Zoom", true);
gMainView.showUIElement("Page", true);
gMainView.showUIElement("Overflow", true);
} // end if
3:将自定义好的"DefaultViewer2.fla"导出为DefaultViewer2.swf"文件(命名为DefaultViewer2.swf),找到FlashPaper的安装路径FlashPaper 2\Interface,覆盖下面的swf文件即可完成你的定义。
四:将pdf转换好的.swf文件插入到网页中
然后在按正常的插入.swf文件的方式插入即可。我这里测试的IE7+
<embed src="name.swf"