Pdf.js: IE11์˜ iframe์—์„œ ์ธ์‡„ํ•˜๋ฉด ๋ฌธ์„œ ๋Œ€์‹  ์ฃผ๋ณ€ ํŽ˜์ด์ง€๊ฐ€ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 05์›” 22์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mozilla/pdf.js

๋ฉ”๋ชจ:
์ด๊ฒƒ์€ #7711 ๋ฐ ์•„๋งˆ๋„ #6152์—์„œ ์ด์ „์— ๋ณด๊ณ ๋˜์—ˆ์ง€๋งŒ ์ˆ˜์ •๋˜์—ˆ๊ฑฐ๋‚˜ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ์œผ๋กœ ์ž˜๋ชป ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ:

  • ์›น ๋ธŒ๋ผ์šฐ์ € ๋ฐ ํ•ด๋‹น ๋ฒ„์ „: IE 11.0.9600.19356, ์—…๋ฐ์ดํŠธ ๋ฒ„์ „ 11.0.125
  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „: Windows 7
  • PDF.js ๋ฒ„์ „: 2.0.943
  • ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ: ์•„๋‹ˆ์š”

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„:

  1. iframe์— ๋ทฐ์–ด ๋กœ๋“œ
  2. ๊ธฐ๋ณธ ํŽ˜์ด์ง€(iframe.contentWindow.print())์—์„œ javascript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์‡„ ํŠธ๋ฆฌ๊ฑฐ

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค
https://kleins05.github.io/pdf.js/test-ieiframe/
(IE11์—์„œ ๋กœ๋“œ, ์ธ์‡„ ๋ฒ„ํŠผ ํด๋ฆญ, ์ธ์‡„ ์ถœ๋ ฅ ํ™•์ธ)

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
iframe์˜ PDF๊ฐ€ ์ธ์‡„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋‚˜์š”?
์ฃผ๋ณ€ ํŽ˜์ด์ง€๊ฐ€ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.
Screen Shot 2019-05-22 at 13 21 01

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

์ด์œ ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์™€ ๋‹ฌ๋ฆฌ IE์˜ window.print๋Š” ํ˜„์žฌ ํฌ์ปค์Šค๊ฐ€ ์žˆ๋Š” ํ”„๋ ˆ์ž„/์œˆ๋„์šฐ๊ฐ€ ์ธ์‡„๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ window ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. document.execCommand๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

web/pdf_print_service.js:187์—์„œ print.call(window) ๋Œ€์‹ ; ์‚ฌ์šฉ:

var result = window.document.execCommand('print', false, null);
if (!result) {
   print.call(window);
}

IE11์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์ง€์›์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ˆ˜๋ฝํ•œ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•Œ๋ ค ์ค˜์š”.

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

IE11์˜ ์ธ์‡„ ์ง€์›์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ FAQ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ธฐ๋ณธ ๋ทฐ์–ด๋Š” ๋‹น๋ถ„๊ฐ„ IE 11/Edge(Chromium ๊ธฐ๋ฐ˜์ด ์•„๋‹˜)์—์„œ ๊ณ„์† ์ž‘๋™ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ/๋˜๋Š” ๊ธฐ๋ณธ ๋ทฐ์–ด ์‹คํ–‰์„ ์™„์ „ํžˆ ๋ฐฉํ•ดํ•˜๋Š” ๋ฒ„๊ทธ๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด์œ ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์™€ ๋‹ฌ๋ฆฌ IE์˜ window.print๋Š” ํ˜„์žฌ ํฌ์ปค์Šค๊ฐ€ ์žˆ๋Š” ํ”„๋ ˆ์ž„/์œˆ๋„์šฐ๊ฐ€ ์ธ์‡„๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ window ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. document.execCommand๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

web/pdf_print_service.js:187์—์„œ print.call(window) ๋Œ€์‹ ; ์‚ฌ์šฉ:

var result = window.document.execCommand('print', false, null);
if (!result) {
   print.call(window);
}

IE11์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์ง€์›์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ˆ˜๋ฝํ•œ๋‹ค๋ฉด ๊ธฐ๊บผ์ด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•Œ๋ ค ์ค˜์š”.

IE11์˜ ์ œํ•œ๋œ ์ง€์›์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๊ธฐ๊บผ์ด ์ˆ˜๋ฝํ•œ๋‹ค๋ฉด,

๋ถˆํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š” ๊ฐ€๋…์„ฑ/์œ ์ง€๋ณด์ˆ˜์„ฑ/์„ฑ๋Šฅ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ด์œ ๋กœ ๊ธฐ๋ณธ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์— ๋ฐฐ์น˜๋œ ํ˜ธํ™˜์„ฑ "ํ•ดํ‚น"์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ด๋Š” ํ•ญ์ƒ https://github.com/mozilla/pdf ์— ๋ฐฐ์น˜๋œ ํด๋ฆฌํ•„๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ์‹œ์ ์—์„œ ๋ฒ„๊ทธ๊ฐ€ ์œ ํšจํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด IE11์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์•„์ง ๊ฒฐ์ •๋˜์ง€ ์•Š์€ ๋ฏธ๋ž˜์˜ PDF.js ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋Œ€ํ•˜์„ธ์š”. IE11์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋‚จ์•„ ์žˆ๋Š” ์•ฝ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์—ญ์‚ฌ์ ์œผ๋กœ IE11์„ ์ง€์›ํ•˜๋ ค๋Š” ์‹œ๋„๋Š” ์ตœ์‹  JavaScript ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œํ•œํ–ˆ์Šต๋‹ˆ๋‹ค. , ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์—ฌ์ž๋“ค์ด ๋ณธ์งˆ์ ์œผ๋กœ ์ฃฝ์€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๋„๋ก ๊ฐ•์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.)

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