PdfViewer
๐จ Warningโ
- ์คํ์ผ์ด ์ ์ฉ๋ PdfViewer๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋,
PdfViewer
๋ฅผ ์ฌ์ฉํ๋ ํ์ผ ์ต์๋จ์import '@naverpay/react-pdf/index.css'
์ถ๊ฐ๊ฐ ํ์ํฉ๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒโ
- ๋จ์ PDF Viewer๋ง ํ์ํ ๊ฒฝ์ฐ (์ฆ, pdf text์ ๋ฐ๋ฅธ handler๊ฐ ํ์ ์๋ ๊ฒฝ์ฐ) ์ฌ์ฉ๋ฉ๋๋ค.
React (CSR / SSR)โ
import {PdfViewer} from '@naverpay/react-pdf'
function SomeComponent () {
return <PdfViewer pdfUrl={"pdfUrl"} onErrorPDFRender={onErrorPDFRender} />
}
Advanced Usageโ
Click Handler ๊ฐ ํ์ํ ๊ฒฝ์ฐโ
import {PdfViewer} from '@naverpay/react-pdf'
function SomeComponent() {
return (
<PdfViewer
pdfUrl={pdfUrl}
onClickWords={[{target: '์ฝ๊ด', callback: () => alert('์ฝ๊ด์ ํด๋ฆญํ์ต๋๋ค.')}]}
/>
)
}
์/ํ์ ์ปดํฌ๋ํธ rendering์ด ํ์ํ ๊ฒฝ์ฐโ
import {PdfViewer} from '@naverpay/react-pdf'
function PdfViewer() {
return (
<PdfViewer
pdfUrl={pdfUrl}
onErrorPDFRender={onErrorPDFRender}
header={<>์์์ ๋ ๋๋ง๋ ์ปดํฌ๋ํธ</>}
footer={<>ํ์์ ๋ ๋๋ง๋ ์ปดํฌ๋ํธ</>}
/>
)
}
PdfViewer์ ์ฃผ์ ๋๋ Propsโ
props | ์ค๋ช | ํ์ | ๊ธฐํ |
---|---|---|---|
pdfUrl | ๋
ธ์ถํ๊ณ ์ ํ๋ PDF์ ๋งํฌ / File Path local, cdn ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค. local ์ ๊ณต์, base path์ ์ ์ํด์ฃผ์ธ์. | string | required |
cMapUrl | ์ฌ์ฉํ PDF์ ์ง์ํ์ง ์๋ ํฐํธ๊ฐ ์์ ๊ฒฝ์ฐ์, camp์ด ์ ๋ก๋๋ url ์ฃผ์๋ฅผ ์ ์ด์ฃผ์ธ์. | string | optional |
cMapCompressed | ์ฌ์ฉํ PDF์ ์ง์ํ์ง ์๋ ํฐํธ๊ฐ ์์ ๊ฒฝ์ฐ์, ์์ถ ์ฌ๋ถ๋ฅผ ์ ์ด์ฃผ์ธ์. | boolean | optional |
withCredentials | url์ ํตํ pdf ์์ฒญ ์, header์ ๊ฐ์ด ์์ฒญํ ๊ฑด์ง์ ๋ํ ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. | boolean | optional |
onClickWords | ์ฝ๊ด์ด๋ ์ด๋ค ๋ค๋ฅธ Click ์ก์
์ ๋ฐ๋ฅธ ํ์์ด ํ์ํ ๋, ์ฃผ์
ํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ํ๋ ๋จ์ด๋ฅผ target์, target click ํ ์ทจํ ์ก์ ์ callback์ ๋ฃ์ด์ฃผ์ธ์. target ์ string , ์ ๊ท ํํ์ ์ ๋ชจ๋ ์ง์ํฉ๋๋ค. ๐จ ์ฃผ์ ๐จ ํด๋น props๊ฐ ์กด์ฌํ๋ฉด, ์๋์ผ๋ก ์ด์ ๋จ์๋ฅผ ๋์ต๋๋ค. @naverpay/react-pdf๋ ๊ธฐ๋ณธ์ ์ผ๋ก PDF๋ฅผ ํจ์จ์ ์ผ๋ก ๋ ๋๋งํ๊ธฐ ์ํด, ํ๋ฌธ์ฅ ๋จ์๋ก ๋ ๋๋งํ๊ณ ์์ต๋๋ค. react-pdf๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ์๋, space๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ฒ ๋ฉ๋๋ค. (์ ํํ์ง ์์ ์ ์์ต๋๋ค.) ์ด์ ๋จ์๋ก ๋๊ธฐ์ง ์๋ pdf๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค. | Array<{target: string | RegExp; callback: () => void}> | optional |
onLoadPDFRender | pdf load ์ฑ๊ณต handler | () => void | optional |
onErrorPDFRender | pdf error handler | (e: unknown) => void | optional |
header | PDF ์์์ rendering ๋ ์ปดํฌ๋ํธ๋ฅผ props๋ก ๋ฐ์ต๋๋ค. | ReactNode | optional |
footer | PDF ํ์์ rendering ๋ ์ปดํฌ๋ํธ๋ฅผ props๋ก ๋ฐ์ต๋๋ค. | ReactNode | optional |
Suggestionโ
onErrorPDFRender๋ pdf viewer์์ ์ค๋ฅ๊ฐ ๋ ๊ฒฝ์ฐ์ ํธ๋ฆฌ๊ฑฐ๋๋ callback ํจ์์ ๋๋ค.
-
PDF ๋ ๋๋ง ์๋ฌ์, pdf๋ฅผ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ PDF viewer๋ก ์ด์ด์ฃผ๋ handler ์ ๋๋ค.
-
ํ๋จ์ handler๋ฅผ ์ฌ์ฉํด๋ณด์ธ์.
const handleRenderPDFError = useCallback(
(e) => {
// ๋ธ๋ผ์ฐ์ ์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ pdf viewer๋ฅผ ์์ฐฝ์ผ๋ก ๋์ฐ๋๋ก ์ฒ๋ฆฌ
window.open(pdfUrl, '_blank')
// error logging
},
[pdfFilePath],
)