用pdfjs的时候,传的文件的base64,他显示的时候,这个文件的还是原pdf的宽度吗,如何设置
时间: 2024-09-06 19:02:49 浏览: 72
PDF.js 是一个用于在浏览器中查看 PDF 文件的 JavaScript 库。当你通过 Base64 编码将 PDF 文件传递给 PDF.js 时,加载的内容默认会保持原始 PDF 的宽高比。这意味着如果原 PDF 的页面宽度较大,它会在容器内按照比例展示,而不是固定尺寸。
如果你希望调整显示的大小,可以配置 `PDFViewer` 对象的一些属性。例如:
1. **FitWindow** 属性:这会让 PDF 自动适应浏览器窗口,但仍然保持原始的比例。你可以设置 `viewer.fitWindow = true;`
2. **scaleFactor** 或 **pageScaleFactor**:允许手动指定缩放因子。比如 `viewer.scaleFactor = 0.5` 将会使 PDF 双倍缩小。
```javascript
import { PDFViewer } from 'pdf.js';
const viewer = new PDFViewer({
container: document.getElementById('pdf-container'),
pdfDataUrlOrArrayBuffer: yourBase64Pdf,
initialZoomValue: 'auto-fit', // 或者设置具体的 zoom factor, 如 1.0 (no zoom), 2.0 (double scale)
});
```
如果你想限制最大或最小的缩放,可以在初始化时添加一些验证逻辑。请注意,实际效果可能受浏览器渲染限制。
相关问题
vue3 ts pdfjs-dist实现base64 pdf 生成本地文件
你可以使用pdfjs-dist库将base64格式的pdf文件转换为文件流,然后使用FileSaver库将文件流保存为本地文件。以下是一个示例代码:
```typescript
import pdfjs from 'pdfjs-dist'
import * as FileSaver from 'file-saver'
const base64Pdf = 'data:application/pdf;base64,...' // 替换成你的base64格式的pdf文件
pdfjs.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.worker.min.js'
const loadPdf = async (base64Pdf: string) => {
const loadingTask = pdfjs.getDocument({ data: atob(base64Pdf.split(',')[1]) })
const pdf = await loadingTask.promise
const pdfData = await pdf.getData()
return new Blob([pdfData], { type: 'application/pdf' })
}
const savePdfToLocal = (pdfBlob: Blob, fileName: string) => {
FileSaver.saveAs(pdfBlob, fileName)
}
const fileName = 'test.pdf' // 保存的文件名
loadPdf(base64Pdf).then(pdfBlob => savePdfToLocal(pdfBlob, fileName))
```
在上面的代码中,我们首先使用pdfjs-dist库将base64格式的pdf文件转换为Blob对象,然后使用FileSaver库将Blob对象保存为本地文件。注意,在使用pdfjs-dist库之前,我们需要先设置其全局worker的路径,以便正确加载工作线程。
pdfjs预览pdf base64
pdf.js是一款非常优秀的pdf解析工具,但是它不支持直接预览文件流。如果需要使用pdf.js预览base64编码的pdf文件,需要对pdf.js稍微改造。具体步骤如下:
1. 下载pdf.js。
2. 将接口返回的pdf文件流base64编码先本地缓存。
3. 跳转到下载的pdf文件夹里面的viewer.html文件,并将缓存的base64编码传递给viewer.html文件。
4. 在viewer.html文件中,使用pdf.js解析base64编码的pdf文件,并将其显示在页面上。
具体实现可以参考上述引用中的代码。如果您需要进一步了解pdf.js的使用和改造,可以查看pdf.js的官方文档。
阅读全文