์ฌ๊ธฐ์ PDF ํ์ผ์ ์ฒจ๋ถ(๊ถ์ฅ)ํ๊ฑฐ๋ ๋งํฌ:
EMG8 -Cambridge Essentail Gold Maths 8-B 117.pdf
๊ตฌ์ฑ:
๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋จ๊ณ:
์์๋๋ ๋์์ ๋ฌด์์
๋๊น? (์คํฌ๋ฆฐ์ท ์ถ๊ฐ)
๋ค๋ฅธ PDF ๋ฆฌ๋์์๋ ์ ๋๋ก ๋ ๋๋ง๋ฉ๋๋ค.
๋ทฐ์ด์ ๋ํ ๋งํฌ(mozilla.github.io/pdf.js๊ฐ ์๋ ๋ค๋ฅธ ์ฌ์ดํธ ๋๋ Firefox/Chrome ํ์ฅ์ผ๋ก ํธ์คํ
๋๋ ๊ฒฝ์ฐ):
ํ์ฌ github ํ์ด์ง ๋ทฐ์ด: https://mozilla.github.io/pdf.js/web/viewer.html
๋
ธํธ:
PDF ๋ด์ ๊ธ๊ผด์ ํธ์งํ์ฌ ์๋ํ๋๋ก ๊ด๋ฆฌํ์ต๋๋ค. ํ์ฌ "Times New Roman PS"์ธ๋ฐ "Times New Roman"์ผ๋ก ๋ค์ ๋ ๋๋งํ๋ฉด ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฝ์ ์ค๋ฅ ๋๋ ๋๋ฝ๋ CMap๊ณผ ๊ฐ์ ์๋ฃจ์ ์ ๊ฐ์์ ์งํ๊ฐ ์์ต๋๋ค.
๋ถํํ๋ PDF๋ฅผ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ๊ฐ PDF๋ฅผ ๋ค์ ๋ ๋๋งํ๋ ๊ฒ์ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ด ์๋๋๋ค.
๋๊ตฌ๋ ์ง ์ด์ ๋ํ ํต์ฐฐ๋ ฅ๊ณผ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์ ๊ณตํ ์ ์๋ค๋ฉด ๋๋จํ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ๐ค
PDF๋ ๋์ผํ ๊ธ๊ผด์ ์ฌ๋ฌ ๋ฒ ์ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด LULQLP+TimesLTStd-Roman
๊ธ๊ผด์ 9๋ฒ ์ ์๋ฉ๋๋ค. ๊ฐ๊ฐ์ ๋์ผํ FontDescriptor์ ๋์ผํ ์๋ฒ ๋๋ CFF ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ฐธ์กฐํฉ๋๋ค.
core/evaluator.js์ PartialEvaluator.prototype.preEvaluateFont()
์ ๊ธ๊ผด ํด์ ๊ณ์ฐ์ด ์์ต๋๋ค. ํด์์ Encoding, ToUnicode ๋ฐ Widths ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค. PDF์ ์ผ๋ถ ๊ธ๊ผด์ ๋๋น๋ฅผ ํฌํจํ์ฌ ์ธ๊ธ๋ ๋ชจ๋ ํญ๋ชฉ์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋์ผํ ํด์ ์ฝ๋๋ฅผ ์ป์ต๋๋ค. FirstChar ๋ฐ LastChar ํญ๋ชฉ๋ง ๋ค๋ฆ
๋๋ค. ๊ธ๊ผด์ด ๋์ผํ ํด์ ์ฝ๋๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ ๊ธ๊ผด์ ๊ฑด๋๋ฐ์ด OpenType์ผ๋ก ๋ณํ๋์ง ์๋๋ก ํ ์ ์์ต๋๊น?
๋ค์์ ์๋ณธ PDF์์ ๋ ๊ฐ์ ๊ธ๊ผด์ ํฌํจํ๋ ์ถ์๋ PDF์
๋๋ค.
issue10665_reduce.pdf
core/evaluator.js์
PartialEvaluator.prototype.preEvaluateFont()
์ ๊ธ๊ผด ํด์ ๊ณ์ฐ์ด ์์ต๋๋ค. ํด์์ Encoding, ToUnicode ๋ฐ Widths ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค. PDF์ ์ผ๋ถ ๊ธ๊ผด์ ๋๋น๋ฅผ ํฌํจํ์ฌ ์ธ๊ธ๋ ๋ชจ๋ ํญ๋ชฉ์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋์ผํ ํด์ ์ฝ๋๋ฅผ ์ป์ต๋๋ค. FirstChar ๋ฐ LastChar ํญ๋ชฉ๋ง ๋ค๋ฆ ๋๋ค.
์ ๋ง ํ๋ฅญํ ๋ถ์์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์์ต๋๋ค!
๊ธ๊ผด์ด ๋์ผํ ํด์ ์ฝ๋๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ ๊ธ๊ผด์ ๊ฑด๋๋ฐ์ด OpenType์ผ๋ก ๋ณํ๋์ง ์๋๋ก ํ ์ ์์ต๋๊น?
์ผ๋ถ ์๋ชป ์์ฑ๋ PDF ํ์ผ์๋ ์์ฒญ๋ ์์ ๋์ผํ ๊ธ๊ผด์ด ์์ ์ ์์ผ๋ฉฐ preEvaluateFont
์ ๋ชฉ์ ์ ๋จ์ํ ์ค๋ณต๋ ๊ธ๊ผด์ ๋ก๋/ํ์ฑํ์ง ์๋๋ก ํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ loadFont
๋ hash
es๋ฅผ ๋น๊ตํ๊ณ ๊ฐ๋ฅํ๋ฉด ์ด๋ฏธ ๋ก๋/๋ถ์๋ ๊ธ๊ผด์ ์ฌ์ฉํฉ๋๋ค.
๋ถ๋ช
ํ ์ด ๋ชจ๋ ๊ฒ์ hash
es๊ฐ ์ค์ ๋ก ์ ํํ๊ณ ๊ณ ์ ํ๋ค๋ ์ฌ์ค์ ๋ฌ๋ ค ์์ง๋ง ๋คํ์ค๋ฝ๊ฒ๋ ๋ช ๋
๋์ ํด๋น ์ฝ๋์ ๋น๊ต์ ์ ์ ๋ฒ๊ทธ๊ฐ ์์์ต๋๋ค.
์ด๊ฒ์ ๊ต์ฅํฉ๋๋ค ๋์์ ์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
PDF๋ ๋์ผํ ๊ธ๊ผด์ ์ฌ๋ฌ ๋ฒ ์ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด
LULQLP+TimesLTStd-Roman
๊ธ๊ผด์ 9๋ฒ ์ ์๋ฉ๋๋ค. ๊ฐ๊ฐ์ ๋์ผํ FontDescriptor์ ๋์ผํ ์๋ฒ ๋๋ CFF ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ฐธ์กฐํฉ๋๋ค.core/evaluator.js์
PartialEvaluator.prototype.preEvaluateFont()
์ ๊ธ๊ผด ํด์ ๊ณ์ฐ์ด ์์ต๋๋ค. ํด์์ Encoding, ToUnicode ๋ฐ Widths ํญ๋ชฉ์ ์ถ๊ฐํฉ๋๋ค. PDF์ ์ผ๋ถ ๊ธ๊ผด์ ๋๋น๋ฅผ ํฌํจํ์ฌ ์ธ๊ธ๋ ๋ชจ๋ ํญ๋ชฉ์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋์ผํ ํด์ ์ฝ๋๋ฅผ ์ป์ต๋๋ค. FirstChar ๋ฐ LastChar ํญ๋ชฉ๋ง ๋ค๋ฆ ๋๋ค. ๊ธ๊ผด์ด ๋์ผํ ํด์ ์ฝ๋๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ ๊ธ๊ผด์ ๊ฑด๋๋ฐ์ด OpenType์ผ๋ก ๋ณํ๋์ง ์๋๋ก ํ ์ ์์ต๋๊น?๋ค์์ ์๋ณธ PDF์์ ๋ ๊ฐ์ ๊ธ๊ผด์ ํฌํจํ๋ ์ถ์๋ PDF์ ๋๋ค.
issue10665_reduce.pdf