/
์•„ํŒŒ์น˜ ํ‹ฐ์นด(apache tika) ๋กœ ์ปจํ…์ธ  ํŒŒ์‹ฑํ•˜๊ธฐ

์•„ํŒŒ์น˜ ํ‹ฐ์นด(apache tika) ๋กœ ์ปจํ…์ธ  ํŒŒ์‹ฑํ•˜๊ธฐ


PDF ์™€ ๋™์˜์ƒ, ์ด๋ฏธ์ง€๋“ฑ ์—ฌ๋Ÿฌ ๋ฉ€ํ‹ฐ ๋ฏธ๋””์–ด ํŒŒ์ผ์„ ํŒŒ์‹ฑํ•ด์„œ meta data ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

๋จผ์ € PDF ๋ฅผ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ„ํ•ดย PHP ๋กœ ๋œย ย https://www.pdfparser.org/ย ๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.


PHP Warning:  gzuncompress(): data error in myproj/vendor/tecnickcom/tcpdf/include/tcpdf_filters.php on line 357


ํ™•์ธํ•ด ๋ณด๋‹ˆ pdf parser ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ PDF ํŒŒ์ผ์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ๋‹ค ๋ณด๋‹ˆ tika ํ”„๋กœ์ ํŠธ๋ฅผ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.



Tika ๋ž€


Java ๋กœ ๊ฐœ๋ฐœ๋œ contents ๋ฅผ parsing ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ app ์œผ๋กœย commandย  line ๋ฐ GUI ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•˜๋Š” app ์™€ RESTFul API ๋กœ ๋™์ž‘ํ•˜๋Š” server ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


์„ค์น˜

์ปค๋งจ๋“œ์šฉ app ๋Š” ๋‹ค์Œ ์ฃผ์†Œ์—์„œ ๋ฐ›์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ wget http://apache.mirror.cdnetworks.com/tika/tika-app-1.19.jar


standalone ์œผ๋กœ ๊ตฌ๋™ํ•˜๊ณ  RESTFul ๋กœ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„๋„ ์žˆ๋Š”๋ฐ ์ž๋™ํ™”ํ•˜๋ ค๋ฉด ์ด๊ฒŒ ๋” ํŽธ๋ฆฌํ•˜๋ฉฐ ์•„๋ž˜ ์ฃผ์†Œ์—์„œ ๋ฐ›์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ wget http://apache.mirror.cdnetworks.com/tika/tika-server-1.19.jar

์„œ๋ฒ„๋กœ ๊ตฌ๋™ํ•  ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ DB ์— ๋‚จ๊ธฐ๋ ค๋ฉด SQLite JDBC ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์•„๋ž˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋ฐ›์•„์„œ ๋™์ผํ•œ ํด๋”์— ์œ„์น˜์‹œํ‚ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ wget http://central.maven.org/maven2/org/xerial/sqlite-jdbc/3.23.1/sqlite-jdbc-3.23.1.jar


์‹คํ–‰

์‹คํ–‰์€ java -jar ์˜ต์…˜์œผ๋กœ ์•„๋ž˜์ฒ˜๋Ÿผ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

App

$ java -jar tika-app-1.19.jar


Server

$ java -jar tika-server-1.19.jar


SQLite JDBC ์ ์šฉํ•˜๋ ค๋ฉด -cp ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

$ java -cp . -jar tika-server-1.19.jar


๊ธฐ๋ณธ ํฌํŠธ๋Š” 9998 ์ด๋ฉฐ ๋‹ค๋ฅธ ํฌํŠธ(Ex: 1234)๋กœ ๊ตฌ๋™ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด -p ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

$ java -cp . -jar tika-server-1.19.jar  -h 0.0.0.0 -p 1234



์„œ๋ฒ„ ์ •๋ณด

์„œ๋ฒ„๋กœ ๊ตฌ๋™ํ–ˆ์œผ๋ฉด REST API ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

version ํ™•์ธ

$ curl localhost:9998/version


Apache Tika 1.19


detector ํ™•์ธ

$ curl localhost:9998/detectors

์ง€์›ํ•˜๋Š” mime type ํ™•์ธ

$ curl localhost:9998/mime-types


์ปจํ…์ธ  parsing

meta ๋ถ„์„

$ curl -T a.pdf localhost:9998/meta


ํŠน์ • ํ•„๋“œ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ url ์— ํ•„๋“œ๋ช… ๋ช…์‹œํ•˜๋ฉฐ ์•„๋ž˜๋Š” ์ €์ž ํ•„๋“œ๋งŒ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

$ curl -T a.pdf localhost:9998/meta/Author

PDF ๋ Œ๋”๋ง ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๋ ค๋ฉด JDK 8 ์„ ์‚ฌ์šฉํ•˜๊ณ  JVM ๊ตฌ๋™์‹œ ์•„๋ž˜ ์˜ต์…˜ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider


์›ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ

๊ธฐ์กด ์ถœ๋ ฅ์€ text/csv ์ด๋ฉฐ Accept ํ—ค๋”์— ์›ํ•˜๋Š” ํฌ๋งท์„ ์„ค์ •ํ•ด์„œ ํ˜ธ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


XML

$ curl -T a.pdf -H "Accept: application/rdf+xml" localhost:9998/meta


์•„๋ž˜๋Š” json ํ˜•์‹์œผ๋กœ ๊ฒฐ๊ณผ๋ฌผ์„ ์ „๋‹ฌ ๋ฐ›์Šต๋‹ˆ๋‹ค.

$ curl -T a.pdf -H "Accept: application/json" localhost:9998/meta


JSON ์ผ ๊ฒฝ์šฐ ๊ฐœํ–‰์„ ์•ˆ ํ•ด์„œ ๋ณด๊ธฐ๊ฐ€ ํž˜๋“œ๋‹ˆ jq ๋กœ ํฌ๋งทํŒ… ํ•˜๋ฉดย  ๊ฒฐ๊ณผ๋ฌผ์ด ๋ณด๊ธฐ ํŽธํ•ด์ง‘๋‹ˆ๋‹ค.

$ curl -T a.pdf -H "Accept: application/json" localhost:9998/meta | jq .

๊ฐ™์ด ๋ณด๊ธฐ

Related content

Linux Command line ์—์„œ PDF ํŒŒ์ผ์„ ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ธฐ
Linux Command line ์—์„œ PDF ํŒŒ์ผ์„ ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ธฐ
More like this
confluence page๋‚ด ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋ฐ”๋กœ ํŽธ์ง‘ - goEdit plugin
confluence page๋‚ด ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋ฐ”๋กœ ํŽธ์ง‘ - goEdit plugin
More like this
spatie media library ๋กœ laravel ์—์„œ multi media ์ฒ˜๋ฆฌํ•˜๊ธฐ
spatie media library ๋กœ laravel ์—์„œ multi media ์ฒ˜๋ฆฌํ•˜๊ธฐ
More like this
WEB-INF ์™€ META-INF ๋””๋ ‰ํ„ฐ๋ฆฌ ๋…ธ์ถœ ๋ฐฉ์ง€
WEB-INF ์™€ META-INF ๋””๋ ‰ํ„ฐ๋ฆฌ ๋…ธ์ถœ ๋ฐฉ์ง€
More like this
REST API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Confluence Page ๋ฅผ PDF๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
REST API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Confluence Page ๋ฅผ PDF๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
More like this
Scroll PDF Exporter - Confluence Page ๋ฅผ PDF๋กœ ๋ณ€ํ™˜
Scroll PDF Exporter - Confluence Page ๋ฅผ PDF๋กœ ๋ณ€ํ™˜
More like this