mirror of
https://github.com/501351981/vue-office.git
synced 2025-07-25 07:41:42 +08:00
add:增加download方法
This commit is contained in:
parent
0eb065e5e1
commit
071e7a796e
9
core/packages/js-docx/index.d.ts
vendored
9
core/packages/js-docx/index.d.ts
vendored
@ -19,10 +19,11 @@ export interface Options {
|
||||
}
|
||||
|
||||
export interface JsDocxPreview {
|
||||
preview: (src: string | ArrayBuffer | Blob) => Promise<any>,
|
||||
setOptions: (options: Options) => void,
|
||||
setRequestOptions: (requestOptions?: any) => void,
|
||||
destroy: ()=> void,
|
||||
preview: (src: string | ArrayBuffer | Blob) => Promise<any>;
|
||||
download: (fileName?: string) => void;
|
||||
setOptions: (options: Options) => void;
|
||||
setRequestOptions: (requestOptions?: any) => void;
|
||||
destroy: ()=> void;
|
||||
}
|
||||
declare const jsPreviewDocx: {
|
||||
init: (container: HTMLElement, options?: Options, requestOptions?: any) => JsDocxPreview;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@js-preview/docx",
|
||||
"type" :"module",
|
||||
"version": "1.0.3",
|
||||
"version": "1.2.0",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -1,10 +1,12 @@
|
||||
import docx from '../../vue-docx/src/docx';
|
||||
import {download as downloadFile} from '../../../utils/url.js';
|
||||
class JsDocxPreview {
|
||||
container = null;
|
||||
wrapper = null;
|
||||
wrapperMain = null;
|
||||
options = {};
|
||||
requestOptions = {};
|
||||
fileData = null;
|
||||
|
||||
constructor(container, options={}, requestOptions={}) {
|
||||
this.container = container;
|
||||
@ -29,8 +31,9 @@ class JsDocxPreview {
|
||||
}
|
||||
preview(src){
|
||||
return new Promise((resolve, reject) => {
|
||||
docx.getData(src, this.requestOptions).then(res =>{
|
||||
docx.render(res, this.wrapperMain, this.options).then(() => {
|
||||
docx.getData(src, this.requestOptions).then(async res =>{
|
||||
this.fileData = await docx.getBlob(res);
|
||||
docx.render(this.fileData, this.wrapperMain, this.options).then(() => {
|
||||
resolve();
|
||||
}).catch(e => {
|
||||
docx.render('', this.wrapperMain, this.options);
|
||||
@ -42,6 +45,9 @@ class JsDocxPreview {
|
||||
});
|
||||
});
|
||||
}
|
||||
download(fileName){
|
||||
downloadFile(fileName || `js-preview-docx-${new Date().getTime()}.docx`,this.fileData);
|
||||
}
|
||||
destroy(){
|
||||
this.container.removeChild(this.wrapper);
|
||||
this.container = null;
|
||||
|
9
core/packages/js-excel/index.d.ts
vendored
9
core/packages/js-excel/index.d.ts
vendored
@ -4,10 +4,11 @@ export interface Options {
|
||||
}
|
||||
|
||||
export interface JsExcelPreview {
|
||||
preview: (src: string | ArrayBuffer | Blob) => Promise<any>,
|
||||
setOptions: (options: Options) => void,
|
||||
setRequestOptions: (requestOptions?: any) => void,
|
||||
destroy: ()=> void,
|
||||
preview: (src: string | ArrayBuffer | Blob) => Promise<any>;
|
||||
download: (fileName?: string) => void;
|
||||
setOptions: (options: Options) => void;
|
||||
setRequestOptions: (requestOptions?: any) => void;
|
||||
destroy: ()=> void;
|
||||
}
|
||||
declare const jsPreviewExcel: {
|
||||
init: (container: HTMLElement, options?: Options, requestOptions?: any) => JsExcelPreview;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@js-preview/excel",
|
||||
"type" :"module",
|
||||
"version": "1.0.3",
|
||||
"version": "1.2.0",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -3,6 +3,7 @@ import {getData, readExcelData, transferExcelToSpreadSheet} from '../../vue-exce
|
||||
import {renderImage, clearCache} from '../../vue-excel/src/media';
|
||||
import {readOnlyInput} from '../../vue-excel/src/hack';
|
||||
import {debounce} from 'lodash';
|
||||
import {download as downloadFile} from "../../../utils/url.js";
|
||||
class JsExcelPreview {
|
||||
container = null;
|
||||
wrapper = null;
|
||||
@ -18,6 +19,7 @@ class JsExcelPreview {
|
||||
xs = null;
|
||||
offset = null;
|
||||
observer = null;
|
||||
fileData = null;
|
||||
|
||||
constructor(container, options={}, requestOptions={}) {
|
||||
this.container = container;
|
||||
@ -86,6 +88,7 @@ class JsExcelPreview {
|
||||
this.ctx = canvas.getContext('2d');
|
||||
}
|
||||
renderExcel(buffer){
|
||||
this.fileData = buffer;
|
||||
return readExcelData(buffer).then(workbook => {
|
||||
if (!workbook._worksheets || workbook._worksheets.length === 0) {
|
||||
throw new Error('未获取到数据,可能文件格式不正确或文件已损坏');
|
||||
@ -133,6 +136,9 @@ class JsExcelPreview {
|
||||
});
|
||||
}));
|
||||
}
|
||||
download(fileName){
|
||||
downloadFile(fileName || `js-preview-excel-${new Date().getTime()}.xlsx`,this.fileData);
|
||||
}
|
||||
destroy(){
|
||||
this.observer.disconnect();
|
||||
this.container.removeChild(this.wrapper);
|
||||
|
9
core/packages/js-pdf/index.d.ts
vendored
9
core/packages/js-pdf/index.d.ts
vendored
@ -14,10 +14,11 @@ export interface Options {
|
||||
}
|
||||
|
||||
export interface JsPdfPreview {
|
||||
preview: (src: string | ArrayBuffer | Blob) => Promise<any>,
|
||||
setOptions: (options: Options) => void,
|
||||
setRequestOptions: (requestOptions?: any) => void,
|
||||
destroy: ()=> void,
|
||||
preview: (src: string | ArrayBuffer | Blob) => Promise<any>;
|
||||
download: (fileName?: string) => void;
|
||||
setOptions: (options: Options) => void;
|
||||
setRequestOptions: (requestOptions?: any) => void;
|
||||
destroy: ()=> void;
|
||||
}
|
||||
declare const jsPreviewPdf: {
|
||||
init: (container: HTMLElement, options?: Options, requestOptions?: any) => JsPdfPreview;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@js-preview/pdf",
|
||||
"type" :"module",
|
||||
"version": "1.0.3",
|
||||
"version": "1.2.0",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {worker} from '../../vue-pdf/src/worker';
|
||||
import {pdfjsLib} from '../../vue-pdf/src/pdf';
|
||||
import {getUrl, loadScript} from '../../../utils/url';
|
||||
import {download as downloadFile, getUrl, loadScript} from '../../../utils/url';
|
||||
import omit from 'lodash/omit';
|
||||
|
||||
const pdfJsLibSrc = `data:text/javascript;base64,${pdfjsLib}`;
|
||||
@ -145,6 +145,11 @@ class JsPdfPreview{
|
||||
});
|
||||
}));
|
||||
}
|
||||
download(fileName){
|
||||
this.pdfDocument && this.pdfDocument._transport && this.pdfDocument._transport.getData().then(fileData=>{
|
||||
downloadFile(fileName || `js-preview-pdf-${new Date().getTime()}.pdf`,fileData.buffer);
|
||||
});
|
||||
}
|
||||
destroy(){
|
||||
this.container.removeChild(this.wrapper);
|
||||
this.container = null;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue-office/docx",
|
||||
"version": "1.1.3",
|
||||
"version": "1.2.0",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -21,6 +21,18 @@ function fetchDocx(src, options) {
|
||||
});
|
||||
}
|
||||
|
||||
async function getBlob(data){
|
||||
let blob;
|
||||
if (data instanceof Blob) {
|
||||
blob = data;
|
||||
} else if (data instanceof Response) {
|
||||
blob = await data.blob();
|
||||
} else if (data instanceof ArrayBuffer) {
|
||||
blob = new Blob([data]);
|
||||
}
|
||||
return blob
|
||||
}
|
||||
|
||||
function render(data, container, options = {}) {
|
||||
if (!data) {
|
||||
container.innerHTML = '';
|
||||
@ -39,5 +51,6 @@ function render(data, container, options = {}) {
|
||||
|
||||
export default {
|
||||
getData,
|
||||
render
|
||||
render,
|
||||
getBlob
|
||||
};
|
@ -1,6 +1,7 @@
|
||||
<script>
|
||||
import {defineComponent, ref, onMounted, watch} from 'vue-demi';
|
||||
import docx from './docx';
|
||||
import {download as downloadFile} from "../../../utils/url";
|
||||
|
||||
export default defineComponent({
|
||||
name: 'VueOfficeDocx',
|
||||
@ -18,11 +19,12 @@ export default defineComponent({
|
||||
emits: ['rendered', 'error'],
|
||||
setup(props, {emit}) {
|
||||
const rootRef = ref(null);
|
||||
|
||||
let fileData = null;
|
||||
function init() {
|
||||
let container = rootRef.value;
|
||||
docx.getData(props.src, props.requestOptions).then(res => {
|
||||
docx.render(res, container, props.options).then(() => {
|
||||
docx.getData(props.src, props.requestOptions).then(async res => {
|
||||
fileData = await docx.getBlob(res);
|
||||
docx.render(fileData, container, props.options).then(() => {
|
||||
emit('rendered');
|
||||
}).catch(e => {
|
||||
docx.render('', container, props.options);
|
||||
@ -49,8 +51,12 @@ export default defineComponent({
|
||||
});
|
||||
}
|
||||
});
|
||||
function download(fileName){
|
||||
downloadFile(fileName || `vue-office-docx-${new Date().getTime()}.docx`,fileData);
|
||||
}
|
||||
return {
|
||||
rootRef
|
||||
rootRef,
|
||||
download
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue-office/excel",
|
||||
"version": "1.1.8",
|
||||
"version": "1.2.0",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -5,6 +5,7 @@ import {getData, readExcelData, transferExcelToSpreadSheet} from './excel';
|
||||
import {renderImage, clearCache} from './media';
|
||||
import {readOnlyInput} from './hack';
|
||||
import {debounce} from 'lodash';
|
||||
import {download as downloadFile} from '../../../utils/url';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'VueOfficeExcel',
|
||||
@ -33,8 +34,10 @@ export default defineComponent({
|
||||
let ctx = null;
|
||||
let xs = null;
|
||||
let offset = null;
|
||||
let fileData = null;
|
||||
|
||||
function renderExcel(buffer) {
|
||||
fileData = buffer;
|
||||
readExcelData(buffer).then(workbook => {
|
||||
if (!workbook._worksheets || workbook._worksheets.length === 0) {
|
||||
throw new Error('未获取到数据,可能文件格式不正确或文件已损坏');
|
||||
@ -139,9 +142,13 @@ export default defineComponent({
|
||||
xs.loadData({});
|
||||
}
|
||||
});
|
||||
function download(fileName){
|
||||
downloadFile(fileName || `vue-office-excel-${new Date().getTime()}.xlsx`,fileData);
|
||||
}
|
||||
return {
|
||||
wrapperRef,
|
||||
rootRef
|
||||
rootRef,
|
||||
download
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vue-office/pdf",
|
||||
"version": "1.1.3",
|
||||
"version": "1.2.0",
|
||||
"description": "",
|
||||
"main": "lib/index.js",
|
||||
"files": [
|
||||
|
@ -2,7 +2,7 @@
|
||||
import {defineComponent, ref, onMounted, watch} from 'vue-demi';
|
||||
import {worker} from './worker';
|
||||
import {pdfjsLib} from './pdf';
|
||||
import {getUrl, loadScript} from '../../../utils/url';
|
||||
import {download as downloadFile, getUrl, loadScript} from '../../../utils/url';
|
||||
import omit from 'lodash/omit';
|
||||
|
||||
const pdfJsLibSrc = `data:text/javascript;base64,${pdfjsLib}`;
|
||||
@ -28,6 +28,7 @@ export default defineComponent({
|
||||
emits: ['rendered', 'error'],
|
||||
setup(props, {emit}) {
|
||||
let pdfDocument = null;
|
||||
let loadingTask = null;
|
||||
const rootRef = ref([]);
|
||||
const numPages = ref(0);
|
||||
|
||||
@ -49,7 +50,7 @@ export default defineComponent({
|
||||
numPages.value = 0;
|
||||
return;
|
||||
}
|
||||
const loadingTask = window.pdfjsLib.getDocument({
|
||||
loadingTask = window.pdfjsLib.getDocument({
|
||||
url: getUrl(props.src),
|
||||
cMapUrl: `${props.staticFileUrl.endsWith('/') ? props.staticFileUrl : props.staticFileUrl + '/'}cmaps/`,
|
||||
cMapPacked: true,
|
||||
@ -125,9 +126,15 @@ export default defineComponent({
|
||||
watch(() => props.src, () => {
|
||||
checkPdfLib().then(init);
|
||||
});
|
||||
function download(fileName){
|
||||
pdfDocument && pdfDocument._transport && pdfDocument._transport.getData().then(fileData=>{
|
||||
downloadFile(fileName || `vue-office-pdf-${new Date().getTime()}.pdf`,fileData.buffer);
|
||||
});
|
||||
}
|
||||
return {
|
||||
rootRef,
|
||||
numPages
|
||||
numPages,
|
||||
download
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,4 +1,5 @@
|
||||
<script setup>
|
||||
import {ref} from 'vue';
|
||||
import VueOfficeDocx from '../../packages/vue-docx/index';
|
||||
import PreviewWrapper from '../common/PreviewWrapper.vue';
|
||||
import useLoading from '../hooks/useLoading.js';
|
||||
@ -13,6 +14,12 @@ function onError(e){
|
||||
const defaultSrc = location.origin +
|
||||
(location.pathname + '/').replace('//', '/')
|
||||
+ 'static/test-files/test.docx';
|
||||
|
||||
const docxRef = ref();
|
||||
|
||||
// setTimeout(()=>{
|
||||
// console.log( docxRef.value.download());
|
||||
// }, 2000);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -23,6 +30,7 @@ const defaultSrc = location.origin +
|
||||
>
|
||||
<template v-slot="slotProps">
|
||||
<VueOfficeDocx
|
||||
ref="docxRef"
|
||||
:src="slotProps.src"
|
||||
style="flex: 1;height: 0"
|
||||
@rendered="onRendered"
|
||||
|
@ -3,6 +3,7 @@ import VueOfficeExcel from '../../packages/vue-excel/index';
|
||||
import '../../packages/vue-excel/src/index.css';
|
||||
import PreviewWrapper from '../common/PreviewWrapper.vue';
|
||||
import useLoading from '../hooks/useLoading.js';
|
||||
import {ref} from "vue";
|
||||
function onRendered(){
|
||||
useLoading.hideLoading();
|
||||
}
|
||||
@ -14,6 +15,11 @@ function onError(e){
|
||||
const defaultSrc = location.origin +
|
||||
(location.pathname + '/').replace('//', '/')
|
||||
+ 'static/test-files/test.xlsx';
|
||||
const docxRef = ref();
|
||||
|
||||
// setTimeout(()=>{
|
||||
// console.log( docxRef.value.download());
|
||||
// }, 2000);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -24,6 +30,7 @@ const defaultSrc = location.origin +
|
||||
>
|
||||
<template v-slot="slotProps">
|
||||
<VueOfficeExcel
|
||||
ref="docxRef"
|
||||
:src="slotProps.src"
|
||||
style="flex: 1;height: 0"
|
||||
v-loading="true"
|
||||
|
@ -14,6 +14,7 @@ onMounted(() => {
|
||||
myDocxPreview.preview('/vue-office/examples/dist/static/test-files/test.docx').then(_=>{
|
||||
console.log('docx preview done');
|
||||
setTimeout(()=>{
|
||||
// myDocxPreview.download();
|
||||
myDocxPreview.preview('/vue-office/examples/dist/static/test-files/test2.docx');
|
||||
}, 3000);
|
||||
}).catch(err=>{
|
||||
|
@ -12,6 +12,7 @@ const dom = ref(null);
|
||||
onMounted(() => {
|
||||
window.myExcelPreview = jsExcel.init(dom.value);
|
||||
window.myExcelPreview.preview('/vue-office/examples/dist/static/test-files/test.xlsx').then(_=>{
|
||||
// window.myExcelPreview.download();
|
||||
console.log('excel preview done', window.myExcelPreview);
|
||||
}).catch(err=>{
|
||||
console.log('err',err);
|
||||
|
@ -12,6 +12,7 @@ const dom = ref(null);
|
||||
onMounted(() => {
|
||||
window.myPdfPreview = jsPdf.init(dom.value);
|
||||
window.myPdfPreview.preview('/vue-office/examples/dist/static/test-files/test.pdf').then(_=>{
|
||||
// window.myPdfPreview.download();
|
||||
console.log('excel preview done', window.myPdfPreview);
|
||||
}).catch(err=>{
|
||||
console.log('err',err);
|
||||
|
@ -2,6 +2,7 @@
|
||||
import VueOfficePdf from '../../packages/vue-pdf/index';
|
||||
import PreviewWrapper from '../common/PreviewWrapper.vue';
|
||||
import useLoading from '../hooks/useLoading.js';
|
||||
import {ref} from "vue";
|
||||
function onRendered(){
|
||||
useLoading.hideLoading();
|
||||
}
|
||||
@ -12,6 +13,11 @@ function onError(e){
|
||||
const defaultSrc = location.origin +
|
||||
(location.pathname + '/').replace('//', '/')
|
||||
+ 'static/test-files/test.pdf';
|
||||
const docxRef = ref();
|
||||
|
||||
// setTimeout(()=>{
|
||||
// console.log( docxRef.value.download());
|
||||
// }, 2000);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -22,6 +28,7 @@ const defaultSrc = location.origin +
|
||||
>
|
||||
<template v-slot="slotProps">
|
||||
<VueOfficePdf
|
||||
ref="docxRef"
|
||||
:src="slotProps.src"
|
||||
style="flex: 1;height: 0"
|
||||
:options="{}"
|
||||
|
@ -1,27 +1,47 @@
|
||||
export function getUrl(src){
|
||||
if(typeof src === 'string'){
|
||||
return src
|
||||
return src;
|
||||
}else if(src instanceof Blob){
|
||||
return URL.createObjectURL(src)
|
||||
return URL.createObjectURL(src);
|
||||
}else if(src instanceof ArrayBuffer){
|
||||
return URL.createObjectURL(new Blob([src]))
|
||||
return URL.createObjectURL(new Blob([src]));
|
||||
}else if(src instanceof Response){
|
||||
return URL.createObjectURL(src.blob())
|
||||
return URL.createObjectURL(src.blob());
|
||||
}else{
|
||||
return src
|
||||
return src;
|
||||
}
|
||||
}
|
||||
|
||||
export function loadScript(src){
|
||||
return new Promise(((resolve, reject) => {
|
||||
let script = document.createElement('script')
|
||||
script.src = src
|
||||
let script = document.createElement('script');
|
||||
script.src = src;
|
||||
script.onload = function (){
|
||||
resolve()
|
||||
}
|
||||
resolve();
|
||||
};
|
||||
script.onerror = function (){
|
||||
reject()
|
||||
reject();
|
||||
};
|
||||
document.body.append(script);
|
||||
}));
|
||||
}
|
||||
document.body.append(script)
|
||||
}))
|
||||
|
||||
export async function download(filename, data){
|
||||
if(!data){
|
||||
return;
|
||||
}
|
||||
if (data instanceof ArrayBuffer) {
|
||||
data = new Blob([data]);
|
||||
}
|
||||
downloadFile(filename, URL.createObjectURL(data));
|
||||
}
|
||||
|
||||
export function downloadFile(filename, href){
|
||||
let eleLink = document.createElement('a');
|
||||
eleLink.download = filename;
|
||||
eleLink.style.display = 'none';
|
||||
eleLink.href = href;
|
||||
document.body.appendChild(eleLink);
|
||||
eleLink.click();
|
||||
document.body.removeChild(eleLink);
|
||||
}
|
@ -156,6 +156,14 @@ preview: (src: string | ArrayBuffer | Blob) => Promise<any>
|
||||
|
||||
url格式适合有文件静态地址的情况,ArrayBuffer格式适合文件上传前的预览。
|
||||
|
||||
### download方法
|
||||
|
||||
调用download进行文件下载,参数名为下载的文件名称,可不传。
|
||||
|
||||
```ts
|
||||
download: (fileName?: string) => void;
|
||||
```
|
||||
|
||||
### destroy方法
|
||||
|
||||
卸载方法,可以在组件销毁前调用预览对象的卸载方法,避免长期使用造成内存泄露。
|
||||
|
File diff suppressed because one or more lines are too long
@ -61,4 +61,4 @@ import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const A=
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">cMapPacked</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">boolean</span><span style="color:#89DDFF;">;</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">CMapReaderFactory</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Object</span><span style="color:#89DDFF;">;</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">useSystemFonts</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">boolean</span><span style="color:#89DDFF;">;</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h3 id="preview方法" tabindex="-1">preview方法 <a class="header-anchor" href="#preview方法" aria-label="Permalink to "preview方法""></a></h3><p>调用preview方法进行文件的预览。</p><p>preview方法接收参数支持三种: 文件url地址、文件ArrayBuffer格式数据、文件blob格式。</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">preview</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">src</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">string</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">ArrayBuffer</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Blob</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Promise</span><span style="color:#89DDFF;"><</span><span style="color:#A6ACCD;">any</span><span style="color:#89DDFF;">></span></span></code></pre></div><p>url格式适合有文件静态地址的情况,ArrayBuffer格式适合文件上传前的预览。</p><h3 id="destroy方法" tabindex="-1">destroy方法 <a class="header-anchor" href="#destroy方法" aria-label="Permalink to "destroy方法""></a></h3><p>卸载方法,可以在组件销毁前调用预览对象的卸载方法,避免长期使用造成内存泄露。</p><h2 id="如果该项目帮助了您-还请您不吝点赞" tabindex="-1">如果该项目帮助了您,还请您不吝点赞 <a class="header-anchor" href="#如果该项目帮助了您-还请您不吝点赞" aria-label="Permalink to "如果该项目帮助了您,还请您不吝点赞""></a></h2>`,40),e=[o];function t(c,r,y,D,F,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default};
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h3 id="preview方法" tabindex="-1">preview方法 <a class="header-anchor" href="#preview方法" aria-label="Permalink to "preview方法""></a></h3><p>调用preview方法进行文件的预览。</p><p>preview方法接收参数支持三种: 文件url地址、文件ArrayBuffer格式数据、文件blob格式。</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">preview</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">src</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">string</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">ArrayBuffer</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Blob</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Promise</span><span style="color:#89DDFF;"><</span><span style="color:#A6ACCD;">any</span><span style="color:#89DDFF;">></span></span></code></pre></div><p>url格式适合有文件静态地址的情况,ArrayBuffer格式适合文件上传前的预览。</p><h3 id="download方法" tabindex="-1">download方法 <a class="header-anchor" href="#download方法" aria-label="Permalink to "download方法""></a></h3><p>调用download进行文件下载,参数名为下载的文件名称,可不传。</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">download</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">fileName</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">string</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">void;</span></span></code></pre></div><h3 id="destroy方法" tabindex="-1">destroy方法 <a class="header-anchor" href="#destroy方法" aria-label="Permalink to "destroy方法""></a></h3><p>卸载方法,可以在组件销毁前调用预览对象的卸载方法,避免长期使用造成内存泄露。</p><h2 id="如果该项目帮助了您-还请您不吝点赞" tabindex="-1">如果该项目帮助了您,还请您不吝点赞 <a class="header-anchor" href="#如果该项目帮助了您-还请您不吝点赞" aria-label="Permalink to "如果该项目帮助了您,还请您不吝点赞""></a></h2>`,43),e=[o];function t(c,r,y,D,F,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default};
|
@ -1 +1 @@
|
||||
import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const A=JSON.parse('{"title":"非Vue框架文件预览","description":"","frontmatter":{},"headers":[],"relativePath":"guide/js-preview.md"}'),p={name:"guide/js-preview.md"},o=l("",40),e=[o];function t(c,r,y,D,F,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default};
|
||||
import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const A=JSON.parse('{"title":"非Vue框架文件预览","description":"","frontmatter":{},"headers":[],"relativePath":"guide/js-preview.md"}'),p={name:"guide/js-preview.md"},o=l("",43),e=[o];function t(c,r,y,D,F,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default};
|
File diff suppressed because one or more lines are too long
@ -36,7 +36,7 @@
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">password</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">''</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//string, 加密pdf的密码</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;font-style:italic;">//更多配置参见 https://mozilla.github.io/pdf.js/api/draft/module-pdfjsLib.html</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h2 id="staticfileurl-pdf特有属性" tabindex="-1">staticFileUrl [pdf特有属性] <a class="header-anchor" href="#staticfileurl-pdf特有属性" aria-label="Permalink to "staticFileUrl [pdf特有属性]""></a></h2><ul><li>类型: String</li></ul><p>pdf渲染时可能会请求一些bcmap文件,这些文件默认从 <a href="https://unpkg.com/pdfjs-dist@3.1.81/" target="_blank" rel="noreferrer">https://unpkg.com/pdfjs-dist@3.1.81/</a> 加载,但是可能存在网络不通问题,如果遇到这种问题,可以将这些文件放到自己静态目录,然后修改该属性,告诉组件去这里请求bcmap文件。</p><p>涉及的文件存放在当前github项目中examples/public/cmaps目录下,可将cmaps目录复制到你的静态服务目录下,然后修改staticFileUrl为cmaps文件夹对应的父地址,必须已http或https开头,如 <a href="http://yourdomain/static/" target="_blank" rel="noreferrer">http://yourdomain/static/</a></p></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><!----></div><div class="pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/config/event.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>事件</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
File diff suppressed because one or more lines are too long
@ -35,7 +35,7 @@
|
||||
<span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">app</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">listen</span><span style="color:#A6ACCD;">(</span><span style="color:#F78C6C;">3000</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div><p>各种语言都类似,可以自行百度查询</p><h2 id="文件预览不出来" tabindex="-1">文件预览不出来 <a class="header-anchor" href="#文件预览不出来" aria-label="Permalink to "文件预览不出来""></a></h2><ul><li>检查文件是否返回成功,是否存在跨域</li><li>目前不支持doc、xls格式文件的预览</li><li>可以看看@error事件,抛出了什么错误信息</li></ul></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><a class="pager-link prev" href="/vue-office/examples/docs/guide/js-preview.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>上一页</span><span class="title" data-v-a9a244d8>非Vue框架进行文件预览</span></a></div><div class="has-prev pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/contact.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>联系我</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
@ -128,7 +128,7 @@
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">script</span><span style="color:#89DDFF;">></span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><!----></div><div class="pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/preview-docx.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>docx文件预览</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<link rel="preload" href="/vue-office/examples/docs/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/vue-office/examples/docs/assets/chunks/framework.935eb42c.js">
|
||||
<link rel="modulepreload" href="/vue-office/examples/docs/assets/chunks/theme.585d8d97.js">
|
||||
<link rel="modulepreload" href="/vue-office/examples/docs/assets/guide_js-preview.md.c54034fa.lean.js">
|
||||
<link rel="modulepreload" href="/vue-office/examples/docs/assets/guide_js-preview.md.873b3161.lean.js">
|
||||
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||||
</head>
|
||||
<body>
|
||||
@ -77,8 +77,8 @@
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">cMapPacked</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">boolean</span><span style="color:#89DDFF;">;</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">CMapReaderFactory</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Object</span><span style="color:#89DDFF;">;</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">useSystemFonts</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">boolean</span><span style="color:#89DDFF;">;</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h3 id="preview方法" tabindex="-1">preview方法 <a class="header-anchor" href="#preview方法" aria-label="Permalink to "preview方法""></a></h3><p>调用preview方法进行文件的预览。</p><p>preview方法接收参数支持三种: 文件url地址、文件ArrayBuffer格式数据、文件blob格式。</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">preview</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">src</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">string</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">ArrayBuffer</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Blob</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Promise</span><span style="color:#89DDFF;"><</span><span style="color:#A6ACCD;">any</span><span style="color:#89DDFF;">></span></span></code></pre></div><p>url格式适合有文件静态地址的情况,ArrayBuffer格式适合文件上传前的预览。</p><h3 id="destroy方法" tabindex="-1">destroy方法 <a class="header-anchor" href="#destroy方法" aria-label="Permalink to "destroy方法""></a></h3><p>卸载方法,可以在组件销毁前调用预览对象的卸载方法,避免长期使用造成内存泄露。</p><h2 id="如果该项目帮助了您-还请您不吝点赞" tabindex="-1">如果该项目帮助了您,还请您不吝点赞 <a class="header-anchor" href="#如果该项目帮助了您-还请您不吝点赞" aria-label="Permalink to "如果该项目帮助了您,还请您不吝点赞""></a></h2></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><a class="pager-link prev" href="/vue-office/examples/docs/guide/preview-pdf.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>上一页</span><span class="title" data-v-a9a244d8>pdf文件预览</span></a></div><div class="has-prev pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/faq.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>常见问题</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h3 id="preview方法" tabindex="-1">preview方法 <a class="header-anchor" href="#preview方法" aria-label="Permalink to "preview方法""></a></h3><p>调用preview方法进行文件的预览。</p><p>preview方法接收参数支持三种: 文件url地址、文件ArrayBuffer格式数据、文件blob格式。</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">preview</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">src</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">string</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">ArrayBuffer</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">|</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Blob</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Promise</span><span style="color:#89DDFF;"><</span><span style="color:#A6ACCD;">any</span><span style="color:#89DDFF;">></span></span></code></pre></div><p>url格式适合有文件静态地址的情况,ArrayBuffer格式适合文件上传前的预览。</p><h3 id="download方法" tabindex="-1">download方法 <a class="header-anchor" href="#download方法" aria-label="Permalink to "download方法""></a></h3><p>调用download进行文件下载,参数名为下载的文件名称,可不传。</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">download</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">fileName</span><span style="color:#89DDFF;">?:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">string</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">void;</span></span></code></pre></div><h3 id="destroy方法" tabindex="-1">destroy方法 <a class="header-anchor" href="#destroy方法" aria-label="Permalink to "destroy方法""></a></h3><p>卸载方法,可以在组件销毁前调用预览对象的卸载方法,避免长期使用造成内存泄露。</p><h2 id="如果该项目帮助了您-还请您不吝点赞" tabindex="-1">如果该项目帮助了您,还请您不吝点赞 <a class="header-anchor" href="#如果该项目帮助了您-还请您不吝点赞" aria-label="Permalink to "如果该项目帮助了您,还请您不吝点赞""></a></h2></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><a class="pager-link prev" href="/vue-office/examples/docs/guide/preview-pdf.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>上一页</span><span class="title" data-v-a9a244d8>pdf文件预览</span></a></div><div class="has-prev pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/faq.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>常见问题</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
@ -121,7 +121,7 @@
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">script</span><span style="color:#89DDFF;">></span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><a class="pager-link prev" href="/vue-office/examples/docs/guide/" data-v-a9a244d8><span class="desc" data-v-a9a244d8>上一页</span><span class="title" data-v-a9a244d8>快速上手</span></a></div><div class="has-prev pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/preview-xlsx.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>xlsx文件预览</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
@ -45,7 +45,7 @@
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">script</span><span style="color:#89DDFF;">></span></span></code></pre></div><h2 id="上传文件预览" tabindex="-1">上传文件预览 <a class="header-anchor" href="#上传文件预览" aria-label="Permalink to "上传文件预览""></a></h2><p>和docx的上传文件预览一样,获取文件的ArrayBuffer,传给组件的src属性。</p></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><a class="pager-link prev" href="/vue-office/examples/docs/guide/preview-xlsx.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>上一页</span><span class="title" data-v-a9a244d8>xlsx文件预览</span></a></div><div class="has-prev pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/js-preview.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>非Vue框架进行文件预览</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
@ -48,7 +48,7 @@
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"></</span><span style="color:#F07178;">script</span><span style="color:#89DDFF;">></span></span></code></pre></div><h2 id="上传文件预览" tabindex="-1">上传文件预览 <a class="header-anchor" href="#上传文件预览" aria-label="Permalink to "上传文件预览""></a></h2><p>和docx的上传文件预览一样,获取文件的ArrayBuffer,传给组件的src属性。</p></div></div></main><footer class="VPDocFooter" data-v-76ac46f7 data-v-a9a244d8><!--[--><!--]--><!----><div class="prev-next" data-v-a9a244d8><div class="pager" data-v-a9a244d8><a class="pager-link prev" href="/vue-office/examples/docs/guide/preview-docx.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>上一页</span><span class="title" data-v-a9a244d8>docx文件预览</span></a></div><div class="has-prev pager" data-v-a9a244d8><a class="pager-link next" href="/vue-office/examples/docs/guide/preview-pdf.html" data-v-a9a244d8><span class="desc" data-v-a9a244d8>下一页</span><span class="title" data-v-a9a244d8>pdf文件预览</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_index.md\":\"da90cec3\",\"guide_contact.md\":\"10c84e73\",\"guide_index.md\":\"59f780b1\",\"config_event.md\":\"cbedfdd0\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_preview-pdf.md\":\"9bd426ea\",\"index.md\":\"2dfe7e9d\",\"guide_js-preview.md\":\"c54034fa\",\"guide_preview-docx.md\":\"747caaea\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
<script>__VP_HASH_MAP__ = JSON.parse("{\"config_event.md\":\"cbedfdd0\",\"guide_index.md\":\"59f780b1\",\"config_index.md\":\"da90cec3\",\"index.md\":\"2dfe7e9d\",\"guide_preview-xlsx.md\":\"0de0ac4e\",\"guide_contact.md\":\"10c84e73\",\"guide_preview-pdf.md\":\"9bd426ea\",\"guide_preview-docx.md\":\"747caaea\",\"guide_js-preview.md\":\"873b3161\",\"guide_faq.md\":\"32e428fb\"}")
|
||||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"vue-office\",\"description\":\"更简单的office文件预览\",\"base\":\"/vue-office/examples/docs/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/\"},{\"text\":\"配置参考\",\"link\":\"/config/\"},{\"text\":\"演示预览效果\",\"link\":\"https://501351981.github.io/vue-office/examples/dist/\"}],\"outlineTitle\":\"跳转到\",\"docFooter\":{\"next\":\"下一页\",\"prev\":\"上一页\"},\"sidebar\":{\"/guide\":[{\"text\":\"指南\",\"items\":[{\"text\":\"快速上手\",\"link\":\"/guide/\"},{\"text\":\"docx文件预览\",\"link\":\"/guide/preview-docx\"},{\"text\":\"xlsx文件预览\",\"link\":\"/guide/preview-xlsx\"},{\"text\":\"pdf文件预览\",\"link\":\"/guide/preview-pdf\"},{\"text\":\"非Vue框架进行文件预览\",\"link\":\"/guide/js-preview\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"},{\"text\":\"联系我\",\"link\":\"/guide/contact\"}]}],\"/config\":[{\"text\":\"配置参考\",\"items\":[{\"text\":\"属性\",\"link\":\"/config/\"},{\"text\":\"事件\",\"link\":\"/config/event\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/501351981/vue-office\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||||
|
||||
</body>
|
||||
|
@ -1 +1 @@
|
||||
{"config_index.md":"da90cec3","guide_contact.md":"10c84e73","guide_index.md":"59f780b1","config_event.md":"cbedfdd0","guide_preview-xlsx.md":"0de0ac4e","guide_preview-pdf.md":"9bd426ea","index.md":"2dfe7e9d","guide_js-preview.md":"c54034fa","guide_preview-docx.md":"747caaea","guide_faq.md":"32e428fb"}
|
||||
{"config_event.md":"cbedfdd0","guide_index.md":"59f780b1","config_index.md":"da90cec3","index.md":"2dfe7e9d","guide_preview-xlsx.md":"0de0ac4e","guide_contact.md":"10c84e73","guide_preview-pdf.md":"9bd426ea","guide_preview-docx.md":"747caaea","guide_js-preview.md":"873b3161","guide_faq.md":"32e428fb"}
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user