From 0cb1cc0b0837efc85465c9eecd5fda87d9e4b418 Mon Sep 17 00:00:00 2001 From: dragdra Date: Mon, 28 Apr 2025 16:30:46 +0900 Subject: [PATCH] =?UTF-8?q?2504=ED=9A=8C=20=EC=88=98=EC=8B=9C2,3=20?= =?UTF-8?q?=EC=B1=84=EC=A0=90=EC=9E=90=EB=A3=8C=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DIW_2503A_test.json | 155 --- DIW_2504A.json => DIW_2504_2.json | 0 DIW_2503A.json => DIW_2504_3.json | 272 ++-- copy_all_hwp.py | 21 +- diwScoring.py | 22 +- hwp_conversion.log | 245 ++++ test.py | 39 +- zzz.xbook | 2 +- .../{2504_sub => 2504_2}/hml_변환/DIW_2504A.hml | 0 회차별채점자료/2504_3/hml_변환/DIW_2504A.hml | 1162 +++++++++++++++++ 10 files changed, 1594 insertions(+), 324 deletions(-) delete mode 100644 DIW_2503A_test.json rename DIW_2504A.json => DIW_2504_2.json (100%) rename DIW_2503A.json => DIW_2504_3.json (72%) rename 회차별채점자료/{2504_sub => 2504_2}/hml_변환/DIW_2504A.hml (100%) create mode 100644 회차별채점자료/2504_3/hml_변환/DIW_2504A.hml diff --git a/DIW_2503A_test.json b/DIW_2503A_test.json deleted file mode 100644 index 71ab71e..0000000 --- a/DIW_2503A_test.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "0": { - "0": { - "path": "", - "path2": "", - "points": 0, - "category": "파일저장", - "item": "파일명 (수검번호.hwp/hwpx)" - }, - "1": { - "path": "//PAGEMARGIN", - "value": { - "Bottom": 5669, - "Footer": 2834, - "Gutter": 0, - "Header": 2834, - "Left": 5669, - "Right": 5669, - "Top": 5669 - }, - "tolerance": 1, - "points": 4, - "category": "PageSetting", - "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" - }, - "2": { - "path": "//STYLE[@Name='바탕글']", - "value": { - "FontName": "바탕", - "FontSize": "1000", - "Alignment": "Justify", - "LineSpacing": "160" - }, - "points": 4, - "category": "BasicSetting", - "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" - }, - "3": { - "path": "", - "searchValue": null, - "value": null, - "points": 40, - "category": "오타감점", - "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" - } - }, - "1": { - "1": { - "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "친환경이동수단컨퍼런스", - "value": "견고딕", - "points": 1, - "category": "SingleAnswer", - "item": "문구 (친환경이동수단컨퍼런스)/① 글씨체 (견고딕)" - }, - "2": { - "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "친환경이동수단컨퍼런스", - "value": "49,95,151", - "points": 2, - "category": "Color", - "item": "문구 (친환경이동수단컨퍼런스)/② 채우기 : 색상(RGB:49,95,151)" - }, - "3": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "친환경이동수단컨퍼런스", - "value": "28346", - "points": 2, - "category": "SingleAnswer", - "item": "문구 (친환경이동수단컨퍼런스)/③ 크기-너비 (100mm)" - }, - "4": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "친환경이동수단컨퍼런스", - "value": "5669", - "points": 2, - "category": "SingleAnswer", - "item": "문구 (친환경이동수단컨퍼런스)/④ 크기-높이 (20mm)" - }, - "5": { - "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "친환경이동수단컨퍼런스", - "value": "true", - "points": 2, - "category": "SingleAnswer", - "item": "문구 (친환경이동수단컨퍼런스)/⑤ 위치 (글자처럼 취급)" - }, - "6": { - "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "친환경이동수단컨퍼런스", - "value": "Center", - "points": 2, - "category": "SingleAnswer", - "item": "문구 (친환경이동수단컨퍼런스)/⑥ 정렬 (가운데 정렬)" - }, - "7": { - "path": "//TEXTART[@Text='{searchValue}']", - "path2": null, - "searchValue": "친환경이동수단컨퍼런스", - "value": true, - "points": 2, - "category": "Boolean", - "item": "문구 (친환경이동수단컨퍼런스)/⑦ 글맵시모양 (육안확인)" - }, - "8": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "path2": null, - "searchValue": "지", - "value": { - "Height": 2800, - "Width": 2800 - }, - "tolerance": 200, - "points": 1, - "category": "TwoLineSize", - "item": "지/① 모양 (2줄)" - }, - "9": { - "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "path2": null, - "searchValue": "지", - "value": "궁서체", - "points": 1, - "category": "FontName", - "item": "지/② 글씨체 (궁서체)" - }, - "10": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "path2": null, - "searchValue": "지", - "value": "105,155,55", - "points": 2, - "category": "Color", - "item": "지/③ 면색 : 색상(RGB:105,155,55)" - }, - "11": { - "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "path2": null, - "searchValue": "지", - "value": "850", - "points": 2, - "category": "SingleAnswer", - "item": "지/④ 본문과의 간격 : 3.0mm" - }, - "12": { - "path": "//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대}')]/parent::TEXT/@CharShape]", - "path2": null, - "searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대", - "value": true, - "points": 2, - "category": "글꼴 속성", - "item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/① 기울임" - } - } -} \ No newline at end of file diff --git a/DIW_2504A.json b/DIW_2504_2.json similarity index 100% rename from DIW_2504A.json rename to DIW_2504_2.json diff --git a/DIW_2503A.json b/DIW_2504_3.json similarity index 72% rename from DIW_2503A.json rename to DIW_2504_3.json index 1984d29..2d390c7 100644 --- a/DIW_2503A.json +++ b/DIW_2504_3.json @@ -39,164 +39,164 @@ "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", - "value": "견고딕", + "searchValue": "한옥마을사생대회안내", + "value": "궁서", "points": 1, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/① 글씨체 (견고딕)" + "item": "문구 (한옥마을사생대회안내)/① 글씨체 (궁서)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", - "value": "9920305", + "searchValue": "한옥마을사생대회안내", + "value": "6072932", "points": 2, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/② 채우기 : 색상(RGB:49,95,151)" + "item": "문구 (한옥마을사생대회안내)/② 채우기 : 색상(RGB:100,170,92)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", + "searchValue": "한옥마을사생대회안내", "value": 28346, "points": 2, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/③ 크기-너비 (100mm)" + "item": "문구 (한옥마을사생대회안내)/③ 크기-너비 (100mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", + "searchValue": "한옥마을사생대회안내", "value": 5669, "points": 2, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/④ 크기-높이 (20mm)" + "item": "문구 (한옥마을사생대회안내)/④ 크기-높이 (20mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", + "searchValue": "한옥마을사생대회안내", "value": "true", "points": 2, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/⑤ 위치 (글자처럼 취급)" + "item": "문구 (한옥마을사생대회안내)/⑤ 위치 (글자처럼 취급)" }, "6": { "path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", + "searchValue": "한옥마을사생대회안내", "value": "Center", "points": 2, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/⑥ 정렬 (가운데 정렬)" + "item": "문구 (한옥마을사생대회안내)/⑥ 정렬 (가운데 정렬)" }, "7": { "path": "boolean(//TEXTART[@Text='{searchValue}'])", "path2": null, - "searchValue": "친환경이동수단컨퍼런스", + "searchValue": "한옥마을사생대회안내", "value": true, "points": 2, "category": "글맵시", - "item": "문구 (친환경이동수단컨퍼런스)/⑦ 글맵시모양 (육안확인)" + "item": "문구 (한옥마을사생대회안내)/⑦ 글맵시모양 (육안확인)" }, "8": { - "path": "boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])", + "path": "boolean(//RECTANGLE[.//CHAR[text()='자']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])", "path2": null, "searchValue": null, "value": true, "points": 1, "category": "문단첫글자장식", - "item": "지/① 모양 (2줄)" + "item": "자/① 모양 (2줄)" }, "9": { - "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name", + "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='자']]/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, "searchValue": null, - "value": "궁서체", + "value": "맑은 고딕", "points": 1, "category": "문단첫글자장식", - "item": "지/② 글씨체 (궁서체)" + "item": "자/② 글씨체 (맑은 고딕)" }, "10": { - "path": "//RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor", + "path": "//RECTANGLE[.//CHAR[text()='자']]//WINDOWBRUSH/@FaceColor", "path2": null, "searchValue": null, - "value": "3644265", + "value": "9537333", "points": 2, "category": "문단첫글자장식", - "item": "지/③ 면색 : 색상(RGB:105,155,55)" + "item": "자/③ 면색 : 색상(RGB:105,155,55)" }, "11": { - "path": "//RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right", + "path": "//RECTANGLE[.//CHAR[text()='자']]//OUTSIDEMARGIN/@Right", "path2": null, "searchValue": null, "value": "850", "points": 2, "category": "문단첫글자장식", - "item": "지/④ 본문과의 간격 : 3.0mm" + "item": "자/④ 본문과의 간격 : 3.0mm" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])", + "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])", "path2": null, - "searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대", + "searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회", "value": true, "points": 2, "category": "글꼴 속성", - "item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/① 기울임" + "item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/① 기울임" }, "13": { "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][UNDERLINE])", "path2": null, - "searchValue": "전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대", + "searchValue": "한옥에 대한 체험과 교육이 준비된 사생대회", "value": true, "points": 2, "category": "글꼴 속성", - "item": "문구 (전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대)/② 밑줄" + "item": "문구 (한옥에 대한 체험과 교육이 준비된 사생대회)/② 밑줄" }, "14": { - "path": "count(//CHAR[contains(text(),'☆')]) + count(//CHAR[contains(text(),'※')])", - "path2": "string-length(//CHAR[contains(text(),'☆')]) - string-length(translate(//CHAR[contains(text(),'☆')], '☆', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", + "path": "count(//CHAR[contains(text(),'■')]) + count(//CHAR[contains(text(),'※')])", + "path2": "string-length(//CHAR[contains(text(),'■')]) - string-length(translate(//CHAR[contains(text(),'■')], '■', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))", "searchValue": null, "value": 3, "points": 3, "category": "특수문자", - "item": "① ☆, ② ☆, ③ ※" + "item": "① ■, ② ■, ③ ※" }, "15": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "☆ 행사안내 ☆", - "value": "궁서", + "searchValue": "■ 행사안내 ■", + "value": "돋움", "points": 1, "category": "글꼴 속성", - "item": "문구 (☆ 행사안내 ☆)/① 글씨체 (궁서)" + "item": "문구 (■ 행사안내 ■)/① 글씨체 (돋움)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", "path2": null, - "searchValue": "☆ 행사안내 ☆", + "searchValue": "■ 행사안내 ■", "value": "Center", "points": 1, "category": "글꼴 속성", - "item": "문구 (☆ 행사안내 ☆)/② 정렬 (가운데 정렬)" + "item": "문구 (■ 행사안내 ■)/② 정렬 (가운데 정렬)" }, "17": { - "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])", + "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])", "path2": null, - "searchValue": "2025. 03. 27.(목) 24:00까지", + "searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수", "value": true, "points": 1, "category": "글꼴 속성", - "item": "문구 (2025. 03. 27.(목) 24:00까지)/① 진하게" + "item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/① 진하게" }, "18": { "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])", "path2": null, - "searchValue": "2025. 03. 27.(목) 24:00까지", + "searchValue": "홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수", "value": true, "points": 1, "category": "글꼴 속성", - "item": "문구 (2025. 03. 27.(목) 24:00까지)/② 밑줄" + "item": "문구 (홈페이지(http://www.ihd.or.kr)에서 개별 신청, 선착순 접수)/② 밑줄" }, "19": { "path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)", @@ -228,38 +228,38 @@ "22": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "한국육상운송협회", - "value": "굴림체", + "searchValue": "한국고건축협회", + "value": "궁서", "points": 1, "category": "글꼴 속성", - "item": "문구 (한국육상운송협회)/① 글씨체 (굴림체)" + "item": "문구 (한국고건축협회)/① 글씨체 (궁서)" }, "23": { "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", "path2": null, - "searchValue": "한국육상운송협회", + "searchValue": "한국고건축협회", "value": 2400, "points": 1, "category": "글꼴 속성", - "item": "문구 (한국육상운송협회)/② 크기 (24pt)" + "item": "문구 (한국고건축협회)/② 크기 (24pt)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", "path2": null, - "searchValue": "한국육상운송협회", + "searchValue": "한국고건축협회", "value": "Center", "points": 1, "category": "글꼴 속성", - "item": "문구 (한국육상운송협회)/③ 정렬 (가운데 정렬)" + "item": "문구 (한국고건축협회)/③ 정렬 (가운데 정렬)" }, "25": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, "searchValue": "DIAT", - "value": "돋움", + "value": "굴림", "points": 1, "category": "머리말", - "item": "문구 (DIAT)/① 글꼴 (돋움)" + "item": "문구 (DIAT)/① 글꼴 (굴림)" }, "26": { "path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", @@ -283,10 +283,10 @@ "path": "//PAGENUM/@FormatType", "path2": null, "searchValue": null, - "value": "LatinCapital", + "value": "HangulSyllable", "points": 2, "category": "쪽번호", - "item": "① 쪽 번호 매기기 (A,B,C 순으로)" + "item": "① 쪽 번호 매기기 (가,나,다 순으로)" }, "29": { "path": "//PAGENUM/@Pos", @@ -338,92 +338,92 @@ "4": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": 19842, "points": 2, "category": "글상자", - "item": "문구 (친환경 이동수단)/① 크기-너비 (70mm)" + "item": "문구 (한옥의 형태와 구조)/① 크기-너비 (70mm)" }, "5": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": 3401, "points": 2, "category": "글상자", - "item": "문구 (친환경 이동수단)/② 크기-높이 (12mm)" + "item": "문구 (한옥의 형태와 구조)/② 크기-높이 (12mm)" }, "6": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": "DoubleSlim", "points": 2, "category": "글상자", - "item": "문구 (친환경 이동수단)/③ 테두리 (이중실선(1.00mm))" + "item": "문구 (한옥의 형태와 구조)/③ 테두리 (이중실선(1.00mm))" }, "7": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio", "path2": null, - "searchValue": "친환경 이동수단", - "value": 50, + "searchValue": "한옥의 형태와 구조", + "value": 20, "points": 2, "category": "글상자", - "item": "문구 (친환경 이동수단)/④ 글상자 모서리 (반원)" + "item": "문구 (한옥의 형태와 구조)/④ 글상자 모서리 (반원)" }, "8": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor", "path2": null, - "searchValue": "친환경 이동수단", - "value": "9537333", + "searchValue": "한옥의 형태와 구조", + "value": "12704995", "points": 2, "category": "글상자", - "item": "문구 (친환경 이동수단)/⑤ 채우기 : 색상(RGB:53,135,145)" + "item": "문구 (한옥의 형태와 구조)/⑤ 채우기 : 색상(RGB:53,135,145)" }, "9": { "path": "//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": "true", "points": 1, "category": "글상자", - "item": "문구 (친환경 이동수단)/⑥ 글상자 위치 (글자처럼 취급)" + "item": "문구 (한옥의 형태와 구조)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": "Center", "points": 1, "category": "글상자", - "item": "문구 (친환경 이동수단)/⑦ 글상자 정렬 (가운데 정렬)" + "item": "문구 (한옥의 형태와 구조)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "친환경 이동수단", - "value": "맑은 고딕", + "searchValue": "한옥의 형태와 구조", + "value": "한양견고딕", "points": 1, "category": "글상자", - "item": "문구 (친환경 이동수단)/⑧ 글씨체 (맑은 고딕)" + "item": "문구 (한옥의 형태와 구조)/⑧ 글씨체 (견고딕)" }, "12": { - "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2400')", + "path": "boolean(//CHARSHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='2000')", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": true, "points": 1, "category": "글상자", - "item": "문구 (친환경 이동수단)/⑨ 글씨크기 (24pt)" + "item": "문구 (한옥의 형태와 구조)/⑨ 글씨크기 (20pt)" }, "13": { "path": "//PARASHAPE[@Id=//RECTANGLE//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align", "path2": null, - "searchValue": "친환경 이동수단", + "searchValue": "한옥의 형태와 구조", "value": "Center", "points": 1, "category": "글상자", - "item": "문구 (친환경 이동수단)/⑩ 정렬 (가운데 정렬)" + "item": "문구 (한옥의 형태와 구조)/⑩ 정렬 (가운데 정렬)" }, "14": { "path": "boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])", @@ -473,173 +473,173 @@ "19": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "1. 친환경 자동차", - "value": "궁서", + "searchValue": "1. 한옥", + "value": "돋움", "points": 1, "category": "속성", - "item": "문구① (1. 친환경 자동차)/① 글씨체 (궁서)" + "item": "문구① (1. 한옥)/① 글씨체 (돋움)" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", "path2": null, - "searchValue": "1. 친환경 자동차", + "searchValue": "1. 한옥", "value": 1200, "points": 1, "category": "속성", - "item": "문구① (1. 친환경 자동차)/② 크기 (12pt)" + "item": "문구① (1. 한옥)/② 크기 (12pt)" }, "21": { "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", "path2": null, - "searchValue": "1. 친환경 자동차", + "searchValue": "1. 한옥", "value": true, "points": 1, "category": "속성", - "item": "문구① (1. 친환경 자동차)/③ 진하게" + "item": "문구① (1. 한옥)/③ 진하게" }, "22": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "2. 친환경 자동차 보급 추이", - "value": "궁서", + "searchValue": "2. 한옥의 형태와 구조", + "value": "돋움", "points": 1, "category": "속성", - "item": "문구② (2. 친환경 자동차 보급 추이)/① 글씨체 (궁서)" + "item": "문구② (2. 한옥의 형태와 구조)/① 글씨체 (돋움)" }, "23": { "path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height", "path2": null, - "searchValue": "2. 친환경 자동차 보급 추이", + "searchValue": "2. 한옥의 형태와 구조", "value": 1200, "points": 1, "category": "속성", - "item": "문구② (2. 친환경 자동차 보급 추이)/② 크기 (12pt)" + "item": "문구② (2. 한옥의 형태와 구조)/② 크기 (12pt)" }, "24": { "path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)", "path2": null, - "searchValue": "2. 친환경 자동차 보급 추이", + "searchValue": "2. 한옥의 형태와 구조", "value": true, "points": 1, "category": "속성", - "item": "문구② (2. 친환경 자동차 보급 추이)/③ 진하게" + "item": "문구② (2. 한옥의 형태와 구조)/③ 진하게" }, "25": { - "path": "boolean(//CHAR[contains(text(),'자동차 탄소발자국')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", - "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('자동차 탄소발자국') + 1) = '자동차 탄소발자국']/following-sibling::FOOTNOTE/descendant::CHAR)", + "path": "boolean(//CHAR[contains(text(),'기초')]/ancestor::TEXT/FOOTNOTE/descendant::CHAR)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('기초') + 1) = '기초']/following-sibling::FOOTNOTE/descendant::CHAR)", "searchValue": null, "value": true, "points": 2, "category": "각주", - "item": "문구 (자동차 탄소발자국)/① 각주 설정 및 문구 입력" + "item": "문구 (기초)/① 각주 설정 및 문구 입력" }, "26": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량", - "value": "굴림", + "searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량", + "value": "한양중고딕", "points": 1, "category": "각주", - "item": "문구 (자동차 탄소발자국)/② 글씨체 (굴림)" + "item": "문구 (기초)/② 글씨체 (한양중고딕)" }, "27": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", "path2": null, - "searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량", + "searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량", "value": 900, "points": 1, "category": "각주", - "item": "문구 (자동차 탄소발자국)/③ 크기 (9pt)" + "item": "문구 (기초)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", "path2": null, - "searchValue": "자동차 생애에서 배출하는 이산화탄소의 총량", - "value": "CircledHangulSyllable", + "searchValue": "기둥의 침하를 방지하기 위한 지반의 보강 및 개량", + "value": "CircledDigit", "points": 2, "category": "각주", - "item": "문구 (자동차 탄소발자국)/④ 각주 번호모양" + "item": "문구 (기초)/④ 각주 번호모양" }, "29": { - "path": "boolean(//CHAR[contains(text(),'Hybrid')])", + "path": "boolean(//CHAR[contains(text(),'cornerstone')])", "path2": null, "searchValue": null, "value": true, "points": 3, "category": "영단어", - "item": "Hybrid/영단어 미입력, 대소문자/오타 시 전체 감점" + "item": "cornerstone/영단어 미입력, 대소문자/오타 시 전체 감점" }, "30": { - "path": "(count(//CHAR[contains(text(),'전지')][contains(text(),'電池')])+count(//CHAR[contains(text(),'유해')][contains(text(),'有害')])+count(//CHAR[contains(text(),'내연')][contains(text(),'內燃')])+count(//CHAR[contains(text(),'이륜차')][contains(text(),'二輪車')])+count(//CHAR[contains(text(),'기타')][contains(text(),'其他')]))*2", + "path": "(count(//CHAR[contains(text(),'한옥')][contains(text(),'韓屋')])+count(//CHAR[contains(text(),'사계절')][contains(text(),'四季節')])+count(//CHAR[contains(text(),'거주')][contains(text(),'居住')])+count(//CHAR[contains(text(),'구조')][contains(text(),'構造')])+count(//CHAR[contains(text(),'골격')][contains(text(),'骨格')]))*2", "path2": null, "searchValue": null, "value": 10, "points": 10, "category": "한자", - "item": "① 전지(電池), ② 유해(有害), ③내연(內燃), ④ 이륜차(二輪車), ⑤ 기타(其他)" + "item": "① 한옥(韓屋), ② 사계절(四季節), ③거주(居住), ④ 구조(構造), ⑤ 골격(骨格)" }, "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'터를독립')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'철의추운')])", "path2": null, "searchValue": null, "value": true, "points": 3, "category": "편집", - "item": "문구 (…내장된 전기모터이 독립적으로 또는 병행해서…)/\"이\" → \"를\" 글자바꿈" + "item": "문구 (…더운 날씨와 겨울철이 추운…)/\"이\" → \"의\" 글자바꿈" }, "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'면서환경')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'돌과마루')])", "path2": null, "searchValue": null, "value": true, "points": 3, "category": "편집", - "item": "문구 (…주행하는 방식으로 환경에 주행하면서 유해(有害)한 물질을…)/\"환경에\" / \"주행하면서\" 순서바꿈" + "item": "문구 (…대비해 마루를 온돌과 갖고…)/\"마루를\" / \"온돌과\" 순서바꿈" }, "33": { "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, - "searchValue": "자동차 증가 추이", - "value": "돋움", + "searchValue": "교육기관별 참가인원", + "value": "궁서", "points": 1, "category": "표", - "item": "제목 문구 (자동차 증가 추이)/① 글씨체 (돋움)" + "item": "제목 문구 (교육기관별 참가인원)/① 글씨체 (궁서)" }, "34": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", "path2": null, - "searchValue": "자동차 증가 추이", + "searchValue": "교육기관별 참가인원", "value": 1200, "points": 1, "category": "표", - "item": "제목 문구 (자동차 증가 추이)/② 크기 (12pt)" + "item": "제목 문구 (교육기관별 참가인원)/② 크기 (12pt)" }, "35": { "path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)", "path2": null, - "searchValue": "자동차 증가 추이", + "searchValue": "교육기관별 참가인원", "value": true, "points": 1, "category": "표", - "item": "제목 문구 (자동차 증가 추이)/③ 진하게" + "item": "제목 문구 (교육기관별 참가인원)/③ 진하게" }, "36": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", "path2": null, - "searchValue": "자동차 증가 추이", + "searchValue": "교육기관별 참가인원", "value": "Center", "points": 1, "category": "표", - "item": "제목 문구 (자동차 증가 추이)/④ 정렬 (가운데 정렬)" + "item": "제목 문구 (교육기관별 참가인원)/④ 정렬 (가운데 정렬)" }, "37": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr='2']/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", "searchValue": null, - "value": "7034570", + "value": "7629528", "points": 2, "category": "표", - "item": "위쪽 제목 셀/① 색상(RGB:202,86,107)" + "item": "위쪽 제목 셀/① 색상(RGB:216,106,116)" }, "38": { "path": "boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)", @@ -672,10 +672,10 @@ "path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", "path2": null, "searchValue": null, - "value": "궁서체", + "value": "굴림", "points": 1, "category": "표", - "item": "글자모양/① 글씨체 (궁서체)" + "item": "글자모양/① 글씨체 (굴림)" }, "42": { "path": "//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height", @@ -696,16 +696,16 @@ "item": "글자모양/③ 정렬 (가운데 정렬)" }, "44": { - "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '290'] and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '190'])", + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG') and //TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]])", "path2": null, "searchValue": null, "value": true, "points": 4, "category": "표", - "item": "블록계산식/합계" + "item": "블록계산식/평균" }, "45": { - "path": "boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])", + "path": "boolean(//c:lineChart/c:grouping/@val='standard')", "path2": null, "searchValue": null, "value": true, @@ -741,7 +741,7 @@ "item": "④ 크기-높이 (90mm)" }, "49": { - "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])", + "path": "//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='평균'])", "path2": null, "searchValue": null, "value": true, @@ -752,29 +752,29 @@ "50": { "path": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", "path2": null, - "searchValue": "자동차 증가 추이", - "value": "바탕체", + "searchValue": "교육기관별 참가인원", + "value": "굴림체", "points": 1, "category": "chart_xml", - "item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/① 글씨체 (바탕체)" + "item": "제목 문구 (교육기관별 참가인원)/① 글씨체 (굴림체)" }, "51": { "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", "path2": null, - "searchValue": "자동차 증가 추이", + "searchValue": "교육기관별 참가인원", "value": 1300, "points": 1, "category": "chart_xml", - "item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/② 크기 (13pt)" + "item": "제목 문구 (교육기관별 참가인원)/② 크기 (13pt)" }, "52": { "path": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@b", "path2": null, - "searchValue": "자동차 증가 추이", + "searchValue": "교육기관별 참가인원", "value": 1, "points": 1, "category": "chart_xml", - "item": "제목 문구 (자동차 증가 추이) : 제목 문구 불일치는 오타감점에서 반영/③ 진하게" + "item": "제목 문구 (교육기관별 참가인원)/③ 진하게" }, "53": { "path": "//c:catAx//a:ea/@typeface", diff --git a/copy_all_hwp.py b/copy_all_hwp.py index aff76b1..ee44041 100644 --- a/copy_all_hwp.py +++ b/copy_all_hwp.py @@ -5,7 +5,7 @@ import unicodedata def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, target_root_d, target_root_e): for root, dirs, files in os.walk(source_root): for dir_name in dirs: - if dir_name == 'DIW': # DIC 디렉토리 탐색 + if dir_name.lower() == 'diw': # DIC 디렉토리 탐색 parent_dir = os.path.basename(os.path.dirname(os.path.join(root, dir_name))) target_root = None parent_dir = unicodedata.normalize('NFC', parent_dir) @@ -24,7 +24,8 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t if target_root: source_dic_path = os.path.join(root, dir_name) - target_dic_path = os.path.join(target_root, dir_name) + target_dir_name = dir_name.upper() + target_dic_path = os.path.join(target_root, target_dir_name) # DIC 하위 디렉토리와 파일 복사 shutil.copytree(source_dic_path, target_dic_path, dirs_exist_ok=True) @@ -34,11 +35,15 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.") # 사용법 -source_directory = r"C:\Users\dra\project\data\제2503회 정기\답안파일\제2503회 디지털정보활용능력 정기검정 답안파일" # 원본 디렉토리 경로 -target_directory_a = r".\input\A" # '1교시'의 타겟 경로 -target_directory_b = r".\input\B" # '2교시'의 타겟 경로 -target_directory_c = r".\input\C" # '3교시'의 타겟 경로 -target_directory_d = r".\input\D" # '4교시'의 타겟 경로 -target_directory_e = r".\input\E" # '5교시'의 타겟 경로 +# exam_round = "2504_2" +exam_round = "2504_3" +# source_directory = r"C:\Users\dra\project\data\제2504회 수시2(제주)\답안파일" # 원본 디렉토리 경로 +source_directory = r"C:\Users\dra\project\data\제2504회 수시3(읍내)\답안파일" # 원본 디렉토리3경로 + +target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로 +target_directory_b = f".\\input\\{exam_round}\\B" # '2교시'의 타겟 경로 +target_directory_c = f".\\input\\{exam_round}\\C" # '3교시'의 타겟 경로 +target_directory_d = f".\\input\\{exam_round}\\D" # '4교시'의 타겟 경로 +target_directory_e = f".\\input\\{exam_round}\\E" # '5교시'의 타겟 경로 copy_dic_subdirs(source_directory, target_directory_a, target_directory_b, target_directory_c, target_directory_d, target_directory_e) diff --git a/diwScoring.py b/diwScoring.py index fc24d74..ded6520 100644 --- a/diwScoring.py +++ b/diwScoring.py @@ -560,11 +560,11 @@ class XMLScorer: def main(): # 시험회차 및 유형 - exam_round = '2504' + exam_round = '2504_3' exam_types = [ - 'A', - # 'B', - # 'C', + # 'A', + 'B', + 'C', ] test_mode = False # test_mode = True @@ -573,17 +573,23 @@ def main(): for exam_type in exam_types: # JSON 채점기준표 파일 (예시:DIW_2503A.json) - scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json' + scoring_criteria_path = f'./DIW_{exam_round}.json' + # scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json' # xml(hml)파일 디렉토리 경로 (예시:./output/A/DIW) - xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}' + # xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}' + + # 회차가 여러개인 경우 + xml_directory = f'./output/{exam_round}/{exam_type}/{"TEST" if test_mode else "DIW"}' + # 오탈자 체크를 위한 정답 파일 경로 (예시:./output/A/DIW/DIW_2503A.hml) - correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml' + # correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml' + correct_answer_file = f'./output/{exam_round}/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml' # 엑셀 파일명 (비어있으면 자동생성) (예시:241001_DIW_2503A_채점결과.xlsx) timestamp = datetime.now().strftime("%y%m%d") - output_path = f'{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}.xlsx' + output_path = f'{timestamp}_DIW_{exam_round}회_{exam_type}형_{"TEST" if test_mode else "채점결과"}.xlsx' # 채점 클래스 초기화 scorer = XMLScorer(scoring_criteria_path) diff --git a/hwp_conversion.log b/hwp_conversion.log index 4574508..2ad69f1 100644 --- a/hwp_conversion.log +++ b/hwp_conversion.log @@ -13614,3 +13614,248 @@ 2025-04-24 16:29:39,878 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\B\DIW 2025-04-24 16:29:40,379 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\C\DIW 2025-04-24 16:29:41,857 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\C\DIW +2025-04-28 15:06:43,432 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\A\DIW +2025-04-28 15:06:48,251 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\A\DIW +2025-04-28 15:06:48,752 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\B\DIW +2025-04-28 15:06:59,638 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:07:00,156 - INFO - 변환 성공: 워드(한글)-002040-이현재.hwpx -> 워드(한글)-002040-이현재.hml +2025-04-28 15:07:00,535 - INFO - 변환 성공: 워드(한글)-002041-김태진.hwpx -> 워드(한글)-002041-김태진.hml +2025-04-28 15:07:00,868 - INFO - 변환 성공: 워드(한글)-002042-노현준.hwpx -> 워드(한글)-002042-노현준.hml +2025-04-28 15:07:01,112 - INFO - 변환 성공: 워드(한글)-002043-김성관.hwpx -> 워드(한글)-002043-김성관.hml +2025-04-28 15:07:01,364 - INFO - 변환 성공: 워드(한글)-002044-안승재.hwpx -> 워드(한글)-002044-안승재.hml +2025-04-28 15:07:01,739 - INFO - 변환 성공: 워드(한글)-002045-신수용.hwpx -> 워드(한글)-002045-신수용.hml +2025-04-28 15:07:02,137 - INFO - 변환 성공: 워드(한글)-002046-홍지형.hwpx -> 워드(한글)-002046-홍지형.hml +2025-04-28 15:07:02,447 - INFO - 변환 성공: 워드(한글)-002047-이지원.hwpx -> 워드(한글)-002047-이지원.hml +2025-04-28 15:07:02,848 - INFO - 변환 성공: 워드(한글)-002048-김도경.hwpx -> 워드(한글)-002048-김도경.hml +2025-04-28 15:07:03,322 - INFO - 변환 성공: 워드(한글)-002049-배제우.hwpx -> 워드(한글)-002049-배제우.hml +2025-04-28 15:07:03,756 - INFO - 변환 성공: 워드(한글)-002051-김우빈.hwpx -> 워드(한글)-002051-김우빈.hml +2025-04-28 15:07:04,406 - INFO - 변환 성공: 워드(한글)-002052-서예준.hwpx -> 워드(한글)-002052-서예준.hml +2025-04-28 15:07:04,854 - INFO - 변환 성공: 워드(한글)-002053-손성민.hwpx -> 워드(한글)-002053-손성민.hml +2025-04-28 15:07:05,216 - INFO - 변환 성공: 워드(한글)-002054-문준오.hwpx -> 워드(한글)-002054-문준오.hml +2025-04-28 15:07:05,565 - INFO - 변환 성공: 워드(한글)-002055-장현진.hwpx -> 워드(한글)-002055-장현진.hml +2025-04-28 15:07:06,019 - INFO - 변환 성공: 워드(한글)-002056-이준상.hwpx -> 워드(한글)-002056-이준상.hml +2025-04-28 15:07:06,212 - INFO - 변환 성공: 워드(한글)-002057-김주호.hwpx -> 워드(한글)-002057-김주호.hml +2025-04-28 15:07:06,464 - INFO - 변환 성공: 워드(한글)-002058-이지오.hwpx -> 워드(한글)-002058-이지오.hml +2025-04-28 15:07:06,819 - INFO - 변환 성공: 워드(한글)-002059-오한결.hwpx -> 워드(한글)-002059-오한결.hml +2025-04-28 15:07:07,175 - INFO - 변환 성공: 워드(한글)-002060-정민기.hwpx -> 워드(한글)-002060-정민기.hml +2025-04-28 15:07:07,632 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\B\DIW +2025-04-28 15:07:08,133 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\C\DIW +2025-04-28 15:07:11,296 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:07:11,711 - INFO - 변환 성공: 워드(한글)-002062-여승기.hwpx -> 워드(한글)-002062-여승기.hml +2025-04-28 15:07:11,954 - INFO - 변환 성공: 워드(한글)-002063-이지후.hwpx -> 워드(한글)-002063-이지후.hml +2025-04-28 15:07:12,237 - INFO - 변환 성공: 워드(한글)-002064-황태영.hwpx -> 워드(한글)-002064-황태영.hml +2025-04-28 15:07:12,575 - INFO - 변환 성공: 워드(한글)-002065-김우진.hwpx -> 워드(한글)-002065-김우진.hml +2025-04-28 15:07:12,928 - INFO - 변환 성공: 워드(한글)-002066-서종우.hwpx -> 워드(한글)-002066-서종우.hml +2025-04-28 15:07:13,263 - INFO - 변환 성공: 워드(한글)-002066-윤건우.hwpx -> 워드(한글)-002066-윤건우.hml +2025-04-28 15:07:13,603 - INFO - 변환 성공: 워드(한글)-002067-심찬영.hwpx -> 워드(한글)-002067-심찬영.hml +2025-04-28 15:07:13,955 - INFO - 변환 성공: 워드(한글)-002068-조우준.hwpx -> 워드(한글)-002068-조우준.hml +2025-04-28 15:07:14,393 - INFO - 변환 성공: 워드(한글)-002069-서승표.hwpx -> 워드(한글)-002069-서승표.hml +2025-04-28 15:07:14,723 - INFO - 변환 성공: 워드(한글)-002070-김민석.hwpx -> 워드(한글)-002070-김민석.hml +2025-04-28 15:07:15,259 - INFO - 변환 성공: 워드(한글)-002071-곽준우.hwpx -> 워드(한글)-002071-곽준우.hml +2025-04-28 15:07:15,771 - INFO - 변환 성공: 워드(한글)-002072-김동준.hwpx -> 워드(한글)-002072-김동준.hml +2025-04-28 15:07:16,206 - INFO - 변환 성공: 워드(한글)-002073-김용준.hwpx -> 워드(한글)-002073-김용준.hml +2025-04-28 15:07:16,416 - INFO - 변환 성공: 워드(한글)-002074-박상우.hwpx -> 워드(한글)-002074-박상우.hml +2025-04-28 15:07:16,679 - INFO - 변환 성공: 워드(한글)-002075-박시우.hwpx -> 워드(한글)-002075-박시우.hml +2025-04-28 15:07:17,135 - INFO - 변환 성공: 워드(한글)-002076-송원석.hwpx -> 워드(한글)-002076-송원석.hml +2025-04-28 15:07:17,393 - INFO - 변환 성공: 워드(한글)-002078-강민호.hwpx -> 워드(한글)-002078-강민호.hml +2025-04-28 15:07:17,733 - INFO - 변환 성공: 워드(한글)-002079-권재현.hwpx -> 워드(한글)-002079-권재현.hml +2025-04-28 15:07:18,091 - INFO - 변환 성공: 워드(한글)-002080-김정현.hwpx -> 워드(한글)-002080-김정현.hml +2025-04-28 15:07:18,368 - INFO - 변환 성공: 워드(한글)-002081-김종윤.hwpx -> 워드(한글)-002081-김종윤.hml +2025-04-28 15:07:18,725 - INFO - 변환 성공: 워드(한글)-002082-오규석.hwpx -> 워드(한글)-002082-오규석.hml +2025-04-28 15:07:19,234 - INFO - 변환 성공: 워드(한글)-002083-이승준.hwpx -> 워드(한글)-002083-이승준.hml +2025-04-28 15:07:19,565 - INFO - 변환 성공: 워드(한글)-002084-이현우.hwex.hwpx -> 워드(한글)-002084-이현우.hwex.hml +2025-04-28 15:07:19,835 - INFO - 변환 성공: 워드(한글)-002085-정연욱.hwpx -> 워드(한글)-002085-정연욱.hml +2025-04-28 15:07:20,109 - INFO - 변환 성공: 워드(한글)-002086-정영웅hwpx.hwpx -> 워드(한글)-002086-정영웅hwpx.hml +2025-04-28 15:07:20,407 - INFO - 변환 성공: 워드(한글)-002087-구승민.hwpx -> 워드(한글)-002087-구승민.hml +2025-04-28 15:07:20,662 - INFO - 변환 성공: 워드(한글)-002088-김선우.hwpx -> 워드(한글)-002088-김선우.hml +2025-04-28 15:07:20,933 - INFO - 변환 성공: 워드(한글)-002089-임지훈.hwpx -> 워드(한글)-002089-임지훈.hml +2025-04-28 15:07:21,181 - INFO - 변환 성공: 워드(한글)-002090-자파르.hwpx -> 워드(한글)-002090-자파르.hml +2025-04-28 15:07:21,419 - INFO - 변환 성공: 워드(한글)-002091-차현준.hwpx -> 워드(한글)-002091-차현준.hml +2025-04-28 15:07:21,791 - INFO - 변환 성공: 워드(한글)-002092-최금환.hwpx -> 워드(한글)-002092-최금환.hml +2025-04-28 15:07:22,047 - INFO - 변환 성공: 워드(한글)-002093-최성현.hwpx -> 워드(한글)-002093-최성현.hml +2025-04-28 15:07:22,289 - INFO - 변환 성공: 워드(한글)-002094-최찬윤.hwpx -> 워드(한글)-002094-최찬윤.hml +2025-04-28 15:07:22,479 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\C\DIW +2025-04-28 15:07:22,980 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\D\DIW +2025-04-28 15:07:24,458 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\D\DIW +2025-04-28 15:07:24,959 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\E\DIW +2025-04-28 15:07:26,411 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\E\DIW +2025-04-28 15:15:43,899 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\A\DIW +2025-04-28 15:15:45,624 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\A\DIW +2025-04-28 15:15:46,126 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\B\DIW +2025-04-28 15:15:50,869 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:15:51,335 - INFO - 변환 성공: 워드(한글)-002040-이현재.hwpx -> 워드(한글)-002040-이현재.hml +2025-04-28 15:15:51,638 - INFO - 변환 성공: 워드(한글)-002041-김태진.hwpx -> 워드(한글)-002041-김태진.hml +2025-04-28 15:15:51,932 - INFO - 변환 성공: 워드(한글)-002042-노현준.hwpx -> 워드(한글)-002042-노현준.hml +2025-04-28 15:15:52,153 - INFO - 변환 성공: 워드(한글)-002043-김성관.hwpx -> 워드(한글)-002043-김성관.hml +2025-04-28 15:15:52,383 - INFO - 변환 성공: 워드(한글)-002044-안승재.hwpx -> 워드(한글)-002044-안승재.hml +2025-04-28 15:15:52,766 - INFO - 변환 성공: 워드(한글)-002045-신수용.hwpx -> 워드(한글)-002045-신수용.hml +2025-04-28 15:15:53,152 - INFO - 변환 성공: 워드(한글)-002046-홍지형.hwpx -> 워드(한글)-002046-홍지형.hml +2025-04-28 15:15:53,424 - INFO - 변환 성공: 워드(한글)-002047-이지원.hwpx -> 워드(한글)-002047-이지원.hml +2025-04-28 15:15:53,828 - INFO - 변환 성공: 워드(한글)-002048-김도경.hwpx -> 워드(한글)-002048-김도경.hml +2025-04-28 15:15:54,269 - INFO - 변환 성공: 워드(한글)-002049-배제우.hwpx -> 워드(한글)-002049-배제우.hml +2025-04-28 15:15:54,680 - INFO - 변환 성공: 워드(한글)-002051-김우빈.hwpx -> 워드(한글)-002051-김우빈.hml +2025-04-28 15:15:55,276 - INFO - 변환 성공: 워드(한글)-002052-서예준.hwpx -> 워드(한글)-002052-서예준.hml +2025-04-28 15:15:55,732 - INFO - 변환 성공: 워드(한글)-002053-손성민.hwpx -> 워드(한글)-002053-손성민.hml +2025-04-28 15:15:56,102 - INFO - 변환 성공: 워드(한글)-002054-문준오.hwpx -> 워드(한글)-002054-문준오.hml +2025-04-28 15:15:56,479 - INFO - 변환 성공: 워드(한글)-002055-장현진.hwpx -> 워드(한글)-002055-장현진.hml +2025-04-28 15:15:56,893 - INFO - 변환 성공: 워드(한글)-002056-이준상.hwpx -> 워드(한글)-002056-이준상.hml +2025-04-28 15:15:57,089 - INFO - 변환 성공: 워드(한글)-002057-김주호.hwpx -> 워드(한글)-002057-김주호.hml +2025-04-28 15:15:57,316 - INFO - 변환 성공: 워드(한글)-002058-이지오.hwpx -> 워드(한글)-002058-이지오.hml +2025-04-28 15:15:57,691 - INFO - 변환 성공: 워드(한글)-002059-오한결.hwpx -> 워드(한글)-002059-오한결.hml +2025-04-28 15:15:58,047 - INFO - 변환 성공: 워드(한글)-002060-정민기.hwpx -> 워드(한글)-002060-정민기.hml +2025-04-28 15:15:58,453 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\B\DIW +2025-04-28 15:15:58,954 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\C\DIW +2025-04-28 15:16:02,528 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:16:02,941 - INFO - 변환 성공: 워드(한글)-002062-여승기.hwpx -> 워드(한글)-002062-여승기.hml +2025-04-28 15:16:03,168 - INFO - 변환 성공: 워드(한글)-002063-이지후.hwpx -> 워드(한글)-002063-이지후.hml +2025-04-28 15:16:03,427 - INFO - 변환 성공: 워드(한글)-002064-황태영.hwpx -> 워드(한글)-002064-황태영.hml +2025-04-28 15:16:03,755 - INFO - 변환 성공: 워드(한글)-002065-김우진.hwpx -> 워드(한글)-002065-김우진.hml +2025-04-28 15:16:04,061 - INFO - 변환 성공: 워드(한글)-002066-서종우.hwpx -> 워드(한글)-002066-서종우.hml +2025-04-28 15:16:04,395 - INFO - 변환 성공: 워드(한글)-002066-윤건우.hwpx -> 워드(한글)-002066-윤건우.hml +2025-04-28 15:16:04,731 - INFO - 변환 성공: 워드(한글)-002067-심찬영.hwpx -> 워드(한글)-002067-심찬영.hml +2025-04-28 15:16:05,061 - INFO - 변환 성공: 워드(한글)-002068-조우준.hwpx -> 워드(한글)-002068-조우준.hml +2025-04-28 15:16:05,495 - INFO - 변환 성공: 워드(한글)-002069-서승표.hwpx -> 워드(한글)-002069-서승표.hml +2025-04-28 15:16:05,801 - INFO - 변환 성공: 워드(한글)-002070-김민석.hwpx -> 워드(한글)-002070-김민석.hml +2025-04-28 15:16:06,315 - INFO - 변환 성공: 워드(한글)-002071-곽준우.hwpx -> 워드(한글)-002071-곽준우.hml +2025-04-28 15:16:06,802 - INFO - 변환 성공: 워드(한글)-002072-김동준.hwpx -> 워드(한글)-002072-김동준.hml +2025-04-28 15:16:07,128 - INFO - 변환 성공: 워드(한글)-002073-김용준.hwpx -> 워드(한글)-002073-김용준.hml +2025-04-28 15:16:07,364 - INFO - 변환 성공: 워드(한글)-002074-박상우.hwpx -> 워드(한글)-002074-박상우.hml +2025-04-28 15:16:07,579 - INFO - 변환 성공: 워드(한글)-002075-박시우.hwpx -> 워드(한글)-002075-박시우.hml +2025-04-28 15:16:08,023 - INFO - 변환 성공: 워드(한글)-002076-송원석.hwpx -> 워드(한글)-002076-송원석.hml +2025-04-28 15:16:08,220 - INFO - 변환 성공: 워드(한글)-002078-강민호.hwpx -> 워드(한글)-002078-강민호.hml +2025-04-28 15:16:08,553 - INFO - 변환 성공: 워드(한글)-002079-권재현.hwpx -> 워드(한글)-002079-권재현.hml +2025-04-28 15:16:08,900 - INFO - 변환 성공: 워드(한글)-002080-김정현.hwpx -> 워드(한글)-002080-김정현.hml +2025-04-28 15:16:09,181 - INFO - 변환 성공: 워드(한글)-002081-김종윤.hwpx -> 워드(한글)-002081-김종윤.hml +2025-04-28 15:16:09,584 - INFO - 변환 성공: 워드(한글)-002082-오규석.hwpx -> 워드(한글)-002082-오규석.hml +2025-04-28 15:16:10,077 - INFO - 변환 성공: 워드(한글)-002083-이승준.hwpx -> 워드(한글)-002083-이승준.hml +2025-04-28 15:16:10,407 - INFO - 변환 성공: 워드(한글)-002084-이현우.hwex.hwpx -> 워드(한글)-002084-이현우.hwex.hml +2025-04-28 15:16:10,652 - INFO - 변환 성공: 워드(한글)-002085-정연욱.hwpx -> 워드(한글)-002085-정연욱.hml +2025-04-28 15:16:10,891 - INFO - 변환 성공: 워드(한글)-002086-정영웅hwpx.hwpx -> 워드(한글)-002086-정영웅hwpx.hml +2025-04-28 15:16:11,211 - INFO - 변환 성공: 워드(한글)-002087-구승민.hwpx -> 워드(한글)-002087-구승민.hml +2025-04-28 15:16:11,455 - INFO - 변환 성공: 워드(한글)-002088-김선우.hwpx -> 워드(한글)-002088-김선우.hml +2025-04-28 15:16:11,727 - INFO - 변환 성공: 워드(한글)-002089-임지훈.hwpx -> 워드(한글)-002089-임지훈.hml +2025-04-28 15:16:11,961 - INFO - 변환 성공: 워드(한글)-002090-자파르.hwpx -> 워드(한글)-002090-자파르.hml +2025-04-28 15:16:12,169 - INFO - 변환 성공: 워드(한글)-002091-차현준.hwpx -> 워드(한글)-002091-차현준.hml +2025-04-28 15:16:12,455 - INFO - 변환 성공: 워드(한글)-002092-최금환.hwpx -> 워드(한글)-002092-최금환.hml +2025-04-28 15:16:12,739 - INFO - 변환 성공: 워드(한글)-002093-최성현.hwpx -> 워드(한글)-002093-최성현.hml +2025-04-28 15:16:12,981 - INFO - 변환 성공: 워드(한글)-002094-최찬윤.hwpx -> 워드(한글)-002094-최찬윤.hml +2025-04-28 15:16:13,164 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\C\DIW +2025-04-28 15:16:13,664 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\D\DIW +2025-04-28 15:16:15,197 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\D\DIW +2025-04-28 15:16:15,699 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\E\DIW +2025-04-28 15:16:17,231 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\E\DIW +2025-04-28 15:16:56,671 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\A\DIW +2025-04-28 15:16:59,697 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:17:00,240 - INFO - 변환 성공: 워드(한글)-002300-현세원.hwp -> 워드(한글)-002300-현세원.hml +2025-04-28 15:17:00,639 - INFO - 변환 성공: 워드(한글)-002302-정하윤.hwp -> 워드(한글)-002302-정하윤.hml +2025-04-28 15:17:01,007 - INFO - 변환 성공: 워드(한글)-002303-이유현.hwp -> 워드(한글)-002303-이유현.hml +2025-04-28 15:17:01,347 - INFO - 변환 성공: 워드(한글)-002377-한서준.hwp -> 워드(한글)-002377-한서준.hml +2025-04-28 15:17:01,714 - INFO - 변환 성공: 워드(한글)-002378-한서윤.hwp -> 워드(한글)-002378-한서윤.hml +2025-04-28 15:17:02,067 - INFO - 변환 성공: 워드(한글)-002283-임도현.hwpx -> 워드(한글)-002283-임도현.hml +2025-04-28 15:17:02,680 - INFO - 변환 성공: 워드(한글)-002284-김연서.hwpx -> 워드(한글)-002284-김연서.hml +2025-04-28 15:17:03,189 - INFO - 변환 성공: 워드(한글)-002285-김태희.hwpx -> 워드(한글)-002285-김태희.hml +2025-04-28 15:17:03,724 - INFO - 변환 성공: 워드(한글)-002286-문다율.hwpx -> 워드(한글)-002286-문다율.hml +2025-04-28 15:17:04,186 - INFO - 변환 성공: 워드(한글)-002287-김준결.hwpx -> 워드(한글)-002287-김준결.hml +2025-04-28 15:17:04,651 - INFO - 변환 성공: 워드(한글)-002301-박태건.hwpx -> 워드(한글)-002301-박태건.hml +2025-04-28 15:17:05,117 - INFO - 변환 성공: 워드(한글)-002344-차하랑.hwpx -> 워드(한글)-002344-차하랑.hml +2025-04-28 15:17:05,595 - INFO - 변환 성공: 워드(한글)-002345-윤서호.hwpx -> 워드(한글)-002345-윤서호.hml +2025-04-28 15:17:06,042 - INFO - 변환 성공: 워드(한글)-002346-고대현.hwpx -> 워드(한글)-002346-고대현.hml +2025-04-28 15:17:06,485 - INFO - 변환 성공: 워드(한글)-002347-이가온.hwpx -> 워드(한글)-002347-이가온.hml +2025-04-28 15:17:06,868 - INFO - 변환 성공: 워드(한글)-002348-홍하진.hwpx -> 워드(한글)-002348-홍하진.hml +2025-04-28 15:17:07,229 - INFO - 변환 성공: 워드(한글)-002349-김소영.hwpx -> 워드(한글)-002349-김소영.hml +2025-04-28 15:17:07,882 - INFO - 변환 성공: 워드(한글)-002350-오서환.hwpx -> 워드(한글)-002350-오서환.hml +2025-04-28 15:17:08,358 - INFO - 변환 성공: 워드(한글)-002351-신유성.hwpx -> 워드(한글)-002351-신유성.hml +2025-04-28 15:17:08,759 - INFO - 변환 성공: 워드(한글)-002352-강유지.hwpx -> 워드(한글)-002352-강유지.hml +2025-04-28 15:17:09,121 - INFO - 변환 성공: 워드(한글)-002353-김하율.hwpx -> 워드(한글)-002353-김하율.hml +2025-04-28 15:17:09,586 - INFO - 변환 성공: 워드(한글)-002358-고주연.hwpx -> 워드(한글)-002358-고주연.hml +2025-04-28 15:17:10,039 - INFO - 변환 성공: 워드(한글)-002359-김서빈.hwpx -> 워드(한글)-002359-김서빈.hml +2025-04-28 15:17:10,523 - INFO - 변환 성공: 워드(한글)-002360-김혁준.hwpx -> 워드(한글)-002360-김혁준.hml +2025-04-28 15:17:10,977 - INFO - 변환 성공: 워드(한글)-002361-박채린.hwpx -> 워드(한글)-002361-박채린.hml +2025-04-28 15:17:11,458 - INFO - 변환 성공: 워드(한글)-002367-이지안.hwpx -> 워드(한글)-002367-이지안.hml +2025-04-28 15:17:11,893 - INFO - 변환 성공: 워드(한글)-002368-송재원.hwpx -> 워드(한글)-002368-송재원.hml +2025-04-28 15:17:12,367 - INFO - 변환 성공: 워드(한글)-002374-강명재.hwpx -> 워드(한글)-002374-강명재.hml +2025-04-28 15:17:12,875 - INFO - 변환 성공: 워드(한글)-002379-조연수.hwpx -> 워드(한글)-002379-조연수.hml +2025-04-28 15:17:13,436 - INFO - 변환 성공: 워드(한글)-002380-양다올.hwpx -> 워드(한글)-002380-양다올.hml +2025-04-28 15:17:13,966 - INFO - 변환 성공: 워드(한글)-002384-윤효빈.hwpx -> 워드(한글)-002384-윤효빈.hml +2025-04-28 15:17:14,464 - INFO - 변환 성공: 워드(한글)-002385-권연우.hwpx -> 워드(한글)-002385-권연우.hml +2025-04-28 15:17:14,920 - INFO - 변환 성공: 워드(한글)-002386-박소현.hwpx -> 워드(한글)-002386-박소현.hml +2025-04-28 15:17:15,396 - INFO - 변환 성공: 워드(한글)-002387-조아진.hwpx -> 워드(한글)-002387-조아진.hml +2025-04-28 15:17:15,900 - INFO - 변환 성공: 워드(한글)-002388-허다인.hwpx -> 워드(한글)-002388-허다인.hml +2025-04-28 15:17:16,409 - INFO - 변환 성공: 워드(한글)-002400-차보민.hwpx -> 워드(한글)-002400-차보민.hml +2025-04-28 15:17:16,926 - INFO - 변환 성공: 워드(한글)-002401-선시우.hwpx -> 워드(한글)-002401-선시우.hml +2025-04-28 15:17:17,394 - INFO - 변환 성공: 워드(한글)-002402-오지율.hwpx -> 워드(한글)-002402-오지율.hml +2025-04-28 15:17:17,844 - INFO - 변환 성공: 워드(한글)-002403-김소진.hwpx -> 워드(한글)-002403-김소진.hml +2025-04-28 15:17:18,167 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\A\DIW +2025-04-28 15:17:18,667 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\B\DIW +2025-04-28 15:17:20,255 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\B\DIW +2025-04-28 15:17:20,756 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\C\DIW +2025-04-28 15:17:22,264 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\C\DIW +2025-04-28 15:17:22,765 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\D\DIW +2025-04-28 15:17:24,352 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\D\DIW +2025-04-28 15:17:24,853 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\E\DIW +2025-04-28 15:17:26,331 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_2\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_2\E\DIW +2025-04-28 15:17:26,832 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\A\DIW +2025-04-28 15:17:28,335 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\A\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\A\DIW +2025-04-28 15:17:28,836 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\B\DIW +2025-04-28 15:17:32,289 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:17:32,800 - INFO - 변환 성공: 워드(한글)-002040-이현재.hwpx -> 워드(한글)-002040-이현재.hml +2025-04-28 15:17:33,088 - INFO - 변환 성공: 워드(한글)-002041-김태진.hwpx -> 워드(한글)-002041-김태진.hml +2025-04-28 15:17:33,380 - INFO - 변환 성공: 워드(한글)-002042-노현준.hwpx -> 워드(한글)-002042-노현준.hml +2025-04-28 15:17:33,587 - INFO - 변환 성공: 워드(한글)-002043-김성관.hwpx -> 워드(한글)-002043-김성관.hml +2025-04-28 15:17:33,799 - INFO - 변환 성공: 워드(한글)-002044-안승재.hwpx -> 워드(한글)-002044-안승재.hml +2025-04-28 15:17:34,142 - INFO - 변환 성공: 워드(한글)-002045-신수용.hwpx -> 워드(한글)-002045-신수용.hml +2025-04-28 15:17:34,499 - INFO - 변환 성공: 워드(한글)-002046-홍지형.hwpx -> 워드(한글)-002046-홍지형.hml +2025-04-28 15:17:34,728 - INFO - 변환 성공: 워드(한글)-002047-이지원.hwpx -> 워드(한글)-002047-이지원.hml +2025-04-28 15:17:35,122 - INFO - 변환 성공: 워드(한글)-002048-김도경.hwpx -> 워드(한글)-002048-김도경.hml +2025-04-28 15:17:35,563 - INFO - 변환 성공: 워드(한글)-002049-배제우.hwpx -> 워드(한글)-002049-배제우.hml +2025-04-28 15:17:36,003 - INFO - 변환 성공: 워드(한글)-002051-김우빈.hwpx -> 워드(한글)-002051-김우빈.hml +2025-04-28 15:17:36,579 - INFO - 변환 성공: 워드(한글)-002052-서예준.hwpx -> 워드(한글)-002052-서예준.hml +2025-04-28 15:17:36,994 - INFO - 변환 성공: 워드(한글)-002053-손성민.hwpx -> 워드(한글)-002053-손성민.hml +2025-04-28 15:17:37,354 - INFO - 변환 성공: 워드(한글)-002054-문준오.hwpx -> 워드(한글)-002054-문준오.hml +2025-04-28 15:17:37,698 - INFO - 변환 성공: 워드(한글)-002055-장현진.hwpx -> 워드(한글)-002055-장현진.hml +2025-04-28 15:17:38,084 - INFO - 변환 성공: 워드(한글)-002056-이준상.hwpx -> 워드(한글)-002056-이준상.hml +2025-04-28 15:17:38,266 - INFO - 변환 성공: 워드(한글)-002057-김주호.hwpx -> 워드(한글)-002057-김주호.hml +2025-04-28 15:17:38,490 - INFO - 변환 성공: 워드(한글)-002058-이지오.hwpx -> 워드(한글)-002058-이지오.hml +2025-04-28 15:17:38,824 - INFO - 변환 성공: 워드(한글)-002059-오한결.hwpx -> 워드(한글)-002059-오한결.hml +2025-04-28 15:17:39,160 - INFO - 변환 성공: 워드(한글)-002060-정민기.hwpx -> 워드(한글)-002060-정민기.hml +2025-04-28 15:17:39,563 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\B\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\B\DIW +2025-04-28 15:17:40,064 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\C\DIW +2025-04-28 15:17:42,989 - INFO - 변환 성공: DIW_2504A.hwp -> DIW_2504A.hml +2025-04-28 15:17:43,344 - INFO - 변환 성공: 워드(한글)-002062-여승기.hwpx -> 워드(한글)-002062-여승기.hml +2025-04-28 15:17:43,543 - INFO - 변환 성공: 워드(한글)-002063-이지후.hwpx -> 워드(한글)-002063-이지후.hml +2025-04-28 15:17:43,797 - INFO - 변환 성공: 워드(한글)-002064-황태영.hwpx -> 워드(한글)-002064-황태영.hml +2025-04-28 15:17:44,100 - INFO - 변환 성공: 워드(한글)-002065-김우진.hwpx -> 워드(한글)-002065-김우진.hml +2025-04-28 15:17:44,398 - INFO - 변환 성공: 워드(한글)-002066-서종우.hwpx -> 워드(한글)-002066-서종우.hml +2025-04-28 15:17:44,724 - INFO - 변환 성공: 워드(한글)-002066-윤건우.hwpx -> 워드(한글)-002066-윤건우.hml +2025-04-28 15:17:45,048 - INFO - 변환 성공: 워드(한글)-002067-심찬영.hwpx -> 워드(한글)-002067-심찬영.hml +2025-04-28 15:17:45,390 - INFO - 변환 성공: 워드(한글)-002068-조우준.hwpx -> 워드(한글)-002068-조우준.hml +2025-04-28 15:17:45,817 - INFO - 변환 성공: 워드(한글)-002069-서승표.hwpx -> 워드(한글)-002069-서승표.hml +2025-04-28 15:17:46,109 - INFO - 변환 성공: 워드(한글)-002070-김민석.hwpx -> 워드(한글)-002070-김민석.hml +2025-04-28 15:17:46,639 - INFO - 변환 성공: 워드(한글)-002071-곽준우.hwpx -> 워드(한글)-002071-곽준우.hml +2025-04-28 15:17:47,131 - INFO - 변환 성공: 워드(한글)-002072-김동준.hwpx -> 워드(한글)-002072-김동준.hml +2025-04-28 15:17:47,449 - INFO - 변환 성공: 워드(한글)-002073-김용준.hwpx -> 워드(한글)-002073-김용준.hml +2025-04-28 15:17:47,668 - INFO - 변환 성공: 워드(한글)-002074-박상우.hwpx -> 워드(한글)-002074-박상우.hml +2025-04-28 15:17:47,882 - INFO - 변환 성공: 워드(한글)-002075-박시우.hwpx -> 워드(한글)-002075-박시우.hml +2025-04-28 15:17:48,318 - INFO - 변환 성공: 워드(한글)-002076-송원석.hwpx -> 워드(한글)-002076-송원석.hml +2025-04-28 15:17:48,522 - INFO - 변환 성공: 워드(한글)-002078-강민호.hwpx -> 워드(한글)-002078-강민호.hml +2025-04-28 15:17:48,897 - INFO - 변환 성공: 워드(한글)-002079-권재현.hwpx -> 워드(한글)-002079-권재현.hml +2025-04-28 15:17:49,240 - INFO - 변환 성공: 워드(한글)-002080-김정현.hwpx -> 워드(한글)-002080-김정현.hml +2025-04-28 15:17:49,534 - INFO - 변환 성공: 워드(한글)-002081-김종윤.hwpx -> 워드(한글)-002081-김종윤.hml +2025-04-28 15:17:49,872 - INFO - 변환 성공: 워드(한글)-002082-오규석.hwpx -> 워드(한글)-002082-오규석.hml +2025-04-28 15:17:50,316 - INFO - 변환 성공: 워드(한글)-002083-이승준.hwpx -> 워드(한글)-002083-이승준.hml +2025-04-28 15:17:50,621 - INFO - 변환 성공: 워드(한글)-002084-이현우.hwex.hwpx -> 워드(한글)-002084-이현우.hwex.hml +2025-04-28 15:17:50,877 - INFO - 변환 성공: 워드(한글)-002085-정연욱.hwpx -> 워드(한글)-002085-정연욱.hml +2025-04-28 15:17:51,102 - INFO - 변환 성공: 워드(한글)-002086-정영웅hwpx.hwpx -> 워드(한글)-002086-정영웅hwpx.hml +2025-04-28 15:17:51,481 - INFO - 변환 성공: 워드(한글)-002087-구승민.hwpx -> 워드(한글)-002087-구승민.hml +2025-04-28 15:17:51,695 - INFO - 변환 성공: 워드(한글)-002088-김선우.hwpx -> 워드(한글)-002088-김선우.hml +2025-04-28 15:17:51,950 - INFO - 변환 성공: 워드(한글)-002089-임지훈.hwpx -> 워드(한글)-002089-임지훈.hml +2025-04-28 15:17:52,165 - INFO - 변환 성공: 워드(한글)-002090-자파르.hwpx -> 워드(한글)-002090-자파르.hml +2025-04-28 15:17:52,384 - INFO - 변환 성공: 워드(한글)-002091-차현준.hwpx -> 워드(한글)-002091-차현준.hml +2025-04-28 15:17:52,640 - INFO - 변환 성공: 워드(한글)-002092-최금환.hwpx -> 워드(한글)-002092-최금환.hml +2025-04-28 15:17:52,875 - INFO - 변환 성공: 워드(한글)-002093-최성현.hwpx -> 워드(한글)-002093-최성현.hml +2025-04-28 15:17:53,096 - INFO - 변환 성공: 워드(한글)-002094-최찬윤.hwpx -> 워드(한글)-002094-최찬윤.hml +2025-04-28 15:17:53,284 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\C\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\C\DIW +2025-04-28 15:17:53,785 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\D\DIW +2025-04-28 15:17:55,391 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\D\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\D\DIW +2025-04-28 15:17:55,892 - INFO - 폴더 변환 시작: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\E\DIW +2025-04-28 15:17:57,416 - INFO - 폴더 변환 완료: C:\Users\dra\project\HWP\HWP-Scoring\input\2504_3\E\DIW -> C:\Users\dra\project\HWP\HWP-Scoring\output\2504_3\E\DIW diff --git a/test.py b/test.py index 671b137..33ba003 100644 --- a/test.py +++ b/test.py @@ -129,6 +129,12 @@ def delete_gen_py(): print(f'{gen_py_dir} 디렉토리를 삭제했습니다.') if __name__ == "__main__": + + exam_rounds = [ + "2504_2", + "2504_3" + ] + delete_gen_py() # 로깅 설정 @@ -136,20 +142,21 @@ if __name__ == "__main__": # 변환할 폴더 경로 설정 # 배열 동시에 변환하면 에러발생 -> 하나씩 변환 -> time.sleep(0.5) 추가 - folders = [ - (r"C:\Users\dra\project\HWP\HWP-Scoring\input\A\DIW",r"C:\Users\dra\project\HWP\HWP-Scoring\output\A\DIW"), - (r"C:\Users\dra\project\HWP\HWP-Scoring\input\B\DIW",r"C:\Users\dra\project\HWP\HWP-Scoring\output\B\DIW"), - (r"C:\Users\dra\project\HWP\HWP-Scoring\input\C\DIW",r"C:\Users\dra\project\HWP\HWP-Scoring\output\C\DIW"), - # (r"C:\Users\dra\project\HWP\HWP-Scoring\input\D\DIW",r"C:\Users\dra\project\HWP\HWP-Scoring\output\D\DIW"), - # (r"C:\Users\dra\project\HWP\HWP-Scoring\input\E\DIW",r"C:\Users\dra\project\HWP\HWP-Scoring\output\E\DIW"), - ] + for exam_round in exam_rounds: + folders = [ + (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\A\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\A\\DIW"), + (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\B\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\B\\DIW"), + (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\DIW"), + (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\D\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\D\\DIW"), + (f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\E\\DIW",f"C:\\Users\\dra\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\E\\DIW"), + ] - # 변환 실행 - for input, output in folders: - try: - logging.info(f"폴더 변환 시작: {input} -> {output}") - convert_hwp_to_xml(input, output) - logging.info(f"폴더 변환 완료: {input} -> {output}") - time.sleep(0.5) - except Exception as e: - logging.error(f"폴더 변환 중 오류 발생: {input} -> {output}, 오류: {e}") + # 변환 실행 + for input, output in folders: + try: + logging.info(f"폴더 변환 시작: {input} -> {output}") + convert_hwp_to_xml(input, output) + logging.info(f"폴더 변환 완료: {input} -> {output}") + time.sleep(0.5) + except Exception as e: + logging.error(f"폴더 변환 중 오류 발생: {input} -> {output}, 오류: {e}") diff --git a/zzz.xbook b/zzz.xbook index ea8c9f9..8171bb9 100644 --- a/zzz.xbook +++ b/zzz.xbook @@ -1 +1 @@ -[{"kind":2,"language":"xpath","value":"boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul][@Name='바탕']"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Name='바탕']/@Id"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id='6']/FONTID/@Hangul"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id='0']/@Align"},{"kind":2,"language":"xpath","value":"boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id={charshape_id}]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id={font_id}]/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape][ITALIC]"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN/@LineSpacing"},{"kind":2,"language":"xpath","value":"not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])"}] \ No newline at end of file +[{"kind":2,"language":"xpath","value":"boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3000 and //PARASHAPE[@Id=//CHAR[contains(text(),'기타')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2400)"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul][@Name='바탕']"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Name='바탕']/@Id"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id='6']/FONTID/@Hangul"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id='0']/@Align"},{"kind":2,"language":"xpath","value":"boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800)and(@Width >= 2600 and @Width <= 2800)]])"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id={charshape_id}]/FONTID/@Hangul]/@Name"},{"kind":2,"language":"xpath","value":"//FONTFACE[@Lang='Hangul']/FONT[@Id={font_id}]/@Name"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'전 세계적으로 차량의 수는 약 13억 대가 있고 국내는 약 2,500만 대')]/parent::TEXT/@CharShape][ITALIC]"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN/@LineSpacing"},{"kind":2,"language":"xpath","value":"//PARASHAPE[@Id=//CHAR[contains(text(),'행사안내')]/ancestor::P/@ParaShape]/@Align"}] \ No newline at end of file diff --git a/회차별채점자료/2504_sub/hml_변환/DIW_2504A.hml b/회차별채점자료/2504_2/hml_변환/DIW_2504A.hml similarity index 100% rename from 회차별채점자료/2504_sub/hml_변환/DIW_2504A.hml rename to 회차별채점자료/2504_2/hml_변환/DIW_2504A.hml diff --git a/회차별채점자료/2504_3/hml_변환/DIW_2504A.hml b/회차별채점자료/2504_3/hml_변환/DIW_2504A.hml new file mode 100644 index 0000000..75873a2 --- /dev/null +++ b/회차별채점자료/2504_3/hml_변환/DIW_2504A.hml @@ -0,0 +1,1162 @@ + + + + + icox + 2023년 11월 2일 목요일 오후 4:32:24 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^1. + ^2. + ^3) + ^4) + (^5) + (^6) + ^7 + + + + + + ^1. + ^2. + ^3) + ^4) + (^5) + (^6) + ^7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +