๊ณต๊ฐ CDN์์ pdf.js๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ค์น ๋ฐ ์ ๋ฐ์ดํธ ์ํฌ ํ๋ก๋ฅผ ๋จ์ํ ํ ์ ์์ต๋๋ค.
cdnjs๋ ์์ฒญํ๋ฉด pdf.js๋ฅผ ๋ฌด๋ฃ๋ก ํธ์คํ ํ ๊ฒ์ ๋๋ค.
์ด๋ค ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ์ง ์ค๋ช ํด์ฃผ์ธ์. "๋ค๋ฅธ ํ๋ก์ ํธ๊ฐํ๊ธฐ ๋๋ฌธ์"๋ ๋์ ์ด์ ์ ๋๋ค.
์ข์ ์ง์ . ์ ๋ชฉ๊ณผ ์ค๋ช ์ ์ ๋ฐ์ดํธํ์ต๋๋ค.
pdf.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ npm install pdfjs-dist
, bower install pdfjs-dist
๋ฐ pdfjs-dist repo์ git pull์ ํตํด npm์์ ์ค์นํ ์ ์์ต๋๋ค.
๊ณต๊ฐ CDN์์ pdf.js๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ค์น ๋ฐ ์ ๋ฐ์ดํธ ์ํฌ ํ๋ก๋ฅผ ๋จ์ํ ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ด๋ค ๊ฒฝ์ฐ๋ฅผ ๋ ผ์ํฉ๋๊น?
๋ด ์ํฌ ํ๋ก์์๋ npm์ด๋ bowar ๋๋ ํ๋ฐํธ ์๋ ์ข ์์ฑ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ณต๊ธ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ์ ํธํ์ง ์์ต๋๋ค.
๋์ cdn ํธ์คํ ๋ฒ์ ์ jquery, jqueryui, ckeditor ๋๋ ํ์ํ ๋ค๋ฅธ ์๋ฐ ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๊ฒฐํฉ๋๋ค. "์ ๊ทธ๋ ์ด๋"ํด์ผ ํ ๋๋ง๋ค URL์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค.
๋์ cdn ํธ์คํ ๋ฒ์ ์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ฐ CORS ์ ์ฑ ์ ๊ฒฐํจ์ผ๋ก ์ธํด ์ฌ์ฉ์๋ ์ค์ PDF ๊ตฌ๋ฌธ ๋ถ์์ ์ํํ๊ณ PDF.js์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํค๋ ์น ์์ ์ (pdf.worker.js ํ์ผ)๋ฅผ ์ธ์คํด์คํ ํ ์ ์์ต๋๋ค.
๋์์ด ์์ต๋๋ค : ์์ ์๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์์ค ์ดํ์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉฐ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ด๊ณ ํ๊ณ ์ถ์ง ์์ต๋๋ค.
๊ทธ๊ฒ ์ข์ ์ด์ ์ ๋๋ค. CORS๊ฐ ํ์ฉํ๋ค๋ฉด CDN์ ํธ์คํ ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ๊ฐ์ฌ!
jsfiddle์์ PDF.js๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ์ด๊ฒ์ ์ฐ์ฐํ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ค, ๋๋ถ๋ถ์ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก์ปฌ๋ก ์ค์นํ์ง ์๊ณ ํ๋กํ ํ์ดํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋
: +1 : cdn ์ง์์ฉ. ๋ฒ๊ทธ ์ฌํ ๊ณต์ ๋ฐ ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ ํฉ
2015 ๋ 11 ์ ํ์ฌ CDN ์ง์์ด์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
2015 ๋ 11 ์ ํ์ฌ CDN ์ง์์ด์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
AFIAK @cdnjs ๋
์ด ์ ์ฅ์ ๊ธฐ์ฌ์ ์ด๋์ ํฐ๋ธ๊ฐ ์๋๋ฏ๋ก ๊ฒ์ ๋ ์ฝ๋์ ๊ด๋ จํ์ฌ ๋ฌธ์ ๊ฐ ์๋์ง ์ ์ ์์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ์ถ๊ฐ ์ง๋ฌธ์ ํผํ๊ธฐ ์ํด ReadMe์ URL์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ง ์์ ์ ์์ต๋๊น?
์ฃ์กํฉ๋๋ค. ์ถ๊ฐ ์ง๋ฌธ์ ํผํ๊ธฐ ์ํด ReadMe์ URL์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ง ์์ ์ ์์ต๋๊น?
๋ฌธ์ ๋ ๋ณด์ ์ํ์์ด ์๋ํ๋์ง ํ์ธํ ๋๋ง ๊ฐ๋ฅํฉ๋๋ค. https://github.com/mozilla/pdf.js/issues/5490#issuecomment -63322602์์ ์์ ์ฐ๋ ค ์ฌํญ์
๋ฏธ์ํ์ง๋ง :)
๋ด ์ฌ์ฉ ์ฌ๋ก์๋ ์์ ํ ํฌ๋ช ์ฑ์ด ํ์ํฉ๋๋ค. ์ฑ๋ฅ์ ์ ์ ์ผ๋ก ์ข ์์ ์ ๋๋ค. ๊ทธ๋์ pdf.js๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์๋ฒ์ ์จ๊ฒจ์ง ๊ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ ํด๋ผ์ด์ธํธ์์ ์ด๋ฃจ์ด์ง๋ฉฐ ์ฝ๋๋ ์์ ์ด ์ฃผ์ฅํ๋๋๋ก ์ํ ํ ์ ์์ต๋๋ค.
๋ด ์ฝ๋๋ ์๊ณ ์ฝ๊ธฐ ์ฌ์ฐ ๋ฉฐ ์กฐ์ฌ๋ฅผ ์ํด ๊ณต๊ฐ๋ฉ๋๋ค. ํ๋ก๋์ ์์๋ ์ถ์๋์ง ์์ต๋๋ค. ์ ๋ ํด๋ผ์ด์ธํธ์์ ์คํ๋๋ ํ์ฌ ์ฝ๋์ ์์กดํ๋ฉฐ ์ ๋ขฐ๋ ์์ฑ์์ ์คํ ์์ค ์ปค๋ฎค๋ํฐ์์ ๋น๋กฏ๋ฉ๋๋ค. ์ฑ์ git ํ๋ธ์ ์คํ ์์ค์ด๋ฉฐ ์ฑ ์์ฒด๋ git ํ๋ธ์์๋ ํธ์คํ ๋ฉ๋๋ค.
์ฑ์ด ์ด๋ฐ ์์ผ๋ก ์ ์ง๋๋ ํ ๋ด ์ ์ฉ์ ์ค์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ค์ pdf.js๋ฅผ ํฌํจํ๋ฉด ๋น๋๋๊ฑฐ๋ ์ถ์๋์ง ์๋๋ผ๋ ํฌ๋ช ์ฑ์ด ์ฌ๊ฐํ๊ฒ ์ ํ๋ฉ๋๋ค. ์ฌ์ฉ์๋ ๋ด๊ฐ pdf.js ์ ๊ธ์ ์ ์ฑ ์ฝ๋๋ฅผ ์จ๊ธฐ์ง ์์๋ค๋ ๋ฏฟ์์ ๊ฐ์ ธ์ผํฉ๋๋ค.
๋ฐ๋ฉด์ pdf.js ๋ฐ ๊ธฐํ ๋ชจ๋ ํ์ฌ ์ฝ๋๊ฐ ํ๊ณผ ์ปค๋ฎค๋ํฐ์์ ์น์ธ ํ cdn์์ ๊ฐ์ ธ ์ค๋ฉด (๊ฐ๊ธ์ ์ด๋ฉด ์ถ์๋์ง ์์) ๋ด ์์ ์ ์ ๋ขฐ์ฑ์ ๊ฑฐ์ ๊ด๋ จ์ด ์์ต๋๋ค.
์์ ์๋ฅผ ์ํด ๋ํ ๋ (# 6753 ์ฐธ์กฐ) ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ CDN์์ "ํธ์คํ ๊ฐ๋ฅ"ํฉ๋๋ค (์ : jsfiddle ๋ฐ jsbin์์ ์ ์๋ํ๋ ์ต์ํ์ ์์ ).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Minimal PDF.js example</title>
<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
</head>
<body>
<script>
var loadingTask = PDFJS.getDocument('//cdn.mozilla.net/pdfjs/tracemonkey.pdf');
loadingTask.promise.then(function (pdfDocument) {
console.log('Num pages: ' + pdfDocument.numPages);
}, function (reason) {
console.error('Loading Error: ' + reason);
})
</script>
</body>
</html>
NPM CDN์ ์์ฒญ์ ๋ชจ๋ npm ํจํค์ง๋ฅผ ํธ์คํ ํฉ๋๋ค.
https://npmcdn.com/[email protected]/build/pdf.combined.js
๋น์ฐํ ๊ด๋ฆฌ์๋ ์น์ธํ์ง ์์์ง๋ง, ์ฌ๋๋ค์ด ํ๋กํ ํ์ดํ ๋ชฉ์ ์ผ๋ก ๊ทธ๊ฒ์ ์ํ๋ค๋ฉด ๊ฑฐ๊ธฐ์ ์์ต๋๋ค.
@yurydelendik ํ์คํ ์ ๋ฅผ ์ํด ์ผํ ๊ฒ์ ๋๋ค, ๊ฐ์ฌํฉ๋๋ค!
@darylteo ํ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋๋ ํฌ๋ช ํ์ง๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ ์๊ฒ ์ค์ํ ์ ์ ๋๋ค.
@darylteo , PDF.js ํ์ pdf.combined.js๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ ๋ ์ฌ์ฉ์ด ์๋๊ธฐ ๋๋ฌธ์ ํญ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋ํด ์๊ฐํ๊ณ ์์ต๋๋ค. ๊ฐ๋ฅํ๋ฉด ์ฌ์ฉํ์ง ๋ง์ญ์์ค (๋ํ pdf.combined.js๊ฐ ์์ํ๋ disableWorker = true๋ฅผ ์ ์ฉํ์ง ๋ง์ญ์์ค).
@yurydelendik ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค! iOS WKWebView๊ฐ ๋น๋ถ๊ฐ iframe์์ PDF๋ฅผ ์ ๋๋ก ๋ ๋๋งํ์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋กํ ํ์ ์ ๋น๋ํ๊ณ ์์ง๋ง์ด๋ฅผ ์ผ๋์ ๋๊ฒ ์ต๋๋ค.
@camitz , ๊ถ๊ธํฉ๋๋ค. yurydelendik์ 2 ์ 8 ์ผ ์ฝ๋๊ฐ "[you]๋ฅผ ์ํด ์๋"ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? //mozilla.github.io/pdf.js/build/pdf.js๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ์์ฒญํ๊ณ ์์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก CDN์ผ๋ก ๋ณด์ง ์์ต๋๋ค. ๋ํ ๋ฒ์ ์ด ์ง์ ๋ pdf.js ์ฌ๋ณธ์ ์ฐธ์กฐํ์ง ์์ต๋๋ค.
@yurydelendik (๋๋ ์ ์ ํ ์ฌ๋) ์น ์ฌ์ดํธ ์ ๋ฐ๋ผ ์ด์ ๋ PDF.js๊ฐ cdnjs์ ์ถ๊ฐ๋๋๋ก ์์ฒญํ๊ธฐ ์ํด GitHub ๋ฌธ์ ํ ํ๋ฆฟ ์ ํตํด "Lib ์์ฒญ"์ ์ ํธํ๋ ๋ฐฉ๋ฒ์ด
๋๋ ๊ทธ๊ฐ 12 ์ 30 ์ผ์ ๊ณต์ ํ camitz์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋งค์ฐ ํ๋ฅญํ๊ณ ์ฌ์ ํ ๋ง์ ์ฌ๋๋ค (๋๋ฅผ ํฌํจํ์ฌ)์๊ฒ ์ ์ฉ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. camitz์ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ฌ์ฉ์๊ฐ ์ ๊ฒ ๋ฃ์ด์ผํ๋ ์ ๋ขฐ๋ฅผ ์ต์ํํ๊ณ ์ถ์ต๋๋ค. CDN์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ๋ณธ์ ์ฌ์ฉํ๋ฉด ํ์คํ ๋์์ด๋ฉ๋๋ค.
@ jon-freed ์ต์ ์ํ ์ธ https://npmcdn.com/pdfjs-dist ๊ฐ ์์ต๋๋ค. cdnjs์ ๊ฒฝ์ฐ ํ ์์ฒญ https://github.com/cdnjs/cdnjs/pull/5993์ด ์์ต๋๋ค. ์ด ์์ ์์ ์ฐ๋ฆฌ๊ฐ ํ ์์๋ ์ผ์ด ๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํนํ npmcdn ์น ์ฌ์ดํธ๋ NPM ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ํญ์ ์ต์ ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ข์ต๋๋ค.
@ jon-freed๋ npmcdn https://jsfiddle.net/y3rsLwwp/5/ ๋ฅผ ์ฌ์ฉํ๋ jsfiddle ์์ ์ ๋๋ค.
@timvandermeij , @yurydelendik : ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค! ๊ทธ๊ฒ ๋ค๋ฆด ํฐ๊ฐ 2 ์ 17 ์ผ์ ๋งํ ๋ด์ฉ์ (์ด์จ๋ ) ๋ช ํํํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค.
ํ ... CDNJS๊ฐ ์ฌ๊ธฐ์์ ์ ์งํฉ๋๋ค. ์ง๊ธ ์์ ํ๊ฒ ์ต๋๋ค.
์ข์์, ์ด์ ์ถ๊ฐ๋์์ต๋๋ค : https://github.com/cdnjs/cdnjs/commit/df40a0dd137d5ed1e885354ca8ac492df20bcac0
์ฐธ์กฐ : https://cdnjs.com/libraries/pdf.js
ํธ์ ๋ด์ ๊ฐ๊ธฐ ์ง๊ธ ๋ ๊ฐ์ CDN (cdnjs ๋ฐ npmcdn)์์ PDF.js๋ฅผ ํธ์คํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฌธ์ ์๋ค. ์ฐธ๊ณ ๋ก ์ํคํ ์ฒ์ ๋ฐ๋ผ npmcdn์ ์ฝ๊ฐ ๋ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ ํ ์ ์์ง๋ง CDNJS๋ ํ๋ก๋์ ํ๊ฒฝ์์ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉฐ CDNJS๋ ์ถ์ ๋ ํ์ผ๊ณผ ์ถ๊ฐ ๋งต ํ์ผ๋ ์ ๊ณตํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
: +1 : cdn ์ง์์ฉ. ๋ฒ๊ทธ ์ฌํ ๊ณต์ ๋ฐ ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ ์ ํฉ