์ค์บ ๋ฌถ์์ ํ ์คํธ๋ก: OCR์ ๋๋ฆฐ ๋ค ๊ณ์ ๋ณด๊ดํ PDF๋ฅผ ์์ถํ๊ธฐ
์ค์บ ๋ฌถ์์ ๋ ๋จ๊ณ๋ก ๋ค๋ฃน๋๋ค. PDF123์ OCR์ ์ฝ์ ์ ์๋ Markdown ํ ์คํธ๋ฅผ ๋๋ ค์ฃผ๊ณ , ์์ถ์ ๊ณ์ ๋ณด๊ดํ ์๋ณธ PDF๋ฅผ ์คํธ๋ฆผ ์ฌ์์ถ์ผ๋ก ์ค์ ๋๋ค. ์์ ์์์ ๊ฒฐ๊ณผ๋ฌผ์ด ์๋ก ๋ค๋ฆ ๋๋ค.

โ์ค์บ ๋ฌถ์โ์ ๋ณดํต ํ์ด์ง ์ด๋ฏธ์ง๋ฅผ ํ๋ฐ ๋ฌถ์ด ๋ง๋ PDF ํ ๊ฐ์ ๋๋ค. ๋์คํฌ๋ ์ฐจ์งํ๋๋ฐ ๊ฒ์๋ ๋ณต์ฌ๋ ๋์ง ์์ต๋๋ค. ์ฌ๋๋ค์ด ํํ ์ด์ด ์ฐ๋ ๋ ๋๊ตฌ๋ ์ด ์ฌ์ดํธ์์ ๋ง๋ฒ์ฒ๋ผ ๊ฒ์ ๊ฐ๋ฅํ PDF ํ๋๋ฅผ ๋ง๋ค์ด ์ฃผ์ง ์์ต๋๋ค. OCR์ Markdown์ ๋ฐํํ๊ณ , PDF ์์ถ์ ๊ณ์ ๋ณด๊ดํ PDF๋ฅผ ๋ค์ ์๋๋ค.
์ด ๋ถ์ ์ด ์ํฌํ๋ก์ ์ ๋ถ์ ๋๋ค.
์ฌ๊ธฐ์ OCR์ด ์ค์ ๋ก ์ฃผ๋ ๊ฒ
POST /api/v1/misc/ocr-pdf๋ ์ธ์์ ๋๋ฆฌ๊ณ .md ํ์ผ(text/markdown)์ ๋ด๋ ค๋ฐ๊ฒ ํฉ๋๋ค. PDF์ ์๋ ์๋ ํ
์คํธ์ ์ด๋ฏธ์ง ํ์ด์ง์ OCR ๊ฒฐ๊ณผ๋ฅผ ํฉ์น ๊ฒ์
๋๋ค. ์จ์ ํ
์คํธ ๋ ์ด์ด๋ฅผ PDF์ ๋์ฐ์ง๋ ์์ต๋๋ค. ๊ฐ์ ํ์ผ ์์์ ์ ํ๊ณผ ๊ฒ์์ด ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ค๋ฉด ๊ทธ๊ฒ์ ๋ค๋ฅธ ์ ํ ํํ์
๋๋ค(๊ณ ์ ์ ์ธ OCRmyPDF์ ์ถ๋ ฅ). ์ด ์๋ํฌ์ธํธ๋ ์์ด์ ํธ๋ ํ์ดํ๋ผ์ธ์ด ์ฝ์ ํ
์คํธ๋ฅผ ์ํ ๊ฒ์
๋๋ค.
Auto์ Force OCR:
ocrType=force-ocr๊ฐ ์๋ ๋ชจ๋ ๊ฐ(ํฌํธ ๋ผ๋ฒจ โNormalโ ํฌํจ)์ Auto๋ก ๋งคํ๋ฉ๋๋ค. ์๋ ํ ์คํธ๋ ๊ทธ๋๋ก ์ฐ๊ณ , ์ด๋ฏธ์ง๋ง ์๋ ํ์ด์ง์ OCR์ ๋๋ฆฝ๋๋ค.force-ocr๋ ์ด๋ฏธ ํ ์คํธ ๋ ์ด์ด๊ฐ ์๋ ํ์ด์ง๊น์ง ๋ชจ๋ ํ์ด์ง๋ฅผ ๋ค์ ์ฝ์ต๋๋ค.
ํฌํธ ํผ์๋ ์ธ์ด ์ ํ๊ธฐ๊ฐ ์์ต๋๋ค. ์์ ๊ฒฝ๋ก์์ ๋จ์ tessdata์ ํ๋(languages, deskew, clean ํ๋๊ทธ ๋ฑ)๋ Rust ocr_pdf ๊ฒฝ๋ก๊ฐ ๋ฌด์ํฉ๋๋ค. Auto์ Force์ ์ ํ, ๊ทธ๋ฆฌ๊ณ ๋์ ์ค์บ์์ ์ธ์์ด ์คํจํ๋ ์ด์ ๋ OCR์ด ์ค์บ PDF๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ์์ ๋ค๋ฃน๋๋ค.
OCR์ PDF๋ฅผ ์ค์ด์ง ์์ต๋๋ค. Markdown ๋ค์ด๋ก๋๋ ์๋ณธ ์ค์บ ๋ฌถ์ ์์ ์๊ธฐ๋ ๋ ๋ฒ์งธ ์ฐ์ถ๋ฌผ์ ๋๋ค.
์์ถ์ด ๋ค์ด๊ฐ ์๋ฆฌ
PDF ์์ถ(POST /api/v1/misc/compress-pdf)์ qpdf ์คํธ๋ฆผ ์์ถ์ ๋๋ฆฝ๋๋ค. --compress-streams=y, flate ์ฌ์์ถ, ๊ฐ์ฒด ์คํธ๋ฆผ ์์ฑ์
๋๋ค. ํ
์คํธ ๋ ์ด์ด๋ฅผ ๋ง๋ค์ด ๋ด์ง ์๊ณ , ๊ธ๊ผด์ ์๋ธ์
ํ
ํ์ง๋ ์์ผ๋ฉฐ, ์ฌ์ง ์์ค์ ๋ค์ด์ํ๋ง์ ์ฝ์ํ์ง๋ ์์ต๋๋ค. ์ค์บ์ด ๋ง์ ํ์ผ์์๋ ์คํธ๋ฆผ์ ๋ ์ธ๊ฒ ํจํนํด ์ ์ฅ ๊ณต๊ฐ์ ์ค์ผ ์ ์๊ณ , ์ด๋ฏธ ์ด์ดํ ํ์ผ์์๋ ์ด๋์ด ์์ ์ ์์ต๋๋ค. ์คํธ๋ฆผ๊ณผ ์ด๋ฏธ์ง ์์ก์ด์ ๋ฐฐ๊ฒฝ์ PDF๋ฅผ ์์ถํ ๋ ์ค์ ๋ก ์ผ์ด๋๋ ์ผ์ ๋ณด์ธ์.
๋ณด๊ดํ๊ฑฐ๋ ๋ฉ์ผ๋ก ๋ณด๋ผ PDF์๋ ์์ถ์ ์ฐ๊ณ , ๋จ์ด๊ฐ ํ์ํ ๋๋ OCR์ Markdown ์ถ๋ ฅ์ ์ฐ์ธ์. ๋จผ์ ์์ถํ๋ค๊ณ OCR์ด ๋ ์ ํํด์ง์ง ์๊ณ , ๋จผ์ OCRํ๋ค๊ณ PDF๊ฐ ์์์ง์ง๋ ์์ต๋๋ค.
์ค์ฉ์ ์ธ ์์
- ๋ทฐ์ด๊ฐ ์ด ๋ฌถ์์ ์ด์ง ๋ชปํ๋ฉด ๋จผ์ PDF ๋ณต๊ตฌ๋ ๋ฌธ์ ์ ๋ณด๋ฅผ ์๋๋ค.
- ์ค์บ ๋ฌถ์์ OCRํด Markdown์ ์ป๊ณ , ๋ช ํ์ด์ง์ ํ ์คํธ๋ฅผ ํ๋ณธ ์ ๊ฒํฉ๋๋ค.
- ํฌ๊ธฐ๊ฐ ์ฌ์ ํ ๋ฌธ์ ๋ผ๋ฉด ๋ณ๋๋ก PDF์ ์ฌ๋ณธ์ ์์ถํฉ๋๋ค.
- ์ ์ฑ ์ด ์๊ตฌํ๋ฉด ์๋์ง ์์ ์๋ณธ์ ๋จ๊ฒจ ๋ก๋๋ค.
ํ์ผ์ ์ํธํํ๋ค๋ฉด ์ด๋ ๋จ๊ณ๋ ์ ์ ๊ถํ ์๋ ๋น๋ฐ๋ฒํธ ํด์ ๊ฐ ํ์ํฉ๋๋ค. ๋น๋ฐ์๋ OCR์ด ์๋๋ผ Sanitize / Auto Redact๋ฅผ ์๋๋ค. ์ค์บ ํ ํ ๋ด๋ณด๋ด๊ธฐ๊ฐ 204๋ฅผ ๋ฐํํ๋ฉด ํ ์คํธ ์ด์ ์ฐพ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๋จผ์ OCR Markdown์ ๋ง๋ค๊ณ , ๊ทธ๋ค์ ์คํ๋ ๋์ํธ ๋๊ตฌ๊ฐ ํ์ํ๊ธฐ๋ ํ์ง ํ๋จํ์ธ์(๋น ํ ๋ด๋ณด๋ด๊ธฐ(204)).
์ฑ๊ฒจ์ผ ํ ์ถ๋ ฅ๋ฌผ
ํ ๋ฒ ๋๋ฆฌ๋ฉด ์ฐ์ถ๋ฌผ์ด ์
์๊ธธ ์ ์์ต๋๋ค. ์๋ณธ ์ค์บ ๋ฌถ์, .md OCR ๋ค์ด๋ก๋, ๊ทธ๋ฆฌ๊ณ ์ ํ์ ์ธ ์์ถ PDF ์ฌ๋ณธ์
๋๋ค. ์ด๋ฆํ๋ฅผ ๋ถ์ฌ ๋์ธ์. Markdown๋ง ๋ฉ์ผ๋ก ๋ณด๋ด๋ฉด ํ์ด์ง ์ด๋ฏธ์ง๊ฐ ์ฌ๋ผ์ง๊ณ , ์์ถํ PDF๋ง ๋ณด๋ด๋ฉด ์ด OCR ๊ฒฝ๋ก๊ฐ ๋ง๋ ์ ํยท๊ฒ์ ๋ ์ด์ด๋ ์ฌ์ ํ ์์ต๋๋ค. ๋จ์ด์ ๋ ์์ PDF๊ฐ ๋ ๋ค ํ์ํ ํ์ดํ๋ผ์ธ์ ๋ ์ถ๋ ฅ์ ๋ชจ๋ ์ ์ฅํ๊ฑฐ๋ ๋์ค์ ํ์ชฝ์ ๋ค์ ๋๋ ค์ผ ํฉ๋๋ค.
ํ ์คํธ ๋ ์ด์ด๊ฐ ๋ง๊ฐ์ง ์ ์ ๋ฌธ์ ๋ฌถ์์ Force OCR์ ์ฐ๋ ๊ฒ์ ์ฌ์ ํ ์ ์ฉํ ์ ์๊ณ , ๊นจ๋ํ ์ ์ ๋ฌธ์ ๋ฌถ์์ Auto๋ฅผ ์ฐ๋ฉด OCR ๋ฐํ์์ ์์ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. ์ด๋ ๋ชจ๋๋ PDF์ ํ ์คํธ๋ฅผ ๋์ฐ์ง ์์ต๋๋ค.
์ด ์ํฌํ๋ก๊ฐ ์๋ ๊ฒ
์ค์บ ๋ฌถ์์ด ์คํจํ๋ ์ด์ ๋ ํ์ด ๋ฒํผ ํ๋๋ก ํ ์คํธ๋ ๋ฝ๊ณ ๋ฐ์คํฌํฑ OCRmyPDF ํ์ดํ๋ผ์ธ์ฒ๋ผ ํฝ์ ๋ ์ค์ฌ ์ฃผ๋ฆฌ๋ผ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ๊ธฐ์ ํ ์คํธ๋ Markdown์ผ๋ก ๋น ์ ธ๋๊ฐ๊ณ , ์ผ๋ถ๋ฌ ์์ถํ์ง ์๋ ํ PDF๋ PDF๋ก ๋จ์ต๋๋ค. ํ ๋ฒ์ ํธ์ถ๋ก โ๊ฐ์ PDF์ธ๋ฐ ์ด์ ๊ฒ์๋ ๋๊ณ ๋ ์์์ก๋คโ๋ฅผ ๋๋ ค์ฃผ๋ ๋จ๊ณ๋ ์ด ์ฌ์ดํธ์ ์์ต๋๋ค.
๊ฐ์ op๋ฅผ HTTP๋ก ์๋ํํ๋ ค๋ฉด ๊ฐ๋ฐ์๋ฅผ ๋ณด์ธ์.