Документ PDF выглядит полностью испорченным, если поместить его в iframe. Без упаковки iframe все работает нормально.
import React, { Component, useState } from 'react'
import { Document, Page, pdfjs } from 'react-pdf/dist/entry.webpack'
import { createPortal } from 'react-dom'
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`
export default class Sample extends Component {
render() {
return (
<IFrame
style={{ width: '80vw', height: '80vh' }}
>
<Document
file='https://s3.amazonaws.com/.../.pdf'
>
<Page
pageNumber={4}
/>
</Document>
</IFrame>
)
}
}
export const IFrame = ({ children, ...props }) => {
const [contentRef, setContentRef] = useState(null)
const mountNode = contentRef && contentRef.contentWindow.document.body
return (
<iframe {...props} ref={setContentRef}>
{mountNode &&
createPortal(
React.Children.only(children),
mountNode
)}
</iframe>
)
}
Есть идеи, что может пойти не так? Когда disableFontFace=true
документ хорошо отображается в iframe и выглядит полностью испорченным, если поместить его вне iframe.