css “react-pdf”显示PDF中的文本而不是PDF本身?

pkmbmrz7  于 2023-01-22  发布在  React
关注(0)|答案(1)|浏览(168)

https://www.npmjs.com/package/react-pdf
我正在使用此包尝试显示PDF文件。
这是我当前显示的PDF:
https://i.imgur.com/YHKybGZ.png
正如你在这个截图中看到的
https://i.imgur.com/WAHvzHU.png
文本从PDF中提取出来并显示在PDF的图像下。我不想要这个。我只想要PDF。
这是它在开发检查器中的外观
https://i.imgur.com/QzaIrlo.png
有一个"react-pdf__Page__textContent"类,我不想包含它。我已经尝试过创建一个CSS类,但没有显示如下:

.react-pdf__Page__textContent{
    display: none;
  }

但那不起作用,文本仍然出现。
我不知道文本来自哪里,因为我没有在代码的任何地方包含"textContent"。这是我用来呈现PDF的代码。

    • pdf. js**
import SinglePagePDFViewer from "../components/pdf/single-page";
import samplePDF from "../components/pdf/diy-find_mac_address.pdf";

  <>
    <Navbar />
    <div className="pdf-wrapper">
      <div className="pdf-viewer">
        <SinglePagePDFViewer pdf={samplePDF} />
      </div>
    </div>
  </>
    • 单页. js**
import React, { useState } from "react";
import { Document, Page } from "react-pdf";

export default function SinglePage(props) {
  const [numPages, setNumPages] = useState(null);
  const [pageNumber, setPageNumber] = useState(1); //setting 1 to show fisrt page

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

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

  // function previousPage() {
  //   changePage(-1);
  // }

  // function nextPage() {
  //   changePage(1);
  // }

  const { pdf } = props;

  return (
    <>
      <Document
        file={pdf}
        options={{ workerSrc: "/pdf.worker.js" }}
        onLoadSuccess={onDocumentLoadSuccess}
      >
        <Page pageNumber={1} />
      </Document>
    </>
  );
}

以前有人用过这个包吗?需要帮助吗?我如何只显示PDF,而不显示下面的"文本内容"?
编辑:
尝试创建一个Stackblitz示例,但IDK如何使用PDF和stackblitz。如果您知道如何使用,此stackblitz将重现该问题:
https://stackblitz.com/edit/react-qkbqgf?file=src/App.js

wljmcqd8

wljmcqd81#

有一个类似的问题。你可以通过导入文本层css到文件来修复它:

import "react-pdf/dist/esm/Page/TextLayer.css";

这帮我摆脱了文字。
如果这样做不起作用,您也可以通过将<Page/>组件中的textlayer属性设置为false来禁用它,尽管我不建议这样做。

<Page pageNumber={1} renderTextLayer={false} />

相关问题