vue-pdf.js 在线预览问题

JavaScript07

vue-pdf.js 在线预览问题,第1张

最近修改公司vue项目中使用pdf.js来实现在线预览上传的各类文件.由于使用pdf.js在预览时是直接在标签内将src属性赋值为要请求的地址.这就导致一个问题,会直接请求服务器的文件路径地址,而这个服务器文件路径就会暴露出来。处于安全性考虑在预览请求时不再返回地址,改为通过调用普通接口,而是统一返回流(word,pdf)或者base64(jpg,png...)。.前端再进行解析并实现在线预览.

此时遇到第一个问题:

        这个请求是在插件中进行的无法携带项目中封装的各类请求头信息(token..等)。 翻看pdf.js源码及网上总结.发现一个底层方法 

         该方法可传一个对象作为参数,对象内可以添加url(所请求的接口),headers(请求头信息)等.... . 有了这个方法就好处理了.

         最后在将该方法当做变量赋值给pdf的src.大功告成.

         最后再补充一些 : @loaded="docLoaded" @page-loaded ="pageLoaded" 这两个方法为加载预览文件时的loading事件,

最后引一波示例,

PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel 2007的格式(.xlsx)

PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。

下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:

<?php

require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php'//修改为自己的目录

echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>'

$objReader = PHPExcel_IOFactory::createReaderForFile($filename)

$objPHPExcel = $objReader->load($filename)

$objPHPExcel->setActiveSheetIndex(1)

$date = $objPHPExcel->getActiveSheet()->getCell('A16')->getValue()

?>

输出$date变量就能够看到文件中的内容了。PHPExcel使用PHPExcel_IOFactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。之后通过load方法,将PHP文件加载到objPHPExcel对象中。如果Excel文件有多个Sheet,可以通过setActiveSheetIndex来设置当前活动的Sheet。如何通过Sheet名来获得当前Sheet我还不知道,如果有知道的可以站内我。

需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。

echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date))

下面的代码显示了如何遍历显示Excel的内容:

<table id="table_id">

<?php

$objWorksheet = $objPHPExcel->getActiveSheet()

$i = 0

foreach($objWorksheet->getRowIterator() as $row){

?>

<tr>

<?php

$cellIterator = $row->getCellIterator()

$cellIterator->setIterateOnlyExistingCells(false)

if( $i == 0 ){

echo '<thead>'

}

foreach($cellIterator as $cell){

echo '<td>' . $cell->getValue() . '</td>'

}

if( $i == 0 ){

echo '</thead>'

}

$i++

?>

</tr>

<?php

}

?>

</table>

你这个问题比较专业,回答起来比较麻烦,我们先来理一理该如何去解决问题,问题是:你是向要将PDF文件进行在线打开,去发现无法将文件进行打开。

原因可能是:

1.你的PDF文件和电脑起到冲突的原因

2.可能是文件在接收或者在下载的时候收到损坏!

如果是这个问题的话那就简单,小编可以教你使用一个方法可以将它解决!

1.其实我们可以使用在线PDF转换器就可以了,不仅可以对它进行在线的阅读,还可以对它进行其他格式的在线转换或者PDF文件的编辑!

2.我们打开网站之后就可以将文件进行上传上去,但是要记住,文件大小不要超过2M,然后进行上传!

3.点击上传之后我们就可以看到文件,然后我们就可以对文件进行阅读或者将不足的地方进行编辑,达到完善的结果!

以上就是我的个人见解,希望对小伙伴们有所帮助!