Pdf.js: ์‹œ์Šคํ…œ ๊ธ€๊ผด์„ ์‚ฌ์šฉํ•˜๋Š” PDF๋ฅผ ๋กœ๋“œํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2014๋…„ 02์›” 04์ผ  ยท  27์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mozilla/pdf.js

ํ…Œ์ŠคํŠธ ํŒŒ์ผ: https://dl.dropboxusercontent.com/u/16283445/PORTRAIT.pdf

ํŒŒ์ผ์€ Muhimbi PDF ๋ณ€ํ™˜๊ธฐ์— ์˜ํ•ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ…์ŠคํŠธ(์ž„๋ฒ ๋””๋“œ Tahoma ๊ธ€๊ผด ์‚ฌ์šฉ)๋Š” ์ •์ƒ์ ์œผ๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๋Š” ํŒŒ์ผ ์ƒ๋‹จ์˜ ํ‰๊ฐ€ํŒ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋””๋ฒ„๊น… ํ›„์— ์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์‹œ์Šคํ…œ Helvetica ๊ธ€๊ผด์„ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ํ•ด๋‹น ๊ธ€๋ฆฌํ”„๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ๊ธฐ๋ก:

Error: Requesting object that isn't resolved yet Helvetica_path_T pdf.js:205
    at error (http://[skipped]/pdfjs/pdf.js:207:15)
    at Object.PDFObjects_get [as get] (http://[skipped]/pdfjs/pdf.js:4640:9)
    at Object.FontFace.getPathGenerator (http://[skipped]/pdfjs/pdf.js:7675:23)
    at Object.CanvasGraphics.paintChar (http://[skipped]/pdfjs/pdf.js:6105:26)
    at Object.CanvasGraphics_showText [as showText] (http://[skipped]/pdfjs/pdf.js:6291:18)
    at Object.CanvasGraphics_nextLineShowText [as nextLineShowText] (http://[skipped]/pdfjs/pdf.js:6381:12)
    at Object.CanvasGraphics_executeOperatorList [as executeOperatorList] (http://[skipped]/pdfjs/pdf.js:5600:22)
    at Object.InternalRenderTask__next [as _next] (http://[skipped]/pdfjs/pdf.js:4807:39)
    at Object.pdfViewcContinueCallback [as continueCallback] (http://[skipped]/pdfjs/viewer.js:4261:9)
3-pdf-broken 4-font-conversion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

pdfjs-dist": "^2.2.2 set disableFontFace: false ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

pdfjs.getDocument( { url: pdfUrl, disableFontFace: false, }

๋ชจ๋“  27 ๋Œ“๊ธ€

์ด๊ฒƒ์€ font_loader.js#L313 ์—์„œ ๊ธ€๊ผด์„ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•  ๋•Œ ๊ธ€๊ผด์ด ๋กœ๋“œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ œ๋Š” ์ด ๊ฒฝ์šฐ font.data ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์–ด์ง„ evaluator.js#L284 ์—์„œ ์‹ค์ œ๋กœ ์ „ํ˜€ ๋กœ๋“œ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ํ•ด๋‹น ๊ธ€๊ผด์— ํฌํ•จ๋œ ๊ธ€๊ผด ํŒŒ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, fonts.js์—์„œ font.data ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์ „์— ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. fonts.js#L2256 ๋ฐ fonts.js# L2303์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ์šฐ๋ฆฌ์—๊ฒŒ ๋” ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ์ด์œ ๋Š” ๊ธ€๊ผด ๋ฆฌ์†Œ์Šค๊ฐ€ ์˜ˆ๋ฅผ ๋“ค์–ด XObject ์‚ฌ์ „์— ํฌํ•จ๋œ PDF(์ด ๋ฌธ์ œ์™€ ๊ฐ™์€)์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ฝ”๋“œ์—์„œ๋Š” ๊ธ€๊ผด ํŒŒ์ผ ์—†์ด font.data ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›Œ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ–‰ํžˆ๋„ ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. PDF.js์— ํ‘œ์ค€ ๊ธ€๊ผด์„ ํฌํ•จํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ "๋ฌด๋ฃŒ๋กœ" ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ถ”์‹ : ๋˜ํ•œ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด http://bthorben.github.io/pdfRepo/#crashed์— ๋‚˜์—ด๋œ ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜(๋˜๋Š” ๋‘ ๊ฐœ)๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค๋Š” ์‚ฌ์‹ค๋„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์™€ ๊ฐ™์€ ์†”๋ฃจ์…˜์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

1 - ์ •ํ™•ํ•œ ํŒŒ์ผ์— ์ด๋ฏธ ์‚ฌ์šฉ๋œ ์ผ๋ถ€ ๊ธฐ๋ณธ ๊ธ€๊ผด ๋˜๋Š” ์ผ๋ถ€ ๊ธ€๊ผด์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์˜ต์…˜
2 - ์ด ํ•ญ๋ชฉ์˜ ๋ Œ๋”๋ง ๊ฑด๋„ˆ๋›ฐ๊ธฐ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์˜ต์…˜
์ด๊ฒƒ์€ ์ผ๋ถ€ ๊ธ€๊ผด์ด ์—†๋Š” ๊ฒฝ์šฐ pdf ํŒŒ์ผ๋กœ ์ž‘์—…์„ ๊ณ„์†ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์˜ค๋ฅ˜๋ฅผ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฒฝ๊ณ ๋กœ๋งŒ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•ด?

์šฐ๋ฆฌ๋Š” ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์„ ์„ ํ˜ธํ•˜์ง€๋งŒ ์•„์ง ์–ด๋–ค ๊ธ€๊ผด๋„ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ์ผ๋ถ€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ธ€๊ผด์„ ํฌํ•จํ•˜๋Š” ์‹œ์Šคํ…œ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•˜๊ฒŒ ์Šคํ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ๋ฉด ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด ๊ธ€๊ผด์˜ ๊ฒฝ์šฐ ์š”์ฒญ ์‹œ ๋นˆ ๊ธ€์ž ์œค๊ณฝ์„ ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ)

๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ค‘์ง€ํ•˜๋Š” ๋Œ€์‹  ์ด ์˜ค๋ฅ˜๋ฅผ .catch(...)ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์—ด์–ด๋‘์‹ญ์‹œ์˜ค. ๋ถˆํ–‰ํžˆ๋„ ์ด ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ์˜ ๋ผ์ด๋ธŒ ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋Šฅ์„ ๋ง๊ฐ€๋œจ๋ฆฝ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด @xwcg ์—์„œ ์ œ์•ˆํ•œ ์ผ์ข…์˜ ์˜ค๋ฅ˜ ํฌ์ฐฉ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๊นŒ?

์†์ž„์ˆ˜๊ฐ€ ์—ฌ๊ธฐ์— ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: https://bugzilla.mozilla.org/show_bug.cgi?id=1463728

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”,
๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ •์‹ ์ˆ˜์ • ์ „์— ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? 2014 ๋…„๋ถ€ํ„ฐ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@diego-lipinski-de-castro ์ฐธ๊ณ ๋กœ, #9809 ๋ณ‘ํ•ฉ์œผ๋กœ ์ธํ•ด ignoreErrors: true๋ฅผ getDocument ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. npm pdfjs-dist๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•„์ง ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ธ€๊ผด์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณค ํ–ˆ๋˜ ์†Œ์Šค ๋ฐ PDF์—์„œ ์ด์ œ ๋ง‰ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ ์ด์ œ ์บ”๋ฒ„์Šค ์ถœ๋ ฅ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

@sirisian ์—…๋ฐ์ดํŠธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ถœ์‹œ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋ฉฐ

@sirisian npm pdfjs-dist ์—…๋ฐ์ดํŠธ๊ฐ€ ์–ธ์ œ์ธ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ? npm์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด?
๊ฐ์‚ฌ ํ•ด์š”

npm pdfjs-dist์šฉ ์ด ์ˆ˜์ • ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”, ๋˜ํ•œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์— ์—†๋Š” ๊ธ€๊ผด์„ ๊ธฐ๋ณธ ๊ธ€๊ผด๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @timvandermeij ์–ธ์ œ pdfjs-dist์—์„œ ์ด ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

pdfjs-dist": "^2.2.2 set disableFontFace: false ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

pdfjs.getDocument( { url: pdfUrl, disableFontFace: false, }

์ œ ์ƒ๊ฐ์—๋Š” pdf.js๊ฐ€ ํŠน์ • ๊ธ€๊ผด์˜ ํ…์ŠคํŠธ๋ฅผ ๋กœ๋“œํ•˜์ง€ ๋ชปํ•  ๋•Œ๋งˆ๋‹ค ๋ Œ๋”๋ง์„ ์ค‘์ง€ํ•˜๋Š” ๋Œ€์‹  ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ฒด ๊ธ€๊ผด(์˜ˆ: ๊ธ€๊ผด ํ™˜๊ฒฝ์„ค์ •์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ๊ธฐ๋ณธ ๊ธ€๊ผด)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ํ…์ŠคํŠธ๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "์œ„์˜ ์„ ํƒ ๋Œ€์‹  ํŽ˜์ด์ง€์—์„œ ์ž์ฒด ๊ธ€๊ผด์„ ์„ ํƒํ•˜๋„๋ก ํ—ˆ์šฉ" ์˜ต์…˜์ด ๋น„ํ™œ์„ฑํ™”๋œ Firefox 61 ๋ฐ ์ด์ „ ๋ฒ„์ „์˜ ๋™์ž‘์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ๋Œ€์ฒด ๊ธ€๊ผด๋กœ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

pdfjs-dist": "^2.2.2 set disableFontFace: false ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

pdfjs.getDocument( { url: pdfUrl, disableFontFace: false, }

์ด๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” pdfjs-dist ^2.0.943์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ €๋Š” IE 11์ด ์š”๊ตฌ ์‚ฌํ•ญ์ด๊ณ  ๋ณด์•ˆ ์„ค์ •(IT ํŒ€์—์„œ ๊ด€๋ฆฌ)์ด ์‚ฌ์šฉ์ž ์ •์˜ ๊ธ€๊ผด ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด PDF ๋ Œ๋”๋ง์ด ์ƒ์„ฑ๋˜๋ฉฐ ๋ Œ๋”๋งํ•  ๋•Œ ๋Œ€๋ถ€๋ถ„ ๋น„์–ด ์žˆ์œผ๋ฉฐ ๋ช‡ ๊ฐ€์ง€ ํ—ค๋“œ๋ผ์ธ๊ณผ ๊ธฐ์šธ์ž„๊ผด ๋ฌธ์ž๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

disableFontFace: true ๋ฅผ ์„ค์ •ํ•˜๋ฉด IE 11(๋ฐ ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €)์—์„œ ๋ฐ˜๋Œ€ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๊ธ€๊ผด์ด ๋ Œ๋”๋ง๋˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ litany ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet Times_path_i.".

์˜ค๋ฅ˜๋Š” ๋ชจ๋‘ ๋ฉ”์‹œ์ง€์˜ Times_path_* ๋ถ€๋ถ„์—์„œ ๋‹ค๋ฅธ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฌธ์„œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ๋“œํ•˜์ง€๋งŒ ํ—ค๋“œ๋ผ์ธ, ๊ธฐ์šธ์ž„๊ผด ๋ฐ ๊ธฐํƒ€ ๋ณ€ํ˜•์ด ์‹œ๊ฐ์ ์œผ๋กœ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋‹จ, ์ƒ๋‹จ์˜ ํˆฌ๋ช…ํ•œ ํ…์ŠคํŠธ ๋ ˆ์ด์–ด๋กœ ์ธํ•ด ๋นˆ ํ…์ŠคํŠธ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ)

๋”ฐ๋ผ์„œ ์ด ๊ด€๋ฆฌ๋˜๋Š” ๋ฒ„์ „์˜ IE 11(๊ธ€๊ผด์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž์˜ ๋ณด์•ˆ ์„ค์ •๋กœ ์ธํ•ด)์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ „์ฒด ๊ธ€๊ผด ๋ Œ๋”๋ง์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ IE 11์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ์‹œ๋„๋กœ ์ธํ•ด ๋ชจ๋“  ๊ณณ์—์„œ ๋ถ€๋ถ„์ ์œผ๋กœ ๊นจ์ง„ ๊ธ€๊ผด ๋ Œ๋”๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—์„œ ๋ง‰ํ˜”์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ œ์•ˆ?

๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” ํŒ€,
๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ทธ ์–ด๋–ค ๊ฒƒ๋„ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. disableFontFace=false๋กœ ์„ค์ •ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚ด ์ดํ•ด๋Š” disableFontFace=true๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด pdf์— ํฌํ•จ๋œ ๊ธ€๊ผด์ด ๋ฌด์—‡์ธ์ง€(๋˜๋Š” ์—†๋Š”์ง€) ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ง์ธ๊ฐ€์š”?

๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

6๋…„ ์ „ @AllSeeingEye ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ํ˜„์žฌ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” 594๊ฐœ์˜ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์ด ๋ฒ„๊ทธ๋‚˜ ๋ฌด์—‡์— ๋Œ€ํ•ด af * ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์ €๋ฅผ ์œ„ํ•œ ๋ฒ„๊ทธ๋Š” ์•„๋งˆ๋„ pdf-lib์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋‘ ์ข‹์€ ํ•˜๋ฃจ!

disableFontFace ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ…์ŠคํŠธ ๋ ˆ์ด์–ด ๋ Œ๋”๋ง ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋™์•ˆ ๋ช‡ ๊ฐ€์ง€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

disableFontFace: false ์ผ๋ถ€ ๋ฌธ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
image

disableFontFace: true ์—์„œ ์ด์ „ ๋ฌธ์„œ๊ฐ€ ์ž˜ ๋ Œ๋”๋ง๋˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ๋ฌธ์„œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
image

์ด ๋ชจ๋“  ์…€์€ ๋น„์–ด ์žˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ ๋ฌธ์„œ๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ž˜ ๋ Œ๋”๋ง๋˜๊ณ  ์ผ๋ถ€๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@Hatgor์™€ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ • ์‚ฌํ•ญ์ด๋‚˜ ์กฐ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์œ„์˜ ์†”๋ฃจ์…˜์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :|

๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. amazonlinux2๋ฅผ ์‹คํ–‰ํ•˜๋Š” Node12์˜ ๋žŒ๋‹ค์—์„œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธ€๊ผด์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ 14๊ฐœ ๊ธ€๊ผด์„ ๊ธฐ๋ณธ์ ์œผ๋กœ pdfjs์— ํฌํ•จํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜๋Š” ๊ธ€๊ผด์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ API๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์‹œ์Šคํ…œ์— ๊ธ€๊ผด์„ ์„ค์น˜ํ•˜๋ ค๋Š” ๋‚˜์˜ ๋…ธ๋ ฅ์€... ์„ฑ๊ณต์ ์ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ 14๊ฐœ์˜ ํ‘œ์ค€ ๊ธ€๊ผด์„ ๋ช…์‹œ์ ์œผ๋กœ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด pdf-lib์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ชจ๋“  PDF๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ ๋ Œ๋”๋ง์„ ์œ„ํ•ด ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ข€ ๊ณผํ•˜๊ณ  ์งœ์ฆ๋‚˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค๋ฉด....

๊ธ€๊ผด์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด amazonlinux2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ์ˆ˜์ •ํ•œ ํ›„ disableFontFace๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ false๋กœ ์„ค์ •ํ•˜์—ฌ ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ธ€๊ผด์„ ๋ Œ๋”๋งํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ PDF์˜ ํฌํ•จ๋œ ๊ธ€๊ผด์€ @Hatgor ์ฃผ์„์— ํ‘œ์‹œ๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ธฐํ˜ธ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„์š”, ์ง€๊ธˆ๊นŒ์ง€๋Š” PDF๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ธ€๊ผด์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์‚ฌ์œ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. PDF์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ธ€๊ผด์„ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ํ•„์š”ํ•œ .ttf(s)๋ฅผ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž„์˜์˜ ๊ธ€๊ผด์„ ๋กœ๋“œํ•˜๋Š” API์— ์•„๋ฌด ๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰