{"_id":"@apollo-design/vue-docx-preview","_rev":"4-ca8aa6ceafe32f913bf2d15eba346073","name":"@apollo-design/vue-docx-preview","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@apollo-design/vue-docx-preview","version":"0.1.0","keywords":["word","docx","preview","viewer","vue"],"author":{"name":"apollocmh"},"license":"Apache-2.0","_id":"@apollo-design/vue-docx-preview@0.1.0","maintainers":[{"name":"apollocmh","email":"baochangliu0206@gmail.com"}],"homepage":"https://apollocmh.github.io/docx-preview/","bugs":{"url":"https://github.com/apollocmh/docx-preview/issues"},"dist":{"shasum":"56d55f12acd233e59981c1fcd3a4687615d7d8e1","tarball":"https://registry.npmjs.org/@apollo-design/vue-docx-preview/-/vue-docx-preview-0.1.0.tgz","fileCount":21,"integrity":"sha512-Dm/6C62zJuVCVdGlxvKzvkBNKPp0cMTCY2luPRlWDvSZBkCSq2wLfqd8pJoIx1oLU5/s1jErc5lfmK53e+vP7w==","signatures":[{"sig":"MEUCIECnpN59nqmuvDaLMn/XjajlK4nqRsR3fBRhUY4XPBidAiEA3iEDhd0jxXz9Z5iSwNWo2g4j3PonQuLq1OMom21Afes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102481},"type":"module","_from":"file:apollo-design-vue-docx-preview-0.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"scripts":{"build":"vite build"},"_npmUser":{"name":"apollocmh","email":"baochangliu0206@gmail.com"},"_resolved":"D:\\Code\\docx-preview\\packages\\vue-docx-preview\\apollo-design-vue-docx-preview-0.1.0.tgz","_integrity":"sha512-Dm/6C62zJuVCVdGlxvKzvkBNKPp0cMTCY2luPRlWDvSZBkCSq2wLfqd8pJoIx1oLU5/s1jErc5lfmK53e+vP7w==","repository":{"url":"git+https://github.com/apollocmh/docx-preview.git","type":"git","directory":"packages/vue-docx-preview"},"_npmVersion":"10.9.2","description":"Vue 3 DOCX viewer component (toolbar, pager, zoom, thumbnails) built on @apollo-design/docx-preview","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.13.1","dependencies":{"@apollo-design/docx-preview":"0.6.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"vue":">=3"},"_npmOperationalInternal":{"tmp":"tmp/vue-docx-preview_0.1.0_1788507742767_0.12710693608168566","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@apollo-design/vue-docx-preview","version":"0.2.0","keywords":["word","docx","preview","viewer","vue"],"author":{"name":"apollocmh"},"license":"Apache-2.0","_id":"@apollo-design/vue-docx-preview@0.2.0","maintainers":[{"name":"apollocmh","email":"baochangliu0206@gmail.com"}],"homepage":"https://apollocmh.github.io/docx-preview/","bugs":{"url":"https://github.com/apollocmh/docx-preview/issues"},"dist":{"shasum":"4f7899ff79d6419f48777d566cfbeea9f83a9b9a","tarball":"https://registry.npmjs.org/@apollo-design/vue-docx-preview/-/vue-docx-preview-0.2.0.tgz","fileCount":22,"integrity":"sha512-1BIViSn3zxxOLuYUjay5U3BNptK4lf/Z6t8QuiFk03Y6M4vpZsETO52Ac4iJVK3LDQb9+8Gfs59CrTNFISqzIg==","signatures":[{"sig":"MEUCIEVjq45EqL8vc2dLtn7LStA+ZYuywNPLbDuvyVf/usY+AiEA5HMnmIF4kIqscMzV2F25R/yuuFEormQA3zajVvKZ6HQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollo-design%2fvue-docx-preview@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109666},"type":"module","_from":"file:apollo-design-vue-docx-preview-0.2.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"scripts":{"build":"vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac12275b-82a1-41b8-95de-acd7262f75c7"}},"_resolved":"/home/runner/work/docx-preview/docx-preview/apollo-design-vue-docx-preview-0.2.0.tgz","_integrity":"sha512-1BIViSn3zxxOLuYUjay5U3BNptK4lf/Z6t8QuiFk03Y6M4vpZsETO52Ac4iJVK3LDQb9+8Gfs59CrTNFISqzIg==","repository":{"url":"git+https://github.com/apollocmh/docx-preview.git","type":"git","directory":"packages/vue-docx-preview"},"_npmVersion":"12.0.2","description":"Vue 3 DOCX viewer component (toolbar, pager, zoom, thumbnails) built on @apollo-design/docx-preview","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"@apollo-design/docx-preview":"0.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"vue":">=3"},"_npmOperationalInternal":{"tmp":"tmp/vue-docx-preview_0.2.0_1788749232759_0.9993151219407161","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@apollo-design/vue-docx-preview","version":"0.3.0","keywords":["word","docx","preview","viewer","vue"],"author":{"name":"apollocmh"},"license":"Apache-2.0","_id":"@apollo-design/vue-docx-preview@0.3.0","maintainers":[{"name":"apollocmh","email":"baochangliu0206@gmail.com"}],"homepage":"https://apollocmh.github.io/docx-preview/","bugs":{"url":"https://github.com/apollocmh/docx-preview/issues"},"dist":{"shasum":"0a95ab599d6f65bac5356cceb4578f5ae76e810b","tarball":"https://registry.npmjs.org/@apollo-design/vue-docx-preview/-/vue-docx-preview-0.3.0.tgz","fileCount":17,"integrity":"sha512-zn35mePUt2uinXv4yiP9CeT3orAApKiM4GJHaSxcKNdcV6LyMADKw0dXXfu5dXIIORAc+Q6/gU6d/y73j94dZQ==","signatures":[{"sig":"MEQCIAnxcmIS8eB4BA7fa38wXsHhCZeo7QOX54oX6uZBw8nbAiB1uv15XwtxSSCGfYEmX3RIji3im0NoXJhAvHABCPQOZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollo-design%2fvue-docx-preview@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117131},"type":"module","_from":"file:apollo-design-vue-docx-preview-0.3.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","development":"./src/index.ts"},"./style.css":{"default":"./dist/style.css","development":"./src/styles/viewer.css"},"./package.json":"./package.json"},"scripts":{"build":"vite build","typecheck":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac12275b-82a1-41b8-95de-acd7262f75c7"}},"_resolved":"/home/runner/work/docx-preview/docx-preview/apollo-design-vue-docx-preview-0.3.0.tgz","_integrity":"sha512-zn35mePUt2uinXv4yiP9CeT3orAApKiM4GJHaSxcKNdcV6LyMADKw0dXXfu5dXIIORAc+Q6/gU6d/y73j94dZQ==","repository":{"url":"git+https://github.com/apollocmh/docx-preview.git","type":"git","directory":"packages/vue-docx-preview"},"_npmVersion":"12.0.2","description":"Vue 3 DOCX viewer component (toolbar, pager, zoom, thumbnails) built on @apollo-design/docx-preview","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"@apollo-design/docx-preview":"0.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vite":"^8.2.2","vue-tsc":"^3.3.11","typescript":"^5.0.3","vite-plugin-dts":"^5.1.0","@vitejs/plugin-vue":"^6.0.8"},"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-docx-preview_0.3.0_1789378312532_0.009678812023678152","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@apollo-design/vue-docx-preview","version":"0.4.0","description":"Vue 3 DOCX viewer component (toolbar, pager, zoom, thumbnails) built on @apollo-design/docx-preview","keywords":["word","docx","preview","viewer","vue"],"license":"Apache-2.0","author":{"name":"apollocmh"},"repository":{"type":"git","url":"git+https://github.com/apollocmh/docx-preview.git","directory":"packages/vue-docx-preview"},"homepage":"https://apollocmh.github.io/docx-preview/","bugs":{"url":"https://github.com/apollocmh/docx-preview/issues"},"type":"module","exports":{".":{"development":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":{"development":"./src/styles/viewer.css","default":"./dist/style.css"},"./package.json":"./package.json"},"sideEffects":["**/*.css"],"peerDependencies":{"vue":"^3.0.0"},"dependencies":{"@apollo-design/docx-preview":"0.9.0"},"devDependencies":{"@vitejs/plugin-vue":"^6.0.8","typescript":"^5.0.3","vite":"^8.2.2","vite-plugin-dts":"^5.1.0","vue":"^3.5.42","vue-tsc":"^3.3.11"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"vite build","typecheck":"vue-tsc --noEmit"},"_id":"@apollo-design/vue-docx-preview@0.4.0","_integrity":"sha512-A92QKccsXP2UA08tnS6hYrd9mZzJIUEzGMKgwXiZIFHHZQevJwpFH3jF1XK/gKqXfvj/EXmtbJHE1LunLNYYHQ==","_resolved":"/home/runner/work/docx-preview/docx-preview/apollo-design-vue-docx-preview-0.4.0.tgz","_from":"file:apollo-design-vue-docx-preview-0.4.0.tgz","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-A92QKccsXP2UA08tnS6hYrd9mZzJIUEzGMKgwXiZIFHHZQevJwpFH3jF1XK/gKqXfvj/EXmtbJHE1LunLNYYHQ==","shasum":"e68baf8b07103db55a9677551edd9230176b7d23","tarball":"https://registry.npmjs.org/@apollo-design/vue-docx-preview/-/vue-docx-preview-0.4.0.tgz","fileCount":17,"unpackedSize":131777,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apollo-design%2fvue-docx-preview@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCuQ9lJQaiGm8hleAZk0X2NuLPza4VdhNF9yKNv+ohleQIhAJVbqpW63iynEnI8pb3tMGRpI0jbiYj92w4nl76OE2UF"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac12275b-82a1-41b8-95de-acd7262f75c7"}},"directories":{},"maintainers":[{"name":"apollocmh","email":"baochangliu0206@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-docx-preview_0.4.0_1789495288104_0.16604761882829622"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-04T07:42:22.591Z","modified":"2026-09-15T18:01:28.585Z","0.1.0":"2026-09-04T07:42:22.966Z","0.2.0":"2026-09-07T02:47:12.873Z","0.3.0":"2026-09-14T09:31:52.648Z","0.4.0":"2026-09-15T18:01:28.233Z"},"bugs":{"url":"https://github.com/apollocmh/docx-preview/issues"},"author":{"name":"apollocmh"},"license":"Apache-2.0","homepage":"https://apollocmh.github.io/docx-preview/","keywords":["word","docx","preview","viewer","vue"],"repository":{"type":"git","url":"git+https://github.com/apollocmh/docx-preview.git","directory":"packages/vue-docx-preview"},"description":"Vue 3 DOCX viewer component (toolbar, pager, zoom, thumbnails) built on @apollo-design/docx-preview","maintainers":[{"name":"apollocmh","email":"baochangliu0206@gmail.com"}],"readme":"# @apollo-design/vue-docx-preview\n\nVue 3 DOCX 查看器组件——WPS 风格工具栏、翻页器、缩放（适应宽度/百分比）、下载、缩略图侧栏、页角裁切标记，基于 [`@apollo-design/docx-preview`](https://www.npmjs.com/package/@apollo-design/docx-preview)（将 DOCX 渲染为语义化 HTML，含重排分页引擎）。\n\n> 本项目基于 [docxjs](https://github.com/VolodymyrBaydalka/docxjs)（Volodymyr Baydalka，Apache-2.0）深度改造。\n\n## 安装\n\n```bash\npnpm add @apollo-design/vue-docx-preview\n# 或 npm i / yarn add\n```\n\npeer 依赖：`vue >= 3`。\n\n## 使用\n\n```vue\n<script setup>\nimport { DocxViewer } from '@apollo-design/vue-docx-preview';\nimport '@apollo-design/vue-docx-preview/style.css';\n</script>\n\n<template>\n  <!-- 组件高度由外部容器决定（内部 height: 100%），请为父元素设置高度 -->\n  <DocxViewer\n    url=\"/files/报告.docx\"\n    style=\"height: 100%\"\n    @rendered=\"() => console.log('rendered')\"\n    @error=\"console.error\"\n  />\n</template>\n```\n\n需要鉴权（token、自定义请求头等）时用 `customRequest` 接管请求：\n\n```vue\n<script setup>\nconst customRequest = async (url) => {\n  const res = await fetch(url, { headers: { Authorization: `Bearer ${token}` } });\n  if (!res.ok) throw new Error(`HTTP ${res.status}`);\n  return res.blob();\n};\n</script>\n\n<template>\n  <DocxViewer url=\"/api/files/123\" :custom-request=\"customRequest\" />\n</template>\n```\n\n## Props\n\n| Prop | 类型 | 默认值 | 说明 |\n|---|---|---|---|\n| `url` | `string \\| null` | `null` | 文档地址，默认 GET 读取；变化即重新加载。为空时显示空态 |\n| `customRequest` | `(url) => Promise<Blob \\| ArrayBuffer \\| Uint8Array \\| null>` | — | 自定义请求（鉴权头等）；缺省用 `fetch` GET |\n| `name` | `string` | url 末段 | 下载按钮使用的文件名 |\n| `initialScale` | `'fit' \\| number` | `'fit'` | 初始缩放：适应宽度或百分比（`0.75` / `75` 均可）；仅挂载时生效 |\n| `showThumbs` | `boolean` | `true` | 初始是否显示缩略图侧栏；仅挂载时生效 |\n| `renderOptions` | `Partial<Options>` | — | 透传给核心库的渲染选项，合并于 `{ paginate: true, experimental: true }` 之上 |\n\n事件：`@rendered`（渲染完成）/ `@error`（渲染失败）。\n\n## 空态\n\n`url` 为空（`null` / 空串）且没有正在加载时，组件渲染 `#empty` 插槽（缺省为「暂无预览文档」）：\n\n```vue\n<template>\n  <DocxViewer :url=\"fileUrl\" style=\"height: 100%\">\n    <template #empty>\n      <p>请选择一个 DOCX 文件</p>\n    </template>\n  </DocxViewer>\n</template>\n```\n\n## 外部字体\n\n通过 `renderOptions.fonts` 注入 webfont。字体族名必须与文档内部引用一致（中文文档常直接引用中文族名，如 `宋体`），别名需列为单独条目：\n\n```vue\n<script setup>\nconst renderOptions = {\n  fonts: [\n    { name: 'SimSun', src: 'url(/fonts/simsun.woff2) format(\"woff2\")' },\n    { name: '宋体', src: 'url(/fonts/simsun.woff2) format(\"woff2\")' },\n  ],\n};\n</script>\n\n<template>\n  <DocxViewer url=\"/files/报告.docx\" :render-options=\"renderOptions\" />\n</template>\n```\n\n## 在线 Demo\n\n[Vue Viewer Demo](https://apollocmh.github.io/docx-preview/demos/vue/) · [文档站](https://apollocmh.github.io/docx-preview/)\n\n## License\n\nApache-2.0 · 基于 docxjs（见仓库 NOTICE）\n","readmeFilename":"README.md"}