• Stars
    star
    368
  • Rank 115,958 (Top 3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

hwp library for java

hwplib

ํ•œ๊ธ€๊ณผ ์ปดํ“จํ„ฐ(ํ•œ์ปด)์—์„œ ๋งŒ๋“  ์›Œ๋“œํ”„๋กœ์„ธ์„œ "ํ•œ๊ธ€"์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์ธ ์ทจ๋ฏธ ์ƒํ™œ ๋˜๋Š” ์‚ฌํšŒ๊ธฐ์—ฌ ํ™œ๋™ ๋ชฉ์ ์œผ๋กœ ์‹œ์ž‘ํ•œ hwplib, hwpxlib ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ƒ์šฉ ์ œํ’ˆ์ด ๊ฐœ๋ฐœํ•˜์—ฌ ํŒ๋งคํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ €์ž‘๊ถŒ์€ ์ € ๊ฐœ์ธ์—๊ฒŒ ์žˆ์œผ๋ฏ€๋กœ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ, ๋ฒ„๊ทธ ์ˆ˜์ •์š”์ฒญ, ์•ฝ๊ฐ„์˜ ์งˆ๋ฌธ ๋“ฑ์€ Apache-2.0 license์— ์˜ํ•ด ์•ž์œผ๋กœ๋„ ์ž์œ ๋กญ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ง€์› ์š”์ฒญ์ด๋‚˜ ์œ ์ง€๋ณด์ˆ˜ ๊ณ„์•ฝ๋“ฑ์€ ์ œ ๋ฉ”์ผ๋กœ ์ƒ์˜ํ•ด ์ฃผ์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋ฌธ์„œ

    • Apache-POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - ํ•œ๊ธ€ ํŒŒ์ผ์˜ ํ•˜๋ถ€ ๊ตฌ์กฐ์ธ Microsoft Compound File์˜ ๋ถ€๋ถ„์˜ ํŒŒ์‹ฑ.
    • ํ•œ๊ธ€๊ณผ์ปดํ“จํ„ฐ์—์„œ ๊ณต๊ฐœํ•œ 'ํ•œ๊ธ€ ๋ฌธ์„œ ํŒŒ์ผ ๊ตฌ์กฐ 5.0' ๋ฌธ์„œ ( http://www.hancom.com/etc/hwpDownload.do?gnb0=269&gnb1=271&gnb0=101&gnb1=140 )
      ( โ€œ๋ณธ ์ œํ’ˆ์€ ํ•œ๊ธ€๊ณผ์ปดํ“จํ„ฐ์˜ HWP ๋ฌธ์„œ ํŒŒ์ผ(.hwp) ๊ณต๊ฐœ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค." )
  • ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ.(kr.dogfoot.hwplib.sample ํŒจํ‚ค์ง€์— ์ƒ˜ํ”Œ ์ฐธ๊ณ .)

    • ํ•œ๊ธ€ ํŒŒ์ผ์„ ์ฝ์–ด์„œ ๊ฐ์ฒด๋กœ ์ƒ์„ฑ : Reading_HWP_FromFile, Reading_HWP_FromURL ...
    • ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅ : Rewriting_HWPFile, SimpleEditing_HWPFile ...
    • ํ•œ๊ธ€ ํŒŒ์ผ์—์„œ ํ…์ŠคํŠธ ์ถ”์ถœ : Extracting_Text, Extracting_Text_From_Big_File ...
    • ํ•„๋“œ ํ…์ŠคํŠธ ์ถ”์ถœ/์„ค์ • : Getting_ClickHere_FieldText, Setting_ClickHere_FieldText, Finding_AllField, Setting_FieldText
    • ์กฐ๊ฑด์— ๋งž๋Š” ์ปจํŠธ๋กค ์ฐพ๊ธฐ : Finding_Control
    • ๋‹ค๋ฅธ ํŒŒ์ผ์˜ ๋‚ด์šฉ(๋ฌธ๋‹จ)์„ ์ถ”๊ฐ€ํ•˜๊ธฐ. ํŒŒ์ผ ํ•ฉ์น˜๊ธฐ : Adding_Paragraph_Between_HWPFile ...
    • ํ‘œ ์ปจํŠธ๋กค ์กฐ์ž‘ : ์‚ฝ์ž…(Inserting_Table), ์…€ ํ•ฉ์น˜๊ธฐ(Merging_Cell), ํ–‰ ์‚ญ์ œ(Removing_Table_Row) ...
    • ๊ธฐํƒ€ ์ปจํŠธ๋กค ์กฐ์ž‘ : ์ด๋ฏธ์ง€ ์‚ฝ์ž…(Inserting_Image), ํ•˜์ดํผ๋งํฌ ์‚ฝ์ž…(Inserting_HyperLink) ....
    • ๊ธฐํƒ€ ์„ค์ • : ํŽ˜์ด์ง€ ํฌ๊ธฐ ๋ณ€๊ฒฝ (Changing_PaperSize), ํฐํŠธ ํฌ๊ธฐ, ๋ฐ‘์ค„ ๋“ฑ์˜ ๊ธ€์ž๋ชจ์–‘ ์„ค์ •(Inserting_CharShape ์ฐธ๊ณ ) ...
  • ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ์˜ ๊ธฐ๋Šฅ์„ ์•„์ง(??) ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • ์•”ํ˜ธํ™”๋œ HWP ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฝ๊ณ  ์“ฐ๊ธฐ
    • ์ด๋ฏธ์ง€ ํŒŒ์ผ, PDF ํŒŒ์ผ, HTML ํŒŒ์ผ๋กœ ๋ณ€ํ™˜
    • ํŠน์ • ํŽ˜์ด์ง€ ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ ๋‚˜ ์ „์ฒด ํŽ˜์ด์ง€ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ.
  • ๋ฉ”์ด๋ธ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ์„ค์ •

    <dependency>
        <groupId>kr.dogfoot</groupId>
        <artifactId>hwplib</artifactId>
    </dependency>
    
  • hwpx ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” https://github.com/neolord0/hwpxlib ์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”.

2023.5.8

  • ์ด์Šˆ 217 : ์ด์Šˆ216์—์„œ ๋ ˆ์ฝ”๋“œ์˜ ํฌ๊ธฐ๊ฐ€ 0์ธ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ์„ ๋•Œ ๋ฌธ๋‹จ์˜ ParaCharShape ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

2023.4.27

  • ์ด์Šˆ 216 : ๋ ˆ์ฝ”๋“œ์˜ ํฌ๊ธฐ๊ฐ€ 0์ธ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ์€ ํ›„ ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

2023.3.29

  • JAVA 1.7์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ฝ”๋“œ ์ˆ˜์ •, ์ž์ฒด ํฌํ•จ๋œ POI ๋ฒ„์ „์„ 4.1.2์—์„œ 3.9๋กœ ๋ณ€๊ฒฝํ•จ.

2023.3.7

  • ์ด์Šˆ 212 : Ctrl Data๊ฐ€ ์—†๋Š” ํ•„๋“œ ์ปจํŠธ๋กค์ด Stream ๋์— ์žˆ์„ ๋•Œ ์ฝ๊ธฐ ์˜ค๋ฅ˜..

2023.3.3

  • ์ด์Šˆ 209 : ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ๋‹ค๋‹จ์ด ์ ์šฉ๋œ ๋ฌธ์„œ์„ ์ €์žฅํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •.

2023.1.20

  • ์ด์Šˆ 204 : ๋ฌธ์„œ์š”์•ฝ ์ •๋ณด ์ฝ๊ณ  ์“ฐ๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

2023.1.13

  • ์ด์Šˆ 203 : ๋ฌธ๋‹จ ๋ณต์‚ฌ, ๋ณ‘ํ•ฉ์‹œ ๊ณตํ†ต ๊ฐ์ฒด์˜ ๋ณต์‚ฌ ์†๋„ ๊ฐœ์„ 

2023.1.3

  • ์ด์Šˆ 201 : GSOControl ๊ฐ์ฒด ๋‚ด๋ถ€์˜ caption, ctrldata ๋ ˆ์ฝ”๋“œ์˜ ์ˆœ์„œ๊ฐ€ ์œ ๋™์ ์ผ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ..

2022.9.9

  • ์ด์Šˆ 193 : ParagraphMerger, ParagraphCopier ํด๋ž˜์Šค์—์„œ ClassCastException ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ์ด์Šˆ 194 : ๋ฌธ๋‹จ ํ…์ŠคํŠธ ์ถ”์ถœ์‹œ.. ๊ฐœ์š” ๋ฒˆํ˜ธ ์ถœ๋ ฅ ๊ธฐ๋Šฅ ์ˆ˜์ •.

2022.9.5

  • ์ด์Šˆ 191 : HtmlToTableExample.java ์—์„œ setBorderFillID()์— ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ๊ฐ’์„ ๋„ฃ์€ ๋ถ€๋ถ„ ์ˆ˜์ •.

2022.7.7

  • ์ด์Šˆ 188 : ๋ฐฐํฌ์šฉ ๋ฌธ์„œ HWP ํŒŒ์ผ์„ ์ฝ์„ ๋•Œ ์˜ค๋ฅ˜๋ฅผ (์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š”) ์˜ˆ์™ธ๋กœ ์ฒ˜๋ฆฌ
  • ์ด์Šˆ 187 : ํ…์ŠคํŠธ ์ถ”์ถœ์‹œ(TextExtractor.extract() ์‚ฌ์šฉ) ๋ฌธ๋‹จ ๋ฒˆํ˜ธ/๊ฐœ์š” ๋ฒˆํ˜ธ๊ฐ€ ์„ค์ •๋œ ๋ฌธ๋‹จ์—์„œ ์˜ค๋ฅ˜ ์ˆ˜์ •

2022.6.24

  • ์ด์Šˆ 182 : ๋ฉ”๋ชจ๋ฅผ ๋ฌธ๋‹จ๋งˆ๋‹ค ๋ฐ˜๋ณต๋˜๋Š” ํ˜•ํƒœ์—์„œ ๋งˆ์ง€๋ง‰ ์„น์…˜์— ํ•œ๋ฒˆ๋งŒ ๋‚˜์˜ค๋Š” ํ˜•ํƒœ๋กœ ๋ณ€๊ฒฝ..

2022.6.3

  • ๋ฉ”์ด๋ธ ์ €์žฅ์†Œ์— 1.1.1 ๋ฒ„์ „ ๋“ฑ๋ก

2022.5.17

  • ์ด์Šˆ 177 : TOC ํ•„๋“œ ์ถ”๊ฐ€

2022.3.17

  • ์ด์Šˆ 171 : FieldFinder.getAllClickHereText()์— ๊ธ€์ด ์—†๋Š” ์‚ฌ๊ฐํ˜• ๊ฐœ์ฒด์„ ํฌํ•จํ•˜๋Š” hwpFile์„ ์ž…๋ ฅํ•˜์—ฌ ์‹คํ–‰์‹œ ์˜ค๋ฅ˜ ์ˆ˜์ • (typemild๋‹˜ ์š”์ฒญ)

2022.2.25

  • ์ด์Šˆ 167 : HtmlToTableExample ์ƒˆ๋ฒ„์ „์— ๋งž๊ฒŒ ์ˆ˜์ • (Mineru98๋‹˜ ์š”์ฒญ)
  • ControlField.setName() ์ถ”๊ฐ€.

2021.12.17

  • ์ด์Šˆ 163 : ์บก์…˜ ์ƒ์„ฑ์‹œ ์˜ค๋ฅ˜ ์ˆ˜์ • (Bobby-m-m๋‹˜ ์š”์ฒ )

2021.12.14

  • ์ด์Šˆ 162 : ๊ธ€๋งต์‹œ ์ปจํŠธ๋กค(ControlTextArt) ์ถ”๊ฐ€ (sungjini78๋‹˜ ์š”์ฒ )

2021.11.8

  • ๋ฉ”์ด๋ธ ์ €์žฅ์†Œ์— 1.1.0 ๋ฒ„์ „ ๋“ฑ๋ก

2021.11.8

  • ์ด์Šˆ 158 : ShapeComponentOLE ๊ฐ์ฒด ์ฝ๊ณ  ์“ฐ๊ธฐ ํ• ๋•Œ.. ์•Œ ์ˆ˜ ์—†๋Š” ๋ฐ”์ดํŠธ ์ฒ˜๋ฆฌ(sungjini78๋‹˜ ์š”์ฒ )

2021.11.1

  • POI ๋ณ‘ํ•ฉ - ๋‹ค๋ฅธ ๋ฒ„์ „์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ, jar ๋ฒ„์ „์˜ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด..

2021.10.25

  • Pull Request ๋ฐ˜์˜ - ์˜คํƒ€ ์ˆ˜์ • (BinDataCompress ํด๋ž˜์Šค์˜ ByStroageDefault => ByStorageDefault, BinDataState ํด๋ž˜์Šค์˜ NotAcceess => NotAccess)

2021.8.27

  • ์–‘์‹ ๊ฐ์ฒด ์†์„ฑ๊ฐ’ ๋ถ„์„์„ ์œ„ํ•œ Property ๊ฐ์ฒด ์ถ”๊ฐ€...
  • ์–‘์‹ ๊ฐ์ฒด Finder ์ถ”๊ฐ€...
  • ํ•„๋“œ๊ฐ’ ์„ค์ •์‹œ..ํ•ด๋‹น ๋ฌธ๋‹จ์˜ LineSeg ์‚ญ์ œ.

2021.7.13

  • ์–‘์‹ ๊ฐœ์ฒด(๋ผ๋””์˜ค ๋ฒ„ํŠผ, ์ฒดํฌ ๋ฐ•์Šค ๋“ฑ) ์ฝ๊ณ  ์“ฐ๊ธฐ ์ถ”๊ฐ€..
  • FieldFinder ์ถ”๊ฐ€.

2021.7.2

  • ์ด์Šˆ 12,18 : ํ…์ŠคํŠธ ์ถ”์ถœ์‹œ ๋ฌธ๋‹จ ๋ฒˆํ˜ธ/๊ธ€๋จธ๋ฆฌํ‘œ๋ฅผ ํฌํ•จํ•˜๊ฒŒ ์ˆ˜์ •. (kr.dogfoot.hwplib.sample.Extracting_Text_With_ParaHead ์ฐธ๊ณ )

2021.6.25

  • ์„น์…˜(๊ตฌ์—ญ) ์ •์˜ ์ปจํŠธ๋กค์„ ๋ณต์‚ฌํ•˜๋Š” ํด๋ž˜์Šค(SectionDefineCopier) ์ถ”๊ฐ€.

2021.5.31

  • ๋‹จ์ •์˜ ์ปจํŠธ๋กค(ControlColumnDefine) read/write ์ˆ˜์ •
  • ์ด์Šˆ 143 : ๋ฌธ๋‹จ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(kr.dogfoot.hwplib.tool.paragraphadder)์— ๋‹จ์ •์˜ ์ปจํŠธ๋กค ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€.

2021.5.17

  • ๋ฉ”์ด๋ธ ์ €์žฅ์†Œ์— 1.0.4 ๋ฒ„์ „ ๋“ฑ๋ก

2021.5.17

  • ์ด์Šˆ 139 : ๋ฌธ๋‹จ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(kr.dogfoot.hwplib.tool.paragraphadder)์— ๊ฒน์นจ๋ฌธ์ž ์ปจํŠธ๋กค ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€.
  • ์ปจํŠธ๋กค์˜ [๋ณธ๋ฌธ๊ณผ์˜ ๋ฐฐ์น˜]์†์„ฑ๊ฐ’ ์ˆ˜์ •
  • ์ด์Šˆ 140 : CharShape.getBorderFillId()๊ฐ€ 0 ์ผ๋•Œ, ๋ฌธ๋‹จ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์˜ค๋ฅ˜ ์ˆ˜์ •..

2021.3.12

  • docInfo ์•„๋ž˜์— ๊ฐ์ฒด ์“ฐ๊ธฐ ์ˆœ์„œ ๋ณ€๊ฒฝ
  • ๊ธ€์ž ๋ชจ์–‘์˜ ๋ฐ‘์ค„ ํƒ€์ž… ๋ณ€๊ฒฝ
  • ์ด๋ฏธ์ง€ID(BIN?????.bmp)๋ฅผ 10์ง„์ˆ˜๋กœ ์ธ์‹ํ•˜๋˜ ๊ฒƒ์„ 16์ง„์ˆ˜๋กœ ์ธ์‹ํ•˜๊ฒŒ ํ•จ

2021.3.3

  • ๊ฒน์นจ๋ฌธ์ž ๋“ฑ์—์„œ ํ•œ๊ธ€ ๊ณ ์œ ์— ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์ฝ๊ณ  ์“ธ ๋•Œ, ์ฝ”๋“œ ๋ณ€ํ™˜ ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ๊ฐ์ฒด ๋ณต์‚ฌ์‹œ ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ๋จธ๋ฆฌ๊ธ€/๊ผฌ๋ฆฌ๊ธ€ ์˜ˆ์ œ ์ถ”๊ฐ€ sample/Inserting_HeaderFooter.java

2021.2.24

  • 4095 ๋ฐ”์ดํŠธ ๋ณด๋‹ค ํฐ ๋ ˆ์ฝ”๋“œ ์ฝ๊ณ  ์“ฐ๊ธฐ ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ๋นˆ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ(kr.dogfoot.hwplib.tool.blankfilemaker.BlankFileMaker)์—์„œ ๋น ์ง„ BorderFill ๊ฐ์ฒด ์ƒ์„ฑ.

2021.2.18

  • ๋ฌธ๋‹จ ๋‚ด์— ํ•Š๋“œ ํ…Œ์ŠคํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ/์„ซ์ •ํ•˜๊ธฐ ํ•จ์ˆ˜ ์ˆ˜์ •..
  • ์ด์Šˆ 127 : ์ด๋ฏธ์ง€ ์ฝ์„ ๋–„ id ์ฐพ๋Š” ๋ฐฉ๋ฒ• ์˜ค๋ฅ˜ ์ˆ˜์ •..

2021.2.17

  • ControlField.clone() ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ๋ฌธ๋‹จ ๋ณต์‚ฌํ•  ๋•Œ ControlField ๋ณต์‚ฌํ•˜๊ฒŒ ์ˆ˜์ •

2021.2.5

  • ์ด์Šˆ 122 : ParaText.insertString() ์ถ”๊ฐ€
  • ์ด์Šˆ 123 : kr.dogfoot.hwplib.tool.paragraphadder.docinfo.FaceNameAdder์˜ equal() ํ•จ์ˆ˜ ๋‚ด์˜ Null ์ฒดํฌ
  • ์ด์Šˆ 124 : bullet ๋ณต์‚ฌ ๋ถ€๋ถ„ ์ˆ˜์ •
  • ์ด์Šˆ 125 : numbering ๋ณต์‚ฌ ๋ถ€๋ถ„ ์ˆ˜์ •
  • ์ด์Šˆ 126 : ๋ฌถ์Œ(Container) ์•ˆ์— ์ปจํŠธ๋กค ๋ณต์‚ฌ์‹œ ์˜ค๋ฅ˜ ์ˆ˜์ •

2021.2.5

  • ํ…์ŠคํŠธ ์ถ•์ถœ ์˜ต์…˜ ์ถ”๊ฐ€.

2021.2.3

  • ํ…์ŠคํŠธ ์ถ•์ถœ์‹œ ํƒญ, ๊ฐœํ–‰, ํ•˜์ดํ”ˆ์ด ๋น ์ง€๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •.
  • TextExtractMethod.xxxWithControlChar ๋ชจ๋“œ ์ถ”๊ฐ€.

2021.1.19

  • ParagraphAdder.merge() ํ•จ์ˆ˜ ์ถ”๊ฐ€.

2021.1.12

  • ๋ฉ”์ด๋ธ ์ €์žฅ์†Œ์— 1.0.3 ๋ฒ„์ „ ๋“ฑ๋ก

2020.12.30

  • ๋ฌธ๋‹จ ๋ถ™์ด๊ธฐ์„ ์œ„ํ•œ HWPFile ๊ฐ์ฒด ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • sample/Adding_Paragraph_Between_Cloned_HWPFile ์ฐธ๊ณ ..

2020.11.17

  • ๋ฌธ๋‹จ ๋ถ™์ด๊ธฐ(ParagraphAdder) ๊ฐ€๋Šฅ ์ค‘ ๊ทธ๋ฆผ ์ปจํŠธ๋กค ๋ณต์‚ฌ ์˜ค๋ฅ˜ ์ˆ˜์ •

2020.10.23

  • ๋ฉ”์ด๋ธ ์ €์žฅ์†Œ์— 1.0.2 ๋ฒ„์ „ ๋“ฑ๋ก

2020.8.31

  • ๋นˆ ํŒŒ์ผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ ์ถ”๊ฐ€ - ingyeoking13 ๋‹˜ ์š”์ฒญ
  • sample/Making_BlankFile.java ์ฐธ์กฐ

2020.6.16

  • ํ•„๋“œ(๋ˆ„๋ฆ„ํ‹€) ์ฐพ๊ธฐ ์ค‘์— ๊ทธ๋ฆฌ๊ธฐ ๊ฐ์ฒด์— textBox๊ฐ€ null์ธ ์˜ค๋ฅ˜ ์ˆ˜์ • - j2y0206 ๋‹˜ ์š”์ฒญ

2020.5.27

  • ๋‹ค๋ฅธ ๋ฌธ์„œ ๊ฐ„์— ๋ฌธ๋‹จ ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ธฐ๋Šฅ์— ํ‘œ ์ปจํŠธ๋กค ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ - kimeuietae ๋‹˜ ์š”์ฒญ
  • ๋‹ค๋ฅธ ๋ฌธ์„œ ๊ฐ„์— ๋ฌธ๋‹จ ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ธฐ๋Šฅ์— ์ฒซ๋ฒˆ์งธ ๋ฌธ๋‹จ์„ ๋ณต์‚ฌํ•  ๋•Œ ์˜ค๋ฅ˜ ์ˆ˜์ • - kimeuietae ๋‹˜ ์š”์ฒญ
  • sample/Copying_Paragraph_Between_HWPFile.java ์ฐธ์กฐ...

2020.2.25

  • ํฐ ํŒŒ์ผ์• ์„œ ํ…์ŠคํŠธ ์ถ”์ถœ์„ ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑํ˜„์ƒ ์ˆ˜์ • - LeeYunSeop ๋‹˜ ์š”์ฒญ
  • sample/Extracting_Text_From_Big_File.java ์ฐธ์กฐ...

2020.01.31

  • ์ฝ๊ธฐ ์˜ค๋ฅ˜ ์ˆ˜์ • - osc91 ๋‹˜ ์š”์ฒญ.

2020.01.29

  • ์ˆ˜์‹ ๋ถ€๋ถ„ ์˜ค๋ฅ˜ ์ˆ˜์ • - osc91 ๋‹˜ ์š”์ฒญ.

2020.01.07

  • 5.0.2.5 ๋ฒ„์ „ ์ด์ƒ์—์„œ ์ถ”๊ฐ€๋œ ๋ฌธ๋‹จ ๋ฒˆํ˜ธ ์ˆ˜์ค€(8-10) ์ฒ˜๋ฆฌ.. - Chunsjun ๋‹˜ ์š”์ฒญ.

2020.01.02

  • ๋ฉ”์ด๋ธ Central Repository ๋“ฑ๋ก

2019.12.20

  • html ํ‘œ๋ฅผ ํ•œ๊ธ€๋กœ ๋งŒ๋“œ๋Š” ์ƒ˜ํ”Œ ์ถ”๊ฐ€(samle/htmltohwp ํด๋”) - [email protected](์ด์ค€์„ฑ) ๋‹˜ ์ œ๊ณต

2019.10.22

  • ํ™€/์ง ์กฐ์ •(ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ์กฐ์ •) ์ปจํŠธ๋กค ์ถ”๊ฐ€ - kangyongseog ๋‹˜ ์š”์ฒญ

2019.10.2

  • ๋ฌธ๋‹จ ํ…์ŠคํŠธ ๋ณ€๊ฒฝํ•˜๋Š” ์ƒ˜ํ”Œ ์ถ”๊ฐ€ - humblemh ๋‹˜ ์š”์ฒญ

2019.09.23

  • ๊ตฌ๋ฒ„์ „ ํŒŒ์ผ(5.0.0.0)์— ์ˆ˜์‹ ์ฝ๊ธฐ ์˜ค๋ฅ˜ ์ˆ˜์ •... - [email protected] ๋‹˜ ์š”์ฒญ

2019.09.20

  • ์†์ƒ๋œ ํŒŒ์ผ ์••์ถ•ํ•ด์ œ ์‹œ ๋ฌดํ•œ๋ฃจํ”„ ๋น ์ง€๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •(Exception ์ฒ˜๋ฆฌ) - LeBronPark ๋‹˜ ์š”์ฒญ

2019.09.16

  • ๊ตฌ๋ฒ„์ „์˜ ์ปจํ…Œ์ด๋„ˆ(๋ฌถ์Œ) ์ปจํŠธ๋กค ์ฝ๊ธฐ ์˜ค๋ฅ˜ - [email protected] ๋‹˜ ์š”์ฒญ

2019.08.13

  • ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€(HWPWriter.toStream()) - KimJason8557 ๋‹˜ ์š”์ฒญ

2019.06.24

  • 5.1.0.1 ํŒŒ์ผ ์ฝ๊ธฐ ์˜ค๋ฅ˜ .... - jwon0615 ๋‹˜ ์š”์ฒญ
  • ShapeComponentPicture ๋ ˆ์ฝ”๋“œ์— ์•Œ์ˆ˜ ์—†๋Š” 1๋ฐ”์ดํŠธ ์ถ”๊ฐ€๋จ..

2019.06.13

  • ๋‹จ ์„ค์ •์—์„œ "๋‹จ ๋„ˆ๋น„ ๋™์ผํ•˜๊ฒŒ"์™€ 1๊ฐœ ์ด์ƒ์˜ ๋‹จ์„ ์„ค์ •ํ•œ ํ›„ ์ €์žฅํ•˜๋ฉด, 1๊ฐœ์˜ ๋‹จ์œผ๋กœ ์ €์žฅ๋˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ • - kwon1148 ๋‹˜ ์š”์ฒญ

2019.06.04

  • ํ‘œ ์…€์— "์•ˆ ์—ฌ๋ฐฑ ์ง€์ •" ์†์„ฑ๊ฐ’ get/set - kamsi76 ๋‹˜ ์š”์ฒญ
  • ForControlWithAllField.getFieldText() ์˜ค๋ฅ˜ ์ˆ˜์ • - kamsi76 ๋‹˜ ์š”์ฒญ

2019.04.12

  • ํ‘œ์—์„œ ํŠน์ • ํ–‰์„ ์‚ญ์ œํ•˜๋Š” ์ƒ˜ํ”Œ ์ถ”๊ฐ€ - kamsi76 ๋‹˜ ์š”์ฒญ
  • sample/TestRemoveRow.java ์ฐธ๊ณ 

2019.04.04

  • ํ•„๋“œ๋ช…์ด ์ผ์น˜ํ•˜๋Š” ์…€ ์ฐพ๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€. - kwonhyun ๋‹˜ ์š”์ฒญ
  • sample/TestFindCell.java ์ฐธ๊ณ 

2019.01.28

  • FieldFiner์— ์ด๋ฆ„์ด ๊ฐ™์€ ํ•„๋“œ ๋ชจ๋‘ ์ฐพ๋Š” ํ•จ์ˆ˜ ์ถ”๊ฐ€... - jclab ๋‹˜ ์š”์ฒญ
  • sample/TestFindAllField.java ์ฐธ๊ณ 

2018.11.20

  • IDMapping์˜ ๋ฌธ๋‹จ ๋ชจ์–‘ ๊ฐœ์ˆ˜์™€ ์ €์žฅ๋œ ์‹ค์ œ ๋ฌธ๋‹จ ๋ชจ์–‘ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅผ ๋•Œ ๋ณด์ •.. - [email protected] ๋‹˜ ์š”์ฒญ

2018.10.17

  • ํ•„๋“œ ์„ค์ • ๊ธฐ๋Šฅ ๊ฐ•ํ™” :๋ฉ€ํ‹ฐ๋ผ์ธ ํ…์ŠคํŠธ, ์ด๋ฆ„์ด ๋™์ผํ•œ ํ•„๋“œ๋ฅผ ์œ„ํ•œ ๊ฐ’ ๋ฆฌ์ŠคํŠธ, ๋ˆ„๋ฆ„ํ‹€ ํ•„๋“œ ์ด์™ธ์— ํ•„๋“œ ์„ค์ •... - [email protected] ๋‹˜ ์š”์ฒญ
  • sample/TestSetField.java ์ฐธ๊ณ 

2018.09.14

  • ํ‘œ ์…€ ๋ณ‘ํ•ฉํ•˜๊ธฐ - codeless73 ๋‹˜ ์š”์ฒญ
  • sample/TestMergingCell.java ์ฐธ๊ณ 

2018.08.31

  • ํ•„๋“œ ํ…์ŠคํŠธ ์„ค์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ - [email protected] ๋‹˜ ์š”์ฒญ
  • sample/TestSetClickHereFieldText.java ์ฐธ๊ณ 

2018.08.21

  • ์ €์žฅ ๋•Œ ์ด๋ฏธ์ง€ ์••์ถ•๊ณผ์ •์—์„œ ์˜ค๋ฅ˜ ์ˆ˜์ • - [email protected] ๋‹˜ ์š”์ฒญ

2018.08.17

  • ๋‹ค๋ฅธ ํ•œ๊ธ€ ํŒŒ์ผ์—์„œ ์žˆ๋Š” ๋ฌธ๋‹จ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ - accforaus ๋‹˜ ์š”์ฒญ
  • ๋ฌธ๋‹จ์— ํฌํ•จ๋œ ๊ธ€์ž๋งŒ ์ถ”๊ฐ€๋จ. ๋ฌธ๋‹จ์— ํฌํ•จ๋œ ์ปจํŠธ๋กค๋“ค๊ณผ ๋ฉ”๋ชจ๋“ค์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์€ ์•„์ง ๊ตฌํ˜„ ๋ชปํ•จ(์ถ”ํ›„ ์ถ”๊ฐ€ ์˜ˆ์ •์ž„)
  • sample/TestParagraphAdder.java ์ฐธ๊ณ 

2018.07.18

  • 5.0.2.5์˜ ๊ฐ์ฃผ ์ปจํŠธ๋กค ์ฝ์„ ๋•Œ ์˜ค๋ฅ˜ ๋‚˜๋Š” ๋ฌธ์ œ ์ˆ˜์ • - accforaus ๋‹˜ ์š”์ฒญ
  • BinData๊ฐ€ ์Šคํ† ๋ฆฌ์ง€ ๋””ํดํŠธ ๋ชจ๋“œ๋กœ ์••์ถ•๋˜์—ˆ์„ ๋–„ ์˜ค๋ฅ˜ ๋‚˜๋Š” ๋ฌธ์ œ ์ˆ˜์ •

2018.07.10

  • ๋ฌธ๋‹จ์˜ ๊ธ€์ž๋ชจ์–‘(๊ธ€๊ผด, ํฌ๊ธฐ, Bold/Italic, ๊ธ€์ž์ƒ‰ ๋“ฑ) ์„ค์ •ํ•˜๋Š” ์ƒ˜ํ”Œ ์ถ”๊ฐ€ - zuoliang0 ๋‹˜ ์š”์ฒญ
  • sample/TestMakingCharShape.java ์ฐธ๊ณ 

2018.05.04

  • ์ด๋ฏธ์ง€ ์ปจํŠธ๋กค ๋™์  ์ƒ์„ฑ ์ƒ˜ํ”Œ ์ถ”๊ฐ€ - [email protected] ๋‹˜ ์š”์ฒญ
  • sample/TestInsertImage.java ์ฐธ๊ณ 

2018.03.20

  • ํ‘œ ๋™์  ์ƒ์„ฑ ์ƒ˜ํ”Œ ์ถ”๊ฐ€ - krPlatypus ๋‹˜ ์š”์ฒญ
  • sample/TestMakingTable.java ์ฐธ๊ณ 

2017.11.23

  • ์••์ถ• ํ‘ธ๋Š” ๋ฐฉ์‹ ๊ฐœ์„  ๋“ฑ์˜ ์˜ค๋ฅ˜ ์ˆ˜์ • ๋ฐ ๊ฐ์ฒด ์—ฐ๊ฒฐ์„  ์ปจํŠธ๋กค ์ถ”๊ฐ€ - osc91 ๋‹˜ ์š”์ฒญ

2017.11.14

  • ๋ฉ”๋ชจ ์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ ์ฝํžˆ์ง€ ์•Š๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ • - osc91 ๋‹˜ ์š”์ฒญ

2017.8.31

  • ์ปจํŠธ๋กค ์ฐพ๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ - osc91 ๋‹˜ ์š”์ฒญ
    • TestFindObject.java ์ฐธ์กฐ
 ย  ย 	public static class MyControlFilter implements ControlFilter {
 ย  ย 		public boolean isMatched(Control control, Paragraph paragrpah, Section section) {
	   		// ํ•„ํ„ฐ๋ง ์กฐ๊ฑด ์ž…๋ ฅย 
		}
 ย  ย 	}
	
	ArrayList<Control> result = ControlFinder.find(hwpFile, new MyControlFilter());

2017.8.21

  • URL๋กœ ๋ถ€ํ„ฐ ์ฝ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ - osc91 ๋‹˜ ์š”์ฒญ
	String url = "http://ocwork.haansoft.com/sample/sample.hwp";
	HWPFile hwpFile = HWPReader.fromURL(url); 

2017.6.1

  • ์ €์žฅ ๋ชจ๋“ˆ ์™„๋ฃŒ
    • TestEditingHWPFile.java, TestReWritingHWPFile.java ์ฐธ๊ณ 
	// ํŒŒ์ผ์„ ์—ด์–ด์„œ
	String filename = "sample_hwp\\test-blank.hwp"; 
	HWPFile hwpFile = HWPReader.fromFile(filename); 
	
	if (hwpFile != null) {
	
	    // ์ฒซ๋ฒˆ์งธ ๊ตฌ์—ญ/๋ฌธ๋‹จ์— ๋ฌธ์ž์—ด ์ถ”๊ฐ€ํ•˜๊ณ 
		Section s = hwpFile.getBodyText().getSectionList().get(0);
		Paragraph firstParagraph = s.getParagraph(0);
		firstParagraph.getText().addString("์ด๊ฒƒ์€ ์ถ”๊ฐ€๋œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.");

		// ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ
		String writePath = filename.substring(0, 11) + "ed-" + filename.substring(11);
		HWPWriter.toFile(hwpFile, writePath);
	}

2017.4.26

  • ๊ตฌ๋ฒ„์ „์—์„œ ๋งŒ๋“  ํŒŒ์ผ ์ฝ๊ธฐ ์˜ค๋ฅ˜ ์ˆ˜์ • - quantum123๋‹˜ ์š”์ฒญ
    • 5.0.0.6, 5.0.2.4.1, 5.0.0.3, 5.0.1.6, 5.0.3.0.1, 5.0.0.5, 5.0.1.7 ๋ฒ„์ „

2017.4.14

  • ํ•œ ์žฅ ์ด์ƒ์˜ ๊ธด ๋ฌธ๋‹จ์„ ์ฝ์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

2017.4.4

  • ๋ˆ„๋ฆ„ํ‹€ ํ•„๋“œ ํ…์ŠคํŠธ ์ฐพ๊ธฐ ๊ธฐ๋Šฅ
    • ํ•„๋“œ ํ…์ŠคํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ์ค„์ผ๋•Œ ์ฒ˜๋ฆฌ
    • ํ•„๋“œ ํ…์ŠคํŠธ์— ์ปจํŠธ๋กค์ด ํฌํ•จ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ
    • FieldFinder.getClickHereText() ์—์„œ ํ•„๋“œ ํ…์ŠคํŠธ์— ์ปจํŠธ๋กค์ด ํฌํ•จ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด TextExtractMethod temInField ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
	String text1 = FieldFinder.getClickHereText(hwpFile, "ํ•„๋“œ1", TextExtractMethod.OnlyMainParagraph);

2017.3.29

  • ๋ˆ„๋ฆ„ํ‹€ ํ•„๋“œ ํ…์ŠคํŠธ ์ฐพ๊ธฐ ๊ธฐ๋Šฅ ์™„๋ฃŒ - musasin84๋‹˜ ์š”์ฒญ
    • test/TestGettingClickHereFieldText.java ํŒŒ์ผ ์ฐธ๊ณ 
	HWPFile hwpFile = HWPReader.fromFile(filename);
	String text1 = FieldFinder.getClickHereText(hwpFile, "ํ•„๋“œ์ด๋ฆ„");

2017.3.20

  • ๋ˆ„๋ฆ„ํ‹€ ํ•„๋“œ ์ปจํŠธ๋กค ์ฝ๊ธฐ ์˜ค๋ฅ˜ ์ˆ˜์ •

2017.1.6

  • ํ…์ŠคํŠธ ์ถ”์ถœ๊ธฐ ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • TextExtractor.extract()์˜ ๋‘๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ์„ธ๊ฐ€์ง€ ์ถ”์ถœ ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
      • OnlyMainParagraph // ๋ฉ”์ธ ๋ฌธ๋‹จ์— ํฌํ•จ๋œ ํ…์ŠคํŠธ๋งŒ ์ถ”์ถœํ•จ
      • InsertControlTextBetweenParagraphText // ์ปจํŠธ๋กค์˜ ํ…์ŠคํŠธ๋ฅผ ๋ฌธ๋‹จ ํ…์ŠคํŠธ ์‚ฌ์ด์— ์‚ฝ์ž…ํ•˜์—ฌ ์ถ”์ถœํ•จ
      • AppendControlTextAfterParagraphText // ์ปจํŠธ๋กค์˜ ํ…์ŠคํŠธ๋ฅผ ๋ฌธ๋‹จ ํ…์ŠคํŠธ ๋’ค์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ถ”์ถœํ•จ
    • test/TestExtractingText.java ํŒŒ์ผ ์ฐธ๊ณ 
	HWPFile hwpFile = HWPReader.fromFile(filename); 
	String hwpText = TextExtractor.extract(hwpFile, TextExtractMethod.InsertControlTextBetweenParagraphText);
  • ์ฝ๊ธฐ ๋ชจ๋“ˆ์—์„œ ๋ฒ„๊ทธ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์†Œ์Šค ์ธ์ฝ”๋”ฉ์„ euc-kr์—์„œ utf-8๋กœ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2016.12.23

  • ์ด ๋ฒˆ ๋ฐฐํฌ๋ฒ„์ „์€ ์ฝ๊ธฐ ๋ชจ๋“ˆ ๊นŒ์ง€๋งŒ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ๋ชจ๋“ˆ์€ ์ถ”ํ›„ ์ƒํ™ฉ์„ ๋ด์„œ ๊ตฌํ˜„ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
    • ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋“ค๊ณผ ๊ฐ์ฒด์— ํฌํ•จ๋œ ๋ฉ”์†Œ์Šค๋“ค์— ๋Œ€ํ•ด์„  "/doc" ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” javadoc ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
	// ํŒŒ์ผ์„ ์ฝ๋Š”๋‹ค. 
	HWPFile hwpFile = HWPReader.fromFile(filename);  			
	
	// ํŒŒ์ผ์—์„œ ์ฒซ๋ฒˆ์งธ ๊ตฌ์—ญ์„ ์–ป๋Š”๋‹ค. 
	Section s = hwpFile.getBodyText().getSectionList().get(0); 		
	
	// ์ฒซ๋ฒˆ์งธ ๊ตฌ์—ญ์—์„œ ์ฒซ๋ฒˆ์งธ ๋ฌธ๋‹จ์„ ์–ป๋Š”๋‹ค. 
	Paragraph p = s.getParagraphList().get(0);				
	...