React-pdf - 图片重复渲染两次

3

我正在使用 https://react-pdf.org/styling,希望在点击打印按钮后显示加载的图片。但是,当我打印时,图片会渲染两次。

import React from "react";
import phoneLogo from "./images/phone.png";

import {
  Document,
  Page,
  Text,
  View,
  Font,
  StyleSheet,
  Image,
} from "@react-pdf/renderer";


const MyDoc = () => (
  <Document>
    <Page wrap>
      <Image src={phoneLogo} />
    </Page>
  </Document>
);

class App extends React.Component {
  render() {
    return (
      <div className="w-full">
        <div className="text-center py-12">
          <BlobProvider document={MyDoc()}>
            {({ url }) => (
              <a href={url} target="_blank">
                Print
              </a>
            )}
          </BlobProvider>
        </div>
      </div>
    );
  }
}

export default App;

我已经试过按照以下方式加载图像,但它根本没有显示出来。
const MyDoc = () => (
  <Document>
    <Page wrap>
      <Image src='/images/phone.png />
    </Page>
  </Document>
);

任何建议?谢谢!!
2个回答

1

已排序!!!

当以这种方式导入图像时,PNG确实会渲染两次。

const MyDoc = () => (
  <Document>
    <Page wrap>
      <Image src={phoneLogo} />
    </Page>
  </Document>
);

但是它可以使用图像地址,只渲染一次。
const MyDoc = () => (
  <Document>
    <Page wrap>
      <Image src="https://img.icons8.com/android/96/000000/phone.png" />
    </Page>
  </Document>
);

0

我将.png文件转换为base64编码,并添加到@react-pdf/renderer中,现在它对我来说运行良好。

<Image
 style={styles.header_image}
 src={`data:image/png;base64, the-base-64-encoded-string-goes-here`}
/> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接