标签: react-pdf

我可以在react-pdf中设置PDF分辨率(每英寸像素数)吗?

一些背景:

PDF 文档没有原生像素分辨率。这是因为 PDF 文档是按英寸缩放的。然后,每个 PDF 查看器确定每英寸将显示多少像素(例如 Adob​​e Acrobat 为 110 像素/英寸)。

我的问题:

React-PDF使用默认比例 72ppi。然而,在许多情况下,这对于舒适的阅读来说太小了。我希望有办法将默认 PPI 设置为 96。

我目前所做的:

我将每个缩放<Page/>因子,但是我担心这种缩放是在主渲染过程之后96 / 72应用的(即在像素输出上)而不是作为其中的一部分(即在源文档上)。

<Document file={url}>
  <Page scale={96/72} pageNumber={1}/>
</Document>
Run Code Online (Sandbox Code Playgroud)

这可能会导致最终输出模糊。

可能的解决方案?

将文档渲染为 SVG 可能会改善最终的缩放分辨率细节。

<Page renderMode="svg"/>
Run Code Online (Sandbox Code Playgroud)

其他人有在react-pdf 中使用 PPI 的经验吗?

javascript pdf reactjs react-pdf

6
推荐指数
1
解决办法
6132
查看次数

警告:&lt;VIEW /&gt; 使用的大小写不正确。对 React 组件使用 PascalCase,对 HTML 元素使用小写

console.error node_modules/react-dom/cjs/react-dom.development.js:506 警告:使用不正确的大小写。对 React 组件使用 PascalCase,对 HTML 元素使用小写。

我有 Jest 和 react-pdf 的问题

reactjs react-native react-pdf

6
推荐指数
1
解决办法
5203
查看次数

结合umijs 生成react-pdf 非常慢

我在一个新的 umi 项目中包含了react-pdf

  • PDF 生成 150 个文本组件在没有 umi 的情况下花费了大约 311.44 毫秒
  • 使用 umi:7179.40 毫秒

在 umi 项目中,每个元素都需要大约 10 倍!

我试过的代码示例

import React from "react";
import "./styles.css";
import { Document, Page, pdf, Text, View } from "@react-pdf/renderer";

export default function App() {
  const pdfClickHandler = async () => {
    console.time("PDF generation took:");
    await pdf(
      <Document>
        <Page>
          <View>
            {Array.from(Array(150).keys()).map((key) => (
              <Text key={key}>text-element</Text>
            ))}
          </View>
        </Page>
      </Document>
    ).toBlob();
    console.timeEnd("PDF generation took:");
  };

  return (
    <div className="App">
      <button …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-pdf ant-design-pro umijs

6
推荐指数
1
解决办法
1284
查看次数

修复react-pdf 上的 CORS 问题

我正在尝试从 s3 链接获取 pdf 并在 React 应用程序中显示。我正在使用react-pdf。但是当react-pdf进行api调用来获取pdf时,我收到此错误

从源“...”获取“...”的访问已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。

在 React 应用程序上我还添加了这个,

源={{ 标头: { 'Access-Control-Allow-Origin': '*', }, }}

cors reactjs react-pdf

6
推荐指数
1
解决办法
2万
查看次数

如何使用react-pdf在pdf中渲染recharts图表

我一直在 NextJs 应用程序中的仪表板中使用 recharts 库,并且出现了通过 PDF 下载表格和图表的新要求。

在react-pdf的github上有一个问题,由于包中新发布了SVG支持,该问题现已关闭,作者指出绑定应该单独完成,人们已经实现了这一点。

到目前为止,我已经完成了 PDF 渲染简单内容,例如文本。注意:要让react-pdf在此沙箱中工作,您可能需要在新窗口中打开它。 https://codesandbox.io/s/simple-line-chart-forked-vifo9?file=/src/App.tsx

reactjs recharts react-pdf

6
推荐指数
0
解决办法
4427
查看次数

如何修复 React-pdf 查看器中的乱码文本?

我使用react-pdf创建了一个pdf查看器。当我显示某些 pdf 时,文本断断续续且难以阅读。我尝试过放大和缩小文档,但它在不同的比例下以不同的方式出现断断续续的情况。有时,在缩小然后放大后,文本在一定比例下甚至看起来还不错。

乱码文本示例

(1.5 比例的示例)

在此输入图像描述

(1.6 比例的示例)

起初,我认为这可能是react-pdf的问题,但我发现react-pdf基本上是PDF.js的包装器。我发现我可以在PDF.js 演示页面中复制该问题。

不幸的是,我正在处理包含识别信息的 pdf,因此我无法共享完整的 pdf 或完整屏幕截图。我将尽可能多地分享。

我尝试过的

  • 我最初的想法是,组件可能最初渲染得很小,然后在扩展时出现了问题。所以我把初始尺寸做得很大,但这并没有解决问题。
  • 我确保按照react-pdf主页上的说明包含标准字体
  • 我尝试使用在线 pdf 修复工具来修复 pdf 本身。那没有帮助。
  • 我尝试将 更改为Document api 文档中详细说明的renderMode内容。这是最有用的修复,因为它确实正确渲染了文本,但随后却导致 pdf 上的图像无法加载。'svg'

感谢您的帮助/建议。

如果我能找到一种方法来编辑 pdf 使其不包含敏感信息,我会尝试找到一个地方使其可用于测试。很抱歉目前无法提供该信息。我知道,当你自己无法复制时,很难给出建议。我会努力解决这个问题。

pdf text pdf.js react-pdf

6
推荐指数
2
解决办法
4227
查看次数

下载最低要求后,React PDF Viewer 库无法渲染第一页

我正在使用带有“pdfjs-dist”的react-pdf-viewer 3.9.0:“2.15.349”。

看起来 React PDF Viewer 仍然等到完全下载文件,而不是在下载最低要求后立即渲染第一页(快速 Web 视图或线性化技术)。我的文件已经线性化(字节流),即使正在获取文件,我也想渲染第一页。我很想知道如何解决这个问题!谢谢你!

pdf typescript reactjs react-pdf react-pdf-viewer

6
推荐指数
1
解决办法
995
查看次数

无法在 React js 中加载 PDF 文件

我正在开发一个简单的 React Web 应用程序,该应用程序可以向 IPFS 添加文件或从 IPFS 检索文件。

当文件添加到IPFS时,页面上会出现添加的文件(即医疗文件)的名称以及“查看文件”按钮。

单击该按钮时,应使用react-pdf 中的“文档”组件查看该文件[ https://www.npmjs.com/package/react-pdf | (文档 file="..." 。文件可以是 URL、base64 内容、Uint8Array等。)

从 IPFS 添加和检索文件工作成功。从 IPFS 检索到的文件以Uint8Array的形式传递到 Main.js 组件内的 Document 组件以查看 pdf 文件。但是,该页面无法加载 PDF 文件。另外,我收到一个错误:

Error: "Setting up fake worker failed: "window.pdfjsWorker is undefined"."
Run Code Online (Sandbox Code Playgroud)

请注意,我在 Main.js 中有以下内容:

  <Document file={{ data: pdfFile.content }}></Document>
Run Code Online (Sandbox Code Playgroud)

应用程序.js

      import React, { Component } from "react";
import Web3 from "web3";
import "./App.css";
import Meme from "../abis/Meme";
import Addressbar from "./Addressbar";
import Main from "./Main"; …
Run Code Online (Sandbox Code Playgroud)

javascript this reactjs ipfs react-pdf

5
推荐指数
1
解决办法
2万
查看次数

ReactJS React-pdf 错误“无法加载 PDF 文件。” 经过一些尝试

我创建了一个 React js 应用程序create-react-app,我正在尝试react-pdf查看 pdf。我遇到的问题是我的代码有时有效,有时无效。当我第一次加载应用程序时,pdf 总是加载得很好,但如果我访问网站上的其他链接/url,然后导航到包含 pdf 的页面,则 pdf 可能会在几次尝试后加载失败,并出现错误“加载失败” PDF 文件”。

如果出现错误,则如下图所示 在此输入图像描述

如果成功则如下图所示 在此输入图像描述

这就是我的实现方式

进口

import { Document, Page, pdfjs } from 'react-pdf/dist/esm/entry.webpack';
import { useState } from 'react';
import 'react-pdf/dist/esm/Page/AnnotationLayer.css';
Run Code Online (Sandbox Code Playgroud)

代码实现


function ReactPDF() {
    const imageKitURL = ' https://ik.imagekit.io/kwmvfjr0r';
    const pdf = `${imageKitURL}/test_files/file-example_PDF_1MB.pdf`;

    const [numPages, setNumPages] = useState(null);
    const [pageNumber, setPageNumber] = useState(1);

    function onDocumentLoadSuccess({ numPages }) {
        setNumPages(numPages);
        setPageNumber(1);
    }

    function changePage(offset) {
        setPageNumber((prevPageNumber) => prevPageNumber + offset);
    }

    function previousPage() {
        changePage(-1); …
Run Code Online (Sandbox Code Playgroud)

javascript pdf reactjs webpack react-pdf

5
推荐指数
1
解决办法
4111
查看次数

如何添加 URL 以用作 React-pdf 中的可点击链接

我正在使用react-pdf库生成pdf。一切似乎都工作正常,但我无法使Link@react-pdf/renderer 中的元素正常工作。

const add_hyperlink = (url_text: string) => {
  return <Text><Link src={url_text}>{url_text}</Link></Text>;
};
Run Code Online (Sandbox Code Playgroud)

在 pdf 文档中,它显示为链接,甚至指针在悬停时发生变化,单击链接时,在 chrome 中没有任何反应,而在 adobe reader 中,它会导致安全阻止。

我尝试使用<a>标签代替,但它产生了相同的输出。有人知道如何解决这个问题吗?谢谢。

编辑: 我在研究这个问题时意识到的一些事情。记下是因为很容易对微小的差异感到困惑。

  1. @react-pdf/renderer用于在 React 中创建 pdf。
  2. react-pdf用于在 React 应用程序中显示现有的 pdf。

有几次提到使用注释选项,包括"import 'react-pdf/dist/Page/AnnotationLayer.css';"哪些选项可以使链接对许多开发人员正确显示。然而,这属于react-pdf库,只有在需要在react-app中渲染pdf时才有效。

在本例中,我正在创建一个新的 PDF,@react-pdf/renderer但我正在生成一个链接来下载生成的 PDF 文件(https://react-pdf.org/advanced#on-the-fly-rendering)。

我也找到了解决我的问题的方法。我使用的链接应该重定向到另一个网址,因此出现了问题。我使用了src中的最后一个链接,然后它工作顺利。

我希望这些观察对将来的人有帮助:)

javascript reactjs react-pdf

5
推荐指数
0
解决办法
4478
查看次数