当前位置:首页 > React

react如何预览远程的pdf

2026-01-25 09:02:42React

使用react-pdf预览远程PDF

安装react-pdf库

npm install @react-pdf/renderer

引入PDFViewer组件

import { PDFViewer } from '@react-pdf/renderer';

渲染PDF查看器

<PDFViewer width="100%" height="600px">
  <Document file="http://example.com/document.pdf">
    <Page pageNumber={1} />
  </Document>
</PDFViewer>

使用PDF.js预览远程PDF

安装pdfjs-dist

npm install pdfjs-dist

创建PDF查看组件

react如何预览远程的pdf

import { useEffect, useRef } from 'react';
import * as pdfjsLib from 'pdfjs-dist';

function PDFViewer({ url }) {
  const canvasRef = useRef(null);

  useEffect(() => {
    const loadPDF = async () => {
      const loadingTask = pdfjsLib.getDocument(url);
      const pdf = await loadingTask.promise;
      const page = await pdf.getPage(1);

      const viewport = page.getViewport({ scale: 1.0 });
      const canvas = canvasRef.current;
      const context = canvas.getContext('2d');

      canvas.height = viewport.height;
      canvas.width = viewport.width;

      const renderContext = {
        canvasContext: context,
        viewport: viewport
      };

      await page.render(renderContext).promise;
    };

    loadPDF();
  }, [url]);

  return <canvas ref={canvasRef} />;
}

使用iframe嵌入PDF

简单直接的方法

<iframe 
  src="http://example.com/document.pdf" 
  width="100%" 
  height="600px"
  title="PDF Viewer"
/>

使用Google Docs查看器

通过Google Docs服务嵌入

<iframe
  src={`https://docs.google.com/viewer?url=${encodeURIComponent('http://example.com/document.pdf')}&embedded=true`}
  width="100%"
  height="600px"
  frameBorder="0"
/>

注意事项

确保远程PDF服务器配置了CORS头部,允许从你的域名访问

react如何预览远程的pdf

对于大文件PDF,考虑实现分页加载功能

某些浏览器可能需要PDF插件才能正确显示

react-pdf更适合生成PDF,而PDF.js更适合渲染现有PDF

考虑添加加载状态和错误处理以改善用户体验

标签: reactpdf
分享给朋友:

相关文章

react 如何引入jquery

react 如何引入jquery

安装 jQuery 库 在 React 项目中引入 jQuery 的第一步是安装 jQuery。可以通过 npm 或 yarn 安装: npm install jquery # 或 yarn…

react如何验证

react如何验证

表单验证方法 在React中验证表单数据通常使用以下几种方式: 内置HTML5验证 利用HTML5原生表单验证属性如required、pattern等,结合form.noValidate属性禁用浏览…

react 如何调试

react 如何调试

调试 React 应用的方法 使用 React Developer Tools 安装 Chrome 或 Firefox 的 React Developer Tools 扩展,可以检查组件树、状态和 p…

react如何清理

react如何清理

清理 React 项目的方法 清理未使用的依赖项 运行 npm prune 或 yarn install --production 可以移除 node_modules 中未在 package.json…

react如何重启

react如何重启

重启 React 应用的方法 重新加载当前页面 使用 window.location.reload() 强制刷新页面,这会重新加载整个应用并重置所有状态。 window.location…

react如何折叠

react如何折叠

在 React 中实现折叠功能 使用 useState 管理折叠状态 通过 useState 定义一个状态变量来控制折叠面板的显示与隐藏。例如: const [isCollapsed, setIsC…