React-pdf - изображение отрисовывается дважды - PullRequest
0 голосов
/ 29 мая 2020

Я использую 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 ]

0 голосов
/ 19 августа 2020

Я преобразовал файл .png в кодировку base64 и добавил в @ react-pdf / renderer, и теперь он у меня работает нормально.

<Image
 style={styles.header_image}
 src={`data:image/png;base64, the-base-64-encoded-string-goes-here`}
/> 
0 голосов
/ 29 мая 2020

Сортировано !!!

Файл 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>
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...