Pdf.js: ์ธ์‡„๊ฐ€ ํ๋ฆฟํ•˜๊ฑฐ๋‚˜ ํ๋ฆฟํ•จ

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

FF19๋กœ pdf๋ฅผ ์ธ์‡„ํ•˜๊ณ  ์ƒˆ๋กœ์šด pdf ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์‡„๊ฐ€ ํ๋ฆฟํ•ฉ๋‹ˆ๋‹ค.

acrobat๋กœ ์ธ์‡„ํ•˜๋ฉด ๊ธ€๊ผด์ด ๊นจ๋—ํ•ด์ง‘๋‹ˆ๋‹ค.

์™ผ์ชฝ = ๊ณก์˜ˆ์‚ฌ
์˜ค๋ฅธ์ชฝ = ff pdf

๋‹น์‹ ์€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

https://plus.google.com/105533044232180103026/posts/dYL855pBkSM

3-upstream 4-printing

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

https://github.com/mozilla/pdf.js/commit/c09f634bb6c713f6dc36628145788c88e60448e0 ์ดํ›„ web/viewer.js renderPage ๊ธฐ๋Šฅ์ด ์žˆ๊ณ  ์ธ์‡„ ํ•ด์ƒ๋„๋Š” 150 DPI๋กœ ํ•˜๋“œ ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
  var scratchCanvas = activeService.scratchCanvas;
  var PRINT_RESOLUTION = 150;
  var PRINT_UNITS = PRINT_RESOLUTION / 72.0;

์ธ์‡„ ํ•ด์ƒ๋„๋ฅผ 300DPI๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ค„์„ ๋ณ€๊ฒฝํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

var PRINT_RESOLUTION = 300;

๋ฆด๋ฆฌ์Šค ํƒœ๊ทธ์— ๋”ฐ๋ฅด๋ฉด 1.7.x์—์„œ 1.10.x๊นŒ์ง€์˜ ๋ชจ๋“  PDF.js ๋ฒ„์ „์—๋Š” ์ด์ œ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์–ด๋””์—๋„ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ๋Š” web/viewer.js ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋Œ€์‹  ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ์ธ์‡„ ํ•ด์ƒ๋„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ ์€ PDF.js ๋ทฐ์–ด๋กœ PDF ํŒŒ์ผ์˜ ์ธ์‡„ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

pdf.js ์ถœ๋ ฅ์ด ์บ”๋ฒ„์Šค(์ •ํ™•ํ•˜๊ฒŒ๋Š” ํŽ˜์ด์ง€๋‹น ํ•˜๋‚˜์˜ ์บ”๋ฒ„์Šค)์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ํ”„๋ฆฐํ„ฐ ํ•ด์ƒ๋„์™€ 100% ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ์ผ์–ด๋‚œ๋‹ค.

DSCF8966

  • ์ƒ๋‹จ = Firefox ๋‚ด์žฅ PDF.js
  • ํ•˜๋‹จ = ์–ด๋„๋น„ ์•„ํฌ๋กœ๋ฑƒ

์ธ์‡„ ํ’ˆ์งˆ์€ ๋‹จ์ˆœํžˆ ๋ฐ›์•„ ๋“ค์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋‚ด์žฅ PDF.js๋Š” ์ž‘์€ ํฌ๊ธฐ์˜ ์‹œํŠธ๋ฅผ ๋ณต์‚ฌํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์˜ค๋ฅธ์ชฝ๊ณผ ์•„๋ž˜์ชฝ์— ๊ฒ€์€์ƒ‰ ํ…Œ๋‘๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋Š” ํ•ซ๋ผ์ธ์— ์žˆ๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง„ 200๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@BadFriend , @musiphil , ๊ท€ํ•˜ ๋˜๋Š” ๊ท€ํ•˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์šด์˜ ์ฒด์ œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

WinXP์˜ FFox 19์—์„œ PostScript ํ”„๋ฆฐํ„ฐ๋กœ์˜ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Š” ๊ฐ€๋กœ์„ ์€ ๋””๋”๋ง๋˜๊ณ  ์„ธ๋กœ์„ ์€ ๋ฏธ์„ธํ•ฉ๋‹ˆ๋‹ค. ๋จธ๋ฆฌ๊ธ€๊ณผ ๋ฐ”๋‹ฅ๊ธ€๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

Windows 7์—์„œ Firefox 19.0์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ PCL6์ด ์žˆ๋Š” HP Color LaserJet CP4525 ํ”„๋ฆฐํ„ฐ๋กœ ์ธ์‡„ํ–ˆ์Šต๋‹ˆ๋‹ค.

WSD ํฌํŠธ ๋˜๋Š” Adobe PDF(Adobe Acrobat 9.2.0)์—์„œ PCL6์„ ํ†ตํ•ด FF19 + Win7 64๋น„ํŠธ + OKI561

IMG_20130222_074757

์™ผ์ชฝ: ํฌ๋กฌ ํ”Œ๋Ÿฌ๊ทธ์ธ
์ค‘๊ฐ„: ์–ด๋„๋น„ ๋ฆฌ๋”
์˜ค๋ฅธ์ชฝ: Firefox pdf.js

PDF ๋‹ค์šด๋กœ๋“œ -> http://www.file-upload.net/download-7241349/offers-36.pdf.html

#2771๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. @brendandahl ์ธ์šฉ:

๋‚ฎ์€ ํ’ˆ์งˆ์€ https://bugzilla.mozilla.org/show_bug.cgi?id=811002 ์—์„œ ์ถ”์ ๋˜๊ณ 

์—…์ŠคํŠธ๋ฆผ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ Firefox ๋ฐ PDF.js์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

์—…์ŠคํŠธ๋ฆผ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ Firefox ๋ฐ PDF.js์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

Windows์—์„œ๋งŒ ์ˆ˜์ •๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. OSX์šฉ์œผ๋กœ ์ฑ„์›Œ์ง„ ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ(๋ฒ„๊ทธ 932313)๊ฐ€ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์œ ํšจํ•œ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(https://bugzilla.mozilla.org/show_bug.cgi?id=932313#c2์—์„œ ๋‚ด ์˜๊ฒฌ ์ฐธ์กฐ).

Linux์—์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ์ €๋Š” ์ด ๋ฒ„๊ทธ๋ฅผ ์—ด์–ด ๋‘๋Š” ๊ฒƒ์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ๋˜์—ˆ๋‚˜์š”?
์ด ๋ฐ๋ชจ ํŽ˜์ด์ง€๋Š” ํŒŒ์ด์–ดํญ์Šค์—์„œ ok๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
http://mozilla.github.io/pdf.js/web/viewer.html
https://dl.dropboxusercontent.com/u/1383480/work/printing/2015-02-16%2011.29.52.jpg

Chrome ๋ฐ Chromium์—์„œ ์ธ์‡„ ๊ฒฐ๊ณผ๊ฐ€ ๋„ˆ๋ฌด ํ๋ฆฟํ•˜์—ฌ ์„ค๋ช…ํ•  ๋‹จ์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
https://dl.dropboxusercontent.com/u/1383480/work/printing/2015-02-16%2011.29.58.jpg
ํ”„๋ฆฐํ„ฐ ๋ฐ PRINT_SCALE RATIO์˜ dpi๋ฅผ 1, 3, 4, 8๋กœ ์„ค์ •ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” github (8614c17)์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค - ๋™์ผ
(ํ™˜๊ฒฝ: ํฌ๋กฌ, ํฌ๋กฌ, ์œˆ๋„์šฐ 7)

๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
์ด๊ฒƒ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋น ๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@jonny64 ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ถˆํ–‰ํžˆ๋„ ์—ฌ๊ธฐ์—์„œ๋Š” Chrome/Chromium์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ๋งŽ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Firefox์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Chrome์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ธ์‡„์šฉ ํŠน์ˆ˜ API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Firefox์—์„œ ๋” ๋‚˜์€ ์ธ์‡„ ํ’ˆ์งˆ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ „์— API๋ฅผ ํ‘œ์ค€์œผ๋กœ ์ œ์•ˆํ–ˆ์ง€๋งŒ ๊ด€์‹ฌ์ด ๋ณ„๋กœ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ Firefox์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

:) @jviereck , ๊ธ€์Ž„, ์•Œ์•˜์–ด, ๋‚˜๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ์‚ด์•„์•ผ ํ•ด
Chrome ๋‚ด๋ถ€ ๋ทฐ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ •์ƒ์ ์œผ๋กœ ์ธ์‡„๋˜์ง€๋งŒ '์ €์žฅ'์œผ๋กœ ์ธํ•ด ํ‚ค์˜ค์Šคํฌ ๋ชจ๋“œ๊ฐ€ ์ค‘๋‹จ๋จ
(ํ‚ค์˜ค์Šคํฌ ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ์—์„œ Chrome์—์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋กœ ์ธ์‡„ํ•ด์•ผ ํ•จ)

์šด ์ข‹๊ฒŒ๋„, ๋‚˜๋Š” ์–ผ๋งˆ ์ „์— C์™€ ํ•จ๊ป˜ ์•ฝ๊ฐ„์˜ backgound๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
https://pdfium.googlesource.com/pdfium.git
Chrome ๋‚ด๋ถ€ ๋ทฐ์–ด์˜ ์˜ฌ๋ฐ”๋ฅธ ์†Œ์Šค์ž…๋‹ˆ๊นŒ?
Chrome ์„ค์ • ๋˜๋Š” --kiosk ๋ช…๋ น์ค„์ด ์„ค์ •๋œ ๊ฒฝ์šฐ '์ €์žฅ'์„ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ?
์–ด๋””์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋†’์€ ์ˆ˜์ค€์˜ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ์ ์–ด๋„ ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ๋Š” ์—ฌ์ „ํžˆ OS X ๋ฐ ์ตœ์‹  Firefox Dev Edition์˜ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

ํ”„๋ฆฐํ„ฐ ์—†์ด ์žฌ์ƒ์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•:

  • PDF.js ๋ทฐ์–ด์—์„œ "์ธ์‡„"๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • "PDF" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ( "... PDF๋กœ ์ €์žฅ"ํ•˜์ง€ ์•Š์Œ) "ํฌ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ €์žฅ ..."์„ ์„ ํƒ
  • Preview.app์—์„œ ์ €์žฅ๋œ .ps ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.

ํ…์ŠคํŠธ๋Š” ์„ ํƒํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ™•๋Œ€ํ•˜๋ฉด ํ…์ŠคํŠธ๊ฐ€ ์ƒ๋‹นํžˆ ํ”ฝ์…€ํ™”๋ฉ๋‹ˆ๋‹ค. "PDF๋กœ ์ €์žฅ..."์„ ์„ ํƒํ•˜๋ฉด ํ…์ŠคํŠธ๊ฐ€ ๋ฉ‹์ง€๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.

์—์„œ ๊ธฐ๋ณธ ํ•ด์ƒ๋„๋ฅผ ๋†’์ด๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
web/app.js::beforePrint
<< var pageSize = this.pdfViewer.getPageView(0).pdfPage.getViewport(1);

var pageSize = this.pdfViewer.getPageView(0).pdfPage.getViewport(2);

๋ฐ web/pdf_page_view.js::beforePrint
<< var ๋ทฐํฌํŠธ = pdfPage.getViewport(1);

var ๋ทฐํฌํŠธ = pdfPage.getViewport(2);

์ธ์‡„ ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ ํ’ˆ์งˆ์€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

#7677 ์ดํ›„ ์ผ๋ถ€ ๊ฐœ์„  ์‚ฌํ•ญ

์ง€๋‚œ 4๊ฐœ์›” ๋™์•ˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ตœ์‹  ๋ฒ„์ „์˜ pdf.js์—์„œ ์—ฌ์ „ํžˆ ๋ˆˆ์— ๋•๋‹ˆ๋‹ค. ์ตœ๊ทผ์— pdf.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋ฅผ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์ด์ œ Chrome์˜ ๊ธฐ๋ณธ PDF ๋ฆฌ๋”์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ํ๋ฆฟํ•œ ๋ฌธ์ž๋กœ ๋ฌธ์„œ๊ฐ€ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

Mozilla์˜ ์ž์ฒด ๋ฐ๋ชจ ํŽ˜์ด์ง€ ์—์„œ ์ธ์‡„ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PDF๋กœ ์ธ์‡„ํ•  ๋•Œ๋„ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋“œ๋ผ์ด๋ฒ„ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜์—์„œ pdf.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด pdf.js๋ฅผ ์™„์ „ํžˆ ์šฐํšŒํ•ด์•ผ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค( ์˜ˆ์‹œ ).

ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ๋Š˜๋ฆฌ์ง€ ์•Š๊ณ ๋Š” ๊ณ ํ’ˆ์งˆ ์ธ์‡„๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์บ”๋ฒ„์Šค ๋ฐฑ์—”๋“œ๋Š” ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณ ํ’ˆ์งˆ ์ธ์‡„๋ฅผ ์œ„ํ•ด ํ”„๋กœํ† ํƒ€์ž… SVG ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ตฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค(https://github.com/mozilla/pdf.js/projects).

PDF.js๊ฐ€ ์„ค์น˜๋œ Firefox ๋ฒ„์ „์— ๋”ฐ๋ผ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์ธ์‡„ ํ’ˆ์งˆ๊ณผ ํ๋ฆฟํ•œ ์ธ์‡„ ํ’ˆ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์œผ๋ฏ€๋กœ ์ธ์‡„ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฒ„์ „ ๊ฐ„์— ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Firefox 52, 47.0.2, 42์˜ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง์ ‘ ์ธ์‡„ํ•˜์—ฌ ์ถœ๋ ฅํ•œ https://imgur.com/7Beh7MO ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋‘ ๊ฐœ๋Š” ์ตœ์†Œํ•œ ์ตœ์‹  ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค. ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ FF 47.0.2์™€ FF 52 ๋ฆด๋ฆฌ์Šค ์‚ฌ์ด์— PDF.js์—์„œ ํ’ˆ์งˆ์ด ์ €ํ•˜๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ฒ„์ „์˜ Firefox์—์„œ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์ฑ…๊ฐˆํ”ผ๋ฅผ ๋ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์ €๋Š” ' ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

PDF.js์˜ Firefox ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฒ„์ „์„ ๋ณด๋ฉด 47.0.2๊ฐ€ ๋ฒ„์ „ 1.4.121์ด๊ณ  ์ปค๋ฐ‹ 51f6aba(be1e12d ์ดํ›„์˜ ์ปค๋ฐ‹์ผ ์ˆ˜ ์žˆ์Œ)์— ํ•ด๋‹นํ•˜๊ณ  Firefox 52๋Š” PDF.js 1.6๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 315, ๋Œ€๋žต์ ์œผ๋กœ c23f124๋ฅผ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ˜„์žฌ ์ด๋Ÿฌํ•œ ์ปค๋ฐ‹์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์ง€๋งŒ ๊ทธ ์ฐจ์ด๋Š” ์•„๋งˆ๋„ 400๊ฐœ ์ปค๋ฐ‹์ด๊ณ  ์ธ์‡„ ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด FF 47.0.2์™€ FF 52 ๋ฆด๋ฆฌ์Šค ์‚ฌ์ด์— PDF.js์—์„œ ํ’ˆ์งˆ์ด ์ €ํ•˜๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

PDF.js์˜ ๋ณ€๊ฒฝ์ด ์ฑ…์ž„์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ํ™•์‹คํ•˜์ง€๋งŒ Firefox์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์žˆ๋Š” ๊ทธ๋ž˜ํ”ฝ/์ธ์‡„ ์ฝ”๋“œ์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ€๋Šฅ์„ฑ์„ (์ตœ์†Œํ•œ ์ฒ˜์Œ์—๋Š”) ์™„์ „ํžˆ ๋ฌด์‹œํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
ํšŒ๊ท€ ๋ฒ”์œ„๋ฅผ ์ฐพ์œผ๋ ค๋ฉด http://mozilla.github.io/mozregression/ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๊ณ  ๋” ๋น ๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

PDF.js ๋‚ด๋ถ€์˜ ์ธ์‡„ ๋ฒ„ํŠผ์€ Firefox๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์‡„ํ•ฉ๋‹ˆ๊นŒ? ๋‚˜์˜
ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์— ๊ธฐ๋ฐ˜ํ•œ ๊ฐ€์ •
๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ €๊ฐ€
์ธ์‡„๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ธ์‡„ ์ฒ˜๋ฆฌ ๋Œ€ํ™” ์ƒ์ž์—์„œ๋„ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ํ”„๋ฆฐํ„ฐ๋กœ ๋ณด๋‚ด๋Š” ์ž‘์—…์œผ๋กœ PDF.js ๋ Œ๋”๋ง์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๊ฒŒ์š”
๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  PDF.js๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.
๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2017๋…„ 3์›” 14์ผ ์˜ค์ „ 9์‹œ 58๋ถ„์— "Jonas Jenwald" [email protected]์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ์‹œ๋œ ๋Œ€๋กœ FF 47.0.2์™€ FF 52 ๋ฆด๋ฆฌ์Šค ์‚ฌ์ด์— PDF.js์—์„œ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ
ํ’ˆ์งˆ์„ ๋ง์นœ ๊ฒƒ ๊ฐ™์ง€๋งŒ,

PDF.js์˜ ๋ณ€๊ฒฝ์ด ์›์ธ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ,
(์ ์–ด๋„ ์ฒ˜์Œ์—๋Š”)
๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ๋ถ€๋ถ„์˜ ๊ทธ๋ž˜ํ”ฝ/์ธ์‡„ ์ฝ”๋“œ์™€ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ด์–ดํญ์Šค.
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋” ๋น ๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํšŒ๊ท€๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์ฐพ์œผ๋ ค๋ฉด http://mozilla.github.io/mozregression/
๋ฒ”์œ„.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/mozilla/pdf.js/issues/2750#issuecomment-286428765 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AOZHcyFJnLjI8MhAXspe-SIikmMA7YWOks5rlpzwgaJpZM4AcblL
.

--
๊ณต์ง€ ์‚ฌํ•ญ์„ ์ฝ์œผ๋ ค๋ฉด ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.
http://www.mediweightlossclinics.com/sig/ ๊ธฐ๋ฐ€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜
http://www.mediweightlossclinics.com/sig/ ๊ต์œก ๋ชฉ์  ๋ฉด์ฑ… ์กฐํ•ญ
http://www.mediweightlossclinics.com/sig/ ํ”„๋žœ์ฐจ์ด์ฆˆ ๊ณต๊ฐœ ์„ฑ๋ช…

์ด์ „์—๋Š” Firefox ๋ธŒ๋ผ์šฐ์ €์˜ ์• ๋“œ์˜จ ๋ฐ ๋น„ ์• ๋“œ์˜จ ๋ฒ„์ „๊ณผ ๊ฐ™์ด ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ณณ์—์„œ Mozilla ๊ณ ์œ ์˜ mozPrintCallback ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ๋น„์™€ ๋” ๋†’์€ ํ’ˆ์งˆ. ๊ทธ๋Ÿฌ๋‚˜ Firefox ์ „์šฉ์ด๊ณ  ๋•Œ๋กœ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์„ ์ค„์ด๋ ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ ์ด์ œ Firefox ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(https://github.com/mozilla/pdf.js/blob/master/)์—์„œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. web/firefox_print_service.js).

์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์ด์ œ ์ผ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ € ์ •์˜ ์ธ์‡„ ๋กœ์ง์„ ์‚ฌ์šฉํ•˜์—ฌ ์บ”๋ฒ„์Šค๋ฅผ ๋ Œ๋”๋งํ•˜๊ณ  ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋Š” ๋ณ€๊ฒฝ๋œ ์บ”๋ฒ„์Šค ์Šค์ผ€์ผ๋ง/๊ธ€๊ผด ๋ Œ๋”๋ง ์ฝ”๋“œ ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ฒ„๊ทธ์— ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ๋Œ€๋ถ€๋ถ„์€ https://github.com/mozilla/pdf.js/commit/c09f634bb6c713f6dc36628145788c88e60448e0 ์„ ์ฐธ์กฐ

https://github.com/mozilla/pdf.js/commit/c09f634bb6c713f6dc36628145788c88e60448e0 ์ดํ›„ web/viewer.js renderPage ๊ธฐ๋Šฅ์ด ์žˆ๊ณ  ์ธ์‡„ ํ•ด์ƒ๋„๋Š” 150 DPI๋กœ ํ•˜๋“œ ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
  var scratchCanvas = activeService.scratchCanvas;
  var PRINT_RESOLUTION = 150;
  var PRINT_UNITS = PRINT_RESOLUTION / 72.0;

์ธ์‡„ ํ•ด์ƒ๋„๋ฅผ 300DPI๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ค„์„ ๋ณ€๊ฒฝํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

var PRINT_RESOLUTION = 300;

๋ฆด๋ฆฌ์Šค ํƒœ๊ทธ์— ๋”ฐ๋ฅด๋ฉด 1.7.x์—์„œ 1.10.x๊นŒ์ง€์˜ ๋ชจ๋“  PDF.js ๋ฒ„์ „์—๋Š” ์ด์ œ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์–ด๋””์—๋„ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ๋Š” web/viewer.js ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋Œ€์‹  ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ์ธ์‡„ ํ•ด์ƒ๋„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ ์€ PDF.js ๋ทฐ์–ด๋กœ PDF ํŒŒ์ผ์˜ ์ธ์‡„ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

@mpryvkin ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํ•ฉ๋ฒ•์ ์ธ ๊ฒฝ์šฐ about:config ์˜ ์˜ต์…˜์œผ๋กœ ๋ฐ˜๋“œ์‹œ ๋…ธ์ถœ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

๋งค๊ฐœ๋ณ€์ˆ˜ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—์„œ ๊ธฐ๋ณธ ํ•ด์ƒ๋„๋ฅผ ๋†’์ด๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
web/app.js::beforePrint
<< var pageSize = this.pdfViewer.getPageView(0).pdfPage.getViewport(1);

var pageSize = this.pdfViewer.getPageView(0).pdfPage.getViewport(2);

๋ฐ web/pdf_page_view.js::beforePrint
<< var ๋ทฐํฌํŠธ = pdfPage.getViewport(1);

var ๋ทฐํฌํŠธ = pdfPage.getViewport(2);

์ธ์‡„ ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ ํ’ˆ์งˆ์€ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํšจ๊ณผ๊ฐ€์žˆ๋‹ค!

์ผ๋ฐ˜ ๋ทฐ์–ด๋Š” ์ด์ œ #10854 ๋•๋ถ„์— printResolution ์•ฑ ์˜ต์…˜์„ ํ‘œ์‹œํ•˜๋ฏ€๋กœ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ ๋ทฐ์–ด๋ฅผ ๋” ์ด์ƒ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ธ์‡„ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋ฉด์„œ ์ธ์‡„ ํ•ด์ƒ๋„๋ฅผ ๋†’์ด๋ฉด ์ธ์‡„ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ฑฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์˜ ์‘๋‹ต ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด์ œ๋Š” ๋ทฐ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ ˆ์ถฉ์•ˆ์ž…๋‹ˆ๋‹ค.

@timvandermeij ์—…๋ฐ์ดํŠธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด "pdf.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ž"๋˜๋Š” "Firefox ์‚ฌ์šฉ์ž"์—์„œ์™€ ๊ฐ™์ด "์‚ฌ์šฉ์ž"์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ํ›„์ž ๋ฒ”์ฃผ์— ์†ํ•˜๋ฉฐ(์ด ๋ฒ„๊ทธ๋Š” Firefox ์‚ฌ์šฉ์ž์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค), ํ•ด๋‹น AppOptions๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ๋“  Firefox์— ๋…ธ์ถœ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ: @timvandermeij ๊ฐ€ "pdf.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ž"๋ฅผ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ AppOptions๊ฐ€ about:config๋ฅผ ํ†ตํ•ด Firefox์— ๋…ธ์ถœ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ž๋™์œผ๋กœ(์ฆ‰, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ด์–ดํญ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Œ) ๋Œ€๋ถ€๋ถ„์˜ AppOptions๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. pdfjs.cursorToolOnLoad ๋Š” about:config ์— ์žˆ์ง€๋งŒ defaultUrl ์ด๋‚˜ disableHistory ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์ด Firefox ์ปจํ…์ŠคํŠธ์—์„œ ์˜๋ฏธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@raztus ์˜ˆ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ž๋ฅผ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค. Firefox ๋นŒ๋“œ๋Š” ํ•ด๋‹น ๋ฒ”์œ„(https://github.com/mozilla/pdf.js/pull/10854#discussion_r287325125)์—์„œ ์ œ์™ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ๋ธŒ๋ผ์šฐ์ € ์‘๋‹ต์„ฑ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์— ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. . ์ด์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์œผ๋ฉด Firefox(mozcentral) ๋นŒ๋“œ์—์„œ๋„ ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@timvandermeij ์ด ๊ฐœ์„ ์— ๋Œ€ํ•ด @kleins05 ๋‹˜๊ณผ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋‚ด ๊ฒŒ์‹œ๋ฌผ ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์—…๋ฐ์ดํŠธ๋กœ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์‡„ ํ•ด์ƒ๋„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๊นŒ?

document.addEventListener('webviewerloaded', function() { PDFViewerApplicationOptions.set('printResolution', 300); });

๋„ค, ์ œ ์ƒ๊ฐ์ด ๋งž์Šต๋‹ˆ๋‹ค. webviewerloaded ์ด๋ฒคํŠธ๋Š” ์‹ค์ œ๋กœ ์•ฑ ์˜ต์…˜ ์„ค์ •์„ ์œ„ํ•ด ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. ๋ณด๋‹ค:
https://github.com/mozilla/pdf.js/blob/c91f437eaaff79b660805e020f4fa9d4a2a7fe65/web/viewer.js#L208 -L210
๊ทธ ์ดํ›„์—๋Š” PDFViewerApplicationOptions ๋ฅผ ํ•ญ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ํŠน์ • ์Šค๋‹ˆํŽซ์„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ฒ€์‚ฌ์—์„œ ์ข‹์•„๋ณด์ด๋ฉฐ ์ตœ์‹  master ๋ถ„๊ธฐ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ์Šค๋‹ˆํŽซ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ธ์‡„ ํ’ˆ์งˆ์ด ๊ฐœ์„ ๋˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@raztus ์˜ˆ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ž๋ฅผ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค. Firefox ๋นŒ๋“œ๋Š” ํ•ด๋‹น ๋ฒ”์œ„( #10854 (comment) )์—์„œ ์ œ์™ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ๋ธŒ๋ผ์šฐ์ € ์‘๋‹ต์„ฑ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์— ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋งํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์œผ๋ฉด Firefox(mozcentral) ๋นŒ๋“œ์—์„œ๋„ ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@timvandermeij ๊ทธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด printResolution ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด Firefox๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ธฐ๋ณธ ๋ทฐ์–ด(ํ•ญ์ƒ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ master ๋ถ„๊ธฐ ์ฝ”๋“œ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ฒดํฌ์•„์›ƒ์„ ์‹คํ–‰ํ•˜๋Š” https://mozilla.github.io/pdf.js/web/viewer.html)๋ฅผ ์—ด์–ด ์‹คํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. , ์›น ์ฝ˜์†”์„ ์—ด๊ณ  PDFViewerApplicationOptions.set('printResolution', 300); ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ธ์‡„ ํ•ด์ƒ๋„๊ฐ€ ๊ธฐ๋ณธ 150DPI ๋Œ€์‹  300DPI๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ธ์‡„ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ธ์‡„ ํ’ˆ์งˆ์˜ ์ฐจ์ด๋ฅผ ์•Œ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Ÿ‰๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด ๋‹จ๊ณ„๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค). ์ฃผ์š” ์งˆ๋ฌธ์€ DPI์˜ ์ธ์‡„ ํ•ด์ƒ๋„๊ฐ€ ์†Œํ˜•/์ค‘ํ˜•/๋Œ€ํ˜•๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ…์ŠคํŠธ ์ „์šฉ ๋˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์€ ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ PDF ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰/๋ Œ๋”๋ง ์‹œ๊ฐ„๊ณผ ์–ด๋–ป๊ฒŒ ๊ด€๋ จ๋˜๋Š”์ง€์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์‹ค์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด Firefox ๋นŒ๋“œ์— ๋Œ€ํ•œ ์„ค์ •๋„ ๋„์ž…ํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ Chrome Canary ๋ฒ„์ „ 77.0.3818.0(๊ณต์‹ ๋นŒ๋“œ) canary(64๋น„ํŠธ)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ, ์˜ต์…˜์„ ์„ค์ •ํ•˜๋ฉด ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ํ•˜๋ฉด undefined ๊ฐ€ ์ œ๊ณต๋˜์ง€๋งŒ ๋‹ค์‹œ ์ธ์‡„ํ•˜๋ฉด ์ธ์‡„ ์ถœ๋ ฅ ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ.
์ด๊ฒƒ์ด ์‚ฌ์šฉ์ž ์„ค์ • ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ๋งŒ ์„ค์ • ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ์œ„์˜ ์ฃผ์„, ํŠนํžˆ https://github.com/mozilla/pdf.js/issues/2750#issuecomment -496697032์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์ „์— ๋จผ์ € ์‹คํ—˜ํ•ด ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ถˆ๊ณผ ํ•˜๋ฃจ ์ „์— PR #10879๊ฐ€ ์™€ ๋ณ‘ํ•ฉ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ๋ฌธ์ œ์— ์•ฝ๊ฐ„ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ ์ตœ์†Œํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋” ์‰ฝ๊ฒŒ ์‹คํ—˜ํ•˜๊ณ  ๊ฐœ์„  ์‚ฌํ•ญ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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