Pdf.js: URL 쑰각 μ‹λ³„μžμ—μ„œ "viewrect" λ§€κ°œλ³€μˆ˜μ— λŒ€ν•œ 지원 λˆ„λ½

에 λ§Œλ“  2019λ…„ 04μ›” 28일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: mozilla/pdf.js

PDF 파일 μ—΄κΈ° λ§€κ°œλ³€μˆ˜(버전 9.0) (및 RFC 8118 μ°Έμ‘°)에

viewrect=_left_,_top_,_wd_,_ht_

λ¬Έμ„œ νšŒμ „μ— 관계없이 0,0이 ν‘œμ‹œλ˜λŠ” νŽ˜μ΄μ§€μ˜ μ™Όμͺ½ 상단 λͺ¨μ„œλ¦¬λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ’Œν‘œκ³„μ—μ„œ 뢀동 μ†Œμˆ˜μ  λ˜λŠ” μ •μˆ˜ 값을 μ‚¬μš©ν•˜μ—¬ 보기 μ‚¬κ°ν˜•μ„ μ„€μ •ν•©λ‹ˆλ‹€.

PDF URL 쑰각 μ‹λ³„μžμ˜ viewrect λ§€κ°œλ³€μˆ˜κ°€ ν˜„μž¬ μ§€μ›λ˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν™•μΈν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같이 ν…ŒμŠ€νŠΈν–ˆμŠ΅λ‹ˆλ‹€.


ꡬ성:

문제λ₯Ό μž¬ν˜„ν•˜λŠ” 단계:

  1. μ €μž₯μ†Œλ₯Ό ν™•μΈν•˜κ³  npm install 및 gulp server λ₯Ό μ‹€ν–‰ν•œ λ‹€μŒ λ·°μ–΄λ₯Ό νŽ˜μ΄μ§€ 크기가 8.5" x 11"인 PDF둜 μ΄λ™ν•©λ‹ˆλ‹€(예: http://localhost:8888/web/viewer. html?file=%2Ftest%2Fpdfs%2Ftracemonkey.pdf).
  2. μ£Όμ†Œ ν‘œμ‹œμ€„μ˜ URL에 #page=1&viewrect=72,72,288,432 λ₯Ό μΆ”κ°€ν•˜κ³  νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•©λ‹ˆλ‹€.

μ˜ˆμƒλ˜λŠ” λ™μž‘μ€ λ¬΄μ—‡μž…λ‹ˆκΉŒ?

λ·°μ–΄λŠ” νŽ˜μ΄μ§€μ˜ μƒλ‹¨μ—μ„œ 1", νŽ˜μ΄μ§€ μ™Όμͺ½ κ°€μž₯μžλ¦¬μ—μ„œ 1" μ˜€ν”„μ…‹λœ (λŒ€λž΅) 4" x 6" μ§μ‚¬κ°ν˜•μœΌλ‘œ ν™•λŒ€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

무엇이 잘λͺ»λ˜μ—ˆλ‚˜μš”?

PDF JSκ°€ viewrect μ§€μ›ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ·°ν¬νŠΈκ°€ μ˜ˆμƒλŒ€λ‘œ λ³€ν™˜λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.


λ‚˜λ„ 달렸닀

$ git grep viewrect

0개의 κ²°κ³Όλ₯Ό μ–»μ—ˆκ³  GitHubμ—μ„œ λ‹€μŒ 검색을 μˆ˜ν–‰ν–ˆλŠ”λ° λ‘˜ λ‹€ 아무 것도 λ°˜ν™˜ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

1-viewer 2-feature

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

자유둭게 μž‘μ—…ν•˜μ„Έμš”. wd λŠ” "λ„ˆλΉ„"이고 ht λŠ” "높이"μž…λ‹ˆλ‹€.

λͺ¨λ“  7 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”,
μ €λŠ” μ—¬κΈ°μ—μ„œ μƒˆλ‘œ κ³ μΉ  문제λ₯Ό μ°Ύκ³  있으며 λˆ„κ΅°κ°€κ°€ 이미 문제λ₯Ό ν•΄κ²°ν•˜μ§€ μ•ŠλŠ” ν•œ 이 문제λ₯Ό ν•΄κ²°ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 그리고 viewRect에 λŒ€ν•œ λ¬Έμ„œ 도 μ½μ—ˆλŠ”λ° wd와 hκ°€ 무엇을 λ§ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
아무도 κ·Έ wd와 h에 λŒ€ν•΄ μ•Œλ €μ€„ 수 μžˆμŠ΅λ‹ˆκΉŒ? 미리 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

자유둭게 μž‘μ—…ν•˜μ„Έμš”. wd λŠ” "λ„ˆλΉ„"이고 ht λŠ” "높이"μž…λ‹ˆλ‹€.

@AndrewMyintλ‹˜ , μ•ˆλ…•ν•˜μ„Έμš”, μ €λŠ” (잘λͺ» λͺ…λͺ…λœ) " zoom " λ§€κ°œλ³€μˆ˜μ˜ ν˜„μž¬ κ΅¬ν˜„μ˜ 잘λͺ»λœ λ™μž‘μ„ λ¬Έμ„œν™”ν•˜λŠ” 이 λ¬Έμ œμ™€ κ΄€λ ¨λœ λͺ‡ 가지 문제λ₯Ό μ§€μ ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. https://github .com/mozilla/pdf.js/issues/10773 및 https://github.com/mozilla/pdf.js/issues/2843.

@markmatney μ—κ²Œ κ°μ‚¬ν•©λ‹ˆλ‹€. zoom " λ§€κ°œλ³€μˆ˜κ°€ Fit 인수λ₯Ό μ²˜λ¦¬ν•˜λŠ” 반면 " view "μ—μ„œ μ²˜λ¦¬ν•΄μ•Ό ν•œλ‹€λŠ” 사싀에 λ†€λžμŠ΅λ‹ˆλ‹€. λ¬Έμ„œ 에 λ”°λ₯Έ λ§€κ°œλ³€μˆ˜ .

@markmatney μ œκ°€ (left, top, scale, Fit, ...) 와 같은 인수둜 μ œκ³΅ν•œ λͺ¨λ“  값이 BaseViewer.scrollPageIntoView μ—μ„œ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 scrollPageIntoView μ—λŠ” λ§Žμ€ μŠ€μœ„μΉ˜ μΌ€μ΄μŠ€ (Fit, FitB, FitH,......) μ²˜λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€. 그리고 λ‚΄κ°€ 찾은 ν₯미둜운 사둀 쀑 ν•˜λ‚˜λŠ” FitR 인데 documentation μ—μ„œ FitR 인수쑰차 λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ URL μ£Όμ†Œ ν‘œμ‹œμ€„μ— #zoom=FitR,72,72,288,432 λ₯Ό μΆ”κ°€ν•˜λ©΄ " FitR "κ°€ " viewrect " λ™μž‘μ„ μƒμ„±ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

이것이 viewrect λŒ€ν•΄ μ˜ˆμƒλ˜λŠ” λ™μž‘μΈμ§€ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ? κ°μ‚¬ν•©λ‹ˆλ‹€.

예, BaseViewer.scrollPageIntoView λŠ” μ΄λŸ¬ν•œ λͺ¨λ“  인수λ₯Ό μ‚΄νŽ΄λ³Έ λ‹€μŒ 이λ₯Ό 기반으둜 뷰포트λ₯Ό μ–΄λ–»κ²Œλ“  λ³€ν™˜ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

λ˜ν•œ μ²˜μŒμ— 이것을 μ‘°μ‚¬ν–ˆμ„ λ•Œ FitR λ₯Ό λ³Έ 기얡이 μžˆμŠ΅λ‹ˆλ‹€. 이것은 Fit* 인수의 λ‚˜λ¨Έμ§€μ™€ ν•¨κ»˜ d30fac0 (2011λ…„ 9μ›” 4일)에 master 에 λ„μž…λ˜μ—ˆμœΌλ©° PDF μ°Έμ‘° 사양에 μ •μ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. "PDF 파일 μ—΄κΈ°λ₯Ό μœ„ν•œ λ§€κ°œλ³€μˆ˜" μ‚¬μ–‘μ—μ„œ μƒλž΅λœ 이유(λ˜λŠ” κ·Έ λ¬Έμ œμ— λŒ€ν•΄ λ³„λ„μ˜ 사양이 두 개 μžˆλŠ” 이유)κ°€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ–΄μ¨Œλ“  viewrect λŠ” FitR 와 λ‹€λ₯΄κ²Œ κ΅¬ν˜„λ˜μ–΄μ•Ό ν•œλ‹€λŠ” κ°•ν•œ 의견이 μžˆμŠ΅λ‹ˆλ‹€. 이것은 ν™•μ‹€νžˆ λ…ΌμŸμ˜ 여지가 μžˆμ§€λ§Œ:

  • λ‹¨μˆœνžˆ λ™μΌν•˜κ²Œ μ·¨κΈ‰ν•˜λŠ” 것은 μ€‘λ³΅λ˜λ©° 이 μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ μˆ˜ν–‰ν•  수 μžˆλŠ” μ‚¬μš© μ‚¬λ‘€μ˜ 수λ₯Ό μ œν•œν•©λ‹ˆλ‹€.
  • PDF 사양은 각각의 의미 체계λ₯Ό λ‹€λ₯΄κ²Œ μ •μ˜ν•˜κΈ° λ•Œλ¬Έμ— 사양을 계속 κ³ μˆ˜ν•˜λ©΄μ„œ λ‹€λ₯΄κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

FitR 와 달리 κ²°κ³Ό 보기가 μ‚¬μš©μžμ˜ μ›Ή λΈŒλΌμš°μ € μ°½ 크기에 μ˜μ‘΄ν•˜μ§€ μ•ŠλŠ” viewrect κ΅¬ν˜„μ„ 보고 μ‹ΆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ μ˜λ―Έν•˜λŠ” λ°”λ₯Ό 보렀면 https://mozilla.github.io/pdf.js/web/viewer.html#zoom =FitR,0,0,144,144둜 이동

[_page_ /FitR _left_ _bottom_ _right_ _top_]

_page_에 μ˜ν•΄ μ§€μ •λœ νŽ˜μ΄μ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€. κ·Έ λ‚΄μš©μ€ μ’Œν‘œ [...]에 μ˜ν•΄ μ§€μ •λœ μ‚¬κ°ν˜•μ— 맞게 μ°½ [...]에 μ™„μ „νžˆ λ§žλ„λ‘ ν™•λŒ€λ©λ‹ˆλ‹€. ν•„μš”ν•œ μˆ˜ν‰ 및 수직 ν™•λŒ€ κ³„μˆ˜κ°€ λ‹€λ₯Έ 경우, 더 μž‘μ€ 것을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. 두 [...]

"PDF 파일 μ—΄κΈ°λ₯Ό μœ„ν•œ λ§€κ°œλ³€μˆ˜"λŠ” viewrect 훨씬 더 λŠμŠ¨ν•˜κ²Œ μ •μ˜ν•©λ‹ˆλ‹€(μ •μ˜λŠ” 이 λ¬Έμ œμ— λŒ€ν•œ μ‹œμž‘ 주석 μ°Έμ‘°). λΈŒλΌμš°μ € μ°½ 크기에 관계없이 λ™μΌν•œ μ˜μ—­μ„ ν‘œμ‹œν•˜λŠ” κ΅¬ν˜„μ„ 보고 μ‹ΆμŠ΅λ‹ˆλ‹€. 그러면 μ§€μ •λœ μ˜μ—­μ˜ _μ™ΈλΆ€_ λͺ¨λ“  것이 초점이 λ§žμ§€ μ•Šκ²Œ λ©λ‹ˆλ‹€("νšŒμƒ‰μœΌλ‘œ ν‘œμ‹œλ¨" λ˜λŠ” "κ²€κ²Œ ν‘œμ‹œλ¨"). λ‚΄κ°€ λ­”κ°€λ₯Ό λ†“μΉ˜κ³  μžˆμ§€ μ•ŠλŠ” ν•œ, κ·ΈλŸ¬ν•œ κ΅¬ν˜„μ€ μ—¬μ „νžˆ ​​사양을 μ€€μˆ˜ν•©λ‹ˆλ‹€.

λ‚΄ μ˜κ²¬μ„ μ½μœΌλ©΄μ„œ FitR 의 PDFjs κ΅¬ν˜„μ΄ PDF μ°Έμ‘° 사양과 λ‹€λ₯΄λ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. μ‚¬κ°ν˜•μ€ _left,bottom,right,top_으둜 ν•΄μ„λ˜μ–΄μ•Ό ν•  λ•Œ _x,y,w,h_둜 ν•΄μ„λ©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰