파일 삭제 및 새로운 채점 기준 추가
This commit is contained in:
BIN
__pycache__/binaryToChartxml.cpython-312.pyc
Normal file
BIN
__pycache__/binaryToChartxml.cpython-312.pyc
Normal file
Binary file not shown.
@@ -1,15 +1,22 @@
|
||||
import base64
|
||||
import re
|
||||
from lxml import etree as ET
|
||||
|
||||
|
||||
xml_path = r"C:\Users\dra\project\HWP-Scoring\output\워드(한글)-009866-성유나.hml"
|
||||
tree = ET.parse(xml_path)
|
||||
root = tree.getroot()
|
||||
# xpath로 바이너리 부분추출
|
||||
binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
|
||||
binary_data = binary_data[0].encode('utf-8')
|
||||
# 파일을 읽어들입니다.
|
||||
with open('./chartBinData2', 'rb') as file:
|
||||
encoded_data = file.read()
|
||||
# with open('./chartBinData2', 'rb') as file:
|
||||
# encoded_data = file.read()
|
||||
# encoded_data 내에 존재하는 <BINDATA ...> ... </BINDATA> 태그를 찾아서 삭제
|
||||
# <BINDATA ...> 태그는 base64 디코딩을 수행할 때 오류가 발생하므로 삭제합니다.
|
||||
|
||||
# <BINDATA ...> 태그와 그 내부 내용을 삭제합니다.
|
||||
encoded_data = re.sub(b'<BINDATA.*?>', b'', encoded_data)
|
||||
encoded_data = re.sub(b'<BINDATA.*?>', b'', binary_data)
|
||||
# encoded_data = re.sub(b'<BINDATA.*?>', b'', encoded_data)
|
||||
# print(encoded_data)
|
||||
encoded_data = encoded_data.replace(b'</BINDATA>', b'')
|
||||
encoded_data = encoded_data.replace(b'\r\n', b'')
|
||||
|
||||
55
binaryToChartxml.py
Normal file
55
binaryToChartxml.py
Normal file
@@ -0,0 +1,55 @@
|
||||
from pathlib import Path
|
||||
from lxml import etree as ET
|
||||
import base64
|
||||
import re
|
||||
|
||||
class binaryToChartxml:
|
||||
def __init__(self, xml_path):
|
||||
self.tree = ET.parse(xml_path)
|
||||
self.root = self.tree.getroot()
|
||||
|
||||
def decoding_bindata(self):
|
||||
binary_data = self.root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
|
||||
binary_data = binary_data[0].encode('utf-8')
|
||||
encoded_data = re.sub(b'<BINDATA.*?>', b'', binary_data)
|
||||
|
||||
# print(encoded_data)
|
||||
encoded_data = encoded_data.replace(b'</BINDATA>', b'')
|
||||
encoded_data = encoded_data.replace(b'\r\n', b'')
|
||||
|
||||
# base64 디코딩을 수행합니다.
|
||||
decoded_data = base64.b64decode(encoded_data+b'==')
|
||||
|
||||
print(decoded_data)
|
||||
|
||||
# 디코딩된 데이터 내용 중 xml 형식만 추출할 때 <c:chartSpace>, </c:chartSpace> 사이의 데이터만 추출.
|
||||
start = decoded_data.find(b'<?xml')
|
||||
# print(start)
|
||||
end = decoded_data.find(b'</c:chartSpace>')
|
||||
# print(end)
|
||||
self.xml_data = decoded_data[start:end+len(b'</c:chartSpace>')]
|
||||
|
||||
|
||||
# def save_chart_xml(self, xml_output_path):
|
||||
def save_chart_xml(self):
|
||||
with open(, 'wb') as file:
|
||||
file.write(self.xml_data)
|
||||
|
||||
|
||||
|
||||
|
||||
# xml 파일 읽기
|
||||
# xml_path = r"C:\Users\dra\project\HWP-Scoring\output\워드(한글)-009865-고미송.hml"
|
||||
# tree = ET.parse(xml_path)
|
||||
# root = tree.getroot()
|
||||
# # xpath로 바이너리 부분추출
|
||||
# binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()')
|
||||
# binary_data = str(binary_data[0])
|
||||
# print(f'binary : {binary_data}')
|
||||
# # base64 디코딩
|
||||
# decoded_data = base64.b64decode(binary_data)
|
||||
|
||||
# # 디코딩된 데이터를 파일로 저장
|
||||
# output_file = f"decoded_output_test.bin"
|
||||
# with open(output_file, "wb") as decoded_file:
|
||||
# decoded_file.write(decoded_data)
|
||||
File diff suppressed because one or more lines are too long
2911
chartBinData2
2911
chartBinData2
File diff suppressed because it is too large
Load Diff
@@ -1,18 +0,0 @@
|
||||
def demicalToRGB(demical_value):
|
||||
b = demical_value // 65536
|
||||
g = ( demical_value % 65536 ) // 256
|
||||
r = ( demical_value % 65536 % 256 )
|
||||
return (r, g, b)
|
||||
|
||||
def RGBtoDemical(r, g, b):
|
||||
return (b * 65536) + (g * 256) + r
|
||||
|
||||
def main():
|
||||
rgb = demicalToRGB(10040115)
|
||||
print( rgb )
|
||||
|
||||
demical = RGBtoDemical(11, 22, 33)
|
||||
print( demical )
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
47
diff_hwp.py
47
diff_hwp.py
@@ -1,47 +0,0 @@
|
||||
import olefile
|
||||
import difflib
|
||||
|
||||
def extract_text_from_hwp(file_path):
|
||||
"""
|
||||
HWP 파일에서 텍스트를 추출합니다.
|
||||
"""
|
||||
try:
|
||||
ole = olefile.OleFileIO(file_path)
|
||||
if ole.exists('BodyText/Section0'):
|
||||
content = ole.openstream('BodyText/Section0').read()
|
||||
text = content.decode('utf-16le', errors='ignore')
|
||||
return text
|
||||
else:
|
||||
print(f"No 'BodyText/Section0' stream found in {file_path}")
|
||||
return ''
|
||||
except Exception as e:
|
||||
print(f"Error extracting text from {file_path}: {e}")
|
||||
return ''
|
||||
|
||||
def compare_texts(text1, text2):
|
||||
"""
|
||||
두 텍스트의 차이를 비교하고 차이점을 카운트합니다.
|
||||
"""
|
||||
diff = difflib.ndiff(text1.splitlines(), text2.splitlines())
|
||||
diff_count = 0
|
||||
for line in diff:
|
||||
if line.startswith('+ ') or line.startswith('- '):
|
||||
diff_count += 1
|
||||
return diff_count
|
||||
|
||||
def main():
|
||||
file1 = r'C:\Users\dra\project\HWP-Scoring\input\원본.hwp'
|
||||
file2 = r'C:\Users\dra\project\HWP-Scoring\input\원본 copy.hwp'
|
||||
|
||||
text1 = extract_text_from_hwp(file1)
|
||||
text2 = extract_text_from_hwp(file2)
|
||||
|
||||
if not text1 or not text2:
|
||||
print("텍스트를 추출하지 못했습니다.")
|
||||
return
|
||||
|
||||
diff_count = compare_texts(text1, text2)
|
||||
print(f"차이점 개수: {diff_count}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
252
ext_BinData.xml
252
ext_BinData.xml
@@ -1,82 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<c:chartSpace xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
|
||||
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
|
||||
xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart">
|
||||
<c:date1904 val="0" />
|
||||
<c:date1904 val="0"/>
|
||||
<c:roundedCorners val="0"/>
|
||||
<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
|
||||
<mc:Choice xmlns:c14="http://schemas.microsoft.com/office/drawing/2007/8/2/chart"
|
||||
Requires="c14">
|
||||
<c14:style val="102" />
|
||||
<mc:Choice xmlns:c14="http://schemas.microsoft.com/office/drawing/2007/8/2/chart" Requires="c14">
|
||||
<c14:style val="102"/>
|
||||
</mc:Choice>
|
||||
<mc:Fallback>
|
||||
<c:style val="2" />
|
||||
<c:style val="2"/>
|
||||
</mc:Fallback>
|
||||
</mc:AlternateContent>
|
||||
<c:roundedCorners val="0" />
|
||||
<c:chart>
|
||||
<c:title>
|
||||
<c:tx>
|
||||
<c:rich>
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0"
|
||||
anchor="ctr" anchorCtr="1" />
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0" anchor="ctr" anchorCtr="1"/>
|
||||
<a:p>
|
||||
<a:pPr algn="l">
|
||||
<a:defRPr sz="1400" b="1" i="0" u="none">
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="000000" />
|
||||
<a:srgbClr val="000000"/>
|
||||
</a:solidFill>
|
||||
<a:latin typeface="돋움체" />
|
||||
<a:ea typeface="돋움체" />
|
||||
<a:cs typeface="돋움체" />
|
||||
<a:sym typeface="돋움체" />
|
||||
<a:latin typeface="돋움체"/>
|
||||
<a:ea typeface="돋움체"/>
|
||||
<a:cs typeface="돋움체"/>
|
||||
<a:sym typeface="돋움체"/>
|
||||
</a:defRPr>
|
||||
</a:pPr>
|
||||
<a:r>
|
||||
<a:rPr sz="1400" b="1" i="0" u="none">
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="000000" />
|
||||
<a:srgbClr val="000000"/>
|
||||
</a:solidFill>
|
||||
<a:latin typeface="돋움체" />
|
||||
<a:ea typeface="돋움체" />
|
||||
<a:cs typeface="돋움체" />
|
||||
<a:sym typeface="돋움체" />
|
||||
<a:latin typeface="돋움체"/>
|
||||
<a:ea typeface="돋움체"/>
|
||||
<a:cs typeface="돋움체"/>
|
||||
<a:sym typeface="돋움체"/>
|
||||
</a:rPr>
|
||||
<a:t>과일야채 항산화지수 비교</a:t>
|
||||
</a:r>
|
||||
<a:endParaRPr />
|
||||
<a:endParaRPr/>
|
||||
</a:p>
|
||||
</c:rich>
|
||||
</c:tx>
|
||||
<c:layout>
|
||||
<c:manualLayout>
|
||||
<c:xMode val="edge" />
|
||||
<c:yMode val="edge" />
|
||||
<c:x val="0.080750003457069397" />
|
||||
<c:y val="0.034499999135732651" />
|
||||
<c:w val="0.83824998140335083" />
|
||||
<c:h val="0.13099999725818634" />
|
||||
<c:xMode val="edge"/>
|
||||
<c:yMode val="edge"/>
|
||||
<c:x val="0.10400000214576721191"/>
|
||||
<c:y val="0.03550000116229057312"/>
|
||||
<c:w val="0.79175001382827758789"/>
|
||||
<c:h val="0.13300000131130218506"/>
|
||||
</c:manualLayout>
|
||||
</c:layout>
|
||||
<c:overlay val="0" />
|
||||
<c:overlay val="0"/>
|
||||
<c:spPr>
|
||||
<a:noFill />
|
||||
<a:noFill/>
|
||||
</c:spPr>
|
||||
</c:title>
|
||||
<c:autoTitleDeleted val="0" />
|
||||
<c:autoTitleDeleted val="0"/>
|
||||
<c:plotArea>
|
||||
<c:layout />
|
||||
<c:layout>
|
||||
<c:manualLayout>
|
||||
<c:layoutTarget val="inner"/>
|
||||
<c:xMode val="edge"/>
|
||||
<c:yMode val="edge"/>
|
||||
<c:x val="0.03249999880790710449"/>
|
||||
<c:y val="0.19900000095367431641"/>
|
||||
<c:w val="0.92449998855590820313"/>
|
||||
<c:h val="0.59175002574920654297"/>
|
||||
</c:manualLayout>
|
||||
</c:layout>
|
||||
<c:barChart>
|
||||
<c:barDir val="col" />
|
||||
<c:grouping val="clustered" />
|
||||
<c:varyColors val="0" />
|
||||
<c:barDir val="col"/>
|
||||
<c:grouping val="clustered"/>
|
||||
<c:varyColors val="0"/>
|
||||
<c:ser>
|
||||
<c:idx val="0" />
|
||||
<c:order val="0" />
|
||||
<c:idx val="0"/>
|
||||
<c:order val="0"/>
|
||||
<c:tx>
|
||||
<c:strRef>
|
||||
<c:f>항산화지수(100g당)</c:f>
|
||||
<c:strCache>
|
||||
<c:ptCount val="1" />
|
||||
<c:ptCount val="1"/>
|
||||
<c:pt idx="0">
|
||||
<c:v>항산화지수(100g당)</c:v>
|
||||
</c:pt>
|
||||
@@ -85,22 +93,22 @@
|
||||
</c:tx>
|
||||
<c:spPr>
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="73b1d1" />
|
||||
<a:srgbClr val="73b1d1"/>
|
||||
</a:solidFill>
|
||||
<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">
|
||||
<a:noFill />
|
||||
<a:prstDash val="solid" />
|
||||
<a:round />
|
||||
<a:headEnd w="med" len="med" />
|
||||
<a:tailEnd w="med" len="med" />
|
||||
<a:noFill/>
|
||||
<a:prstDash val="solid"/>
|
||||
<a:round/>
|
||||
<a:headEnd w="med" len="med"/>
|
||||
<a:tailEnd w="med" len="med"/>
|
||||
</a:ln>
|
||||
</c:spPr>
|
||||
<c:invertIfNegative val="0" />
|
||||
<c:invertIfNegative val="0"/>
|
||||
<c:cat>
|
||||
<c:strRef>
|
||||
<c:f>{"블루베리", "딸기", "자두", "오렌지", "시금치", "양배추"}</c:f>
|
||||
<c:strCache>
|
||||
<c:ptCount val="6" />
|
||||
<c:ptCount val="6"/>
|
||||
<c:pt idx="0">
|
||||
<c:v>블루베리</c:v>
|
||||
</c:pt>
|
||||
@@ -125,7 +133,7 @@
|
||||
<c:val>
|
||||
<c:numLit>
|
||||
<c:formatCode>General</c:formatCode>
|
||||
<c:ptCount val="6" />
|
||||
<c:ptCount val="6"/>
|
||||
<c:pt idx="0">
|
||||
<c:v>2400</c:v>
|
||||
</c:pt>
|
||||
@@ -136,7 +144,7 @@
|
||||
<c:v>949</c:v>
|
||||
</c:pt>
|
||||
<c:pt idx="3">
|
||||
<c:v>740</c:v>
|
||||
<c:v>750</c:v>
|
||||
</c:pt>
|
||||
<c:pt idx="4">
|
||||
<c:v>1260</c:v>
|
||||
@@ -147,147 +155,143 @@
|
||||
</c:numLit>
|
||||
</c:val>
|
||||
</c:ser>
|
||||
<c:gapWidth val="100" />
|
||||
<c:overlap val="0" />
|
||||
<c:axId val="0" />
|
||||
<c:axId val="1" />
|
||||
<c:gapWidth val="100"/>
|
||||
<c:overlap val="0"/>
|
||||
<c:axId val="0"/>
|
||||
<c:axId val="1"/>
|
||||
</c:barChart>
|
||||
<c:catAx>
|
||||
<c:axId val="0" />
|
||||
<c:axId val="0"/>
|
||||
<c:scaling>
|
||||
<c:orientation val="minMax" />
|
||||
<c:orientation val="minMax"/>
|
||||
</c:scaling>
|
||||
<c:axPos val="b" />
|
||||
<c:crossAx val="1" />
|
||||
<c:delete val="0" />
|
||||
<c:majorTickMark val="none" />
|
||||
<c:minorTickMark val="none" />
|
||||
<c:tickLblPos val="nextTo" />
|
||||
<c:axPos val="b"/>
|
||||
<c:crossAx val="1"/>
|
||||
<c:delete val="0"/>
|
||||
<c:majorTickMark val="none"/>
|
||||
<c:minorTickMark val="none"/>
|
||||
<c:tickLblPos val="nextTo"/>
|
||||
<c:txPr>
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0"
|
||||
anchor="ctr" anchorCtr="1" />
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0" anchor="ctr" anchorCtr="1"/>
|
||||
<a:p>
|
||||
<a:pPr algn="l">
|
||||
<a:defRPr sz="900" b="0" i="1" u="none">
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="000000" />
|
||||
<a:srgbClr val="000000"/>
|
||||
</a:solidFill>
|
||||
<a:latin typeface="돋움" />
|
||||
<a:ea typeface="돋움" />
|
||||
<a:cs typeface="돋움" />
|
||||
<a:sym typeface="돋움" />
|
||||
<a:latin typeface="돋움"/>
|
||||
<a:ea typeface="돋움"/>
|
||||
<a:cs typeface="돋움"/>
|
||||
<a:sym typeface="돋움"/>
|
||||
</a:defRPr>
|
||||
</a:pPr>
|
||||
<a:endParaRPr />
|
||||
<a:endParaRPr/>
|
||||
</a:p>
|
||||
</c:txPr>
|
||||
<c:crosses val="autoZero" />
|
||||
<c:auto val="1" />
|
||||
<c:lblAlgn val="ctr" />
|
||||
<c:lblOffset val="100" />
|
||||
<c:tickLblSkip val="1" />
|
||||
<c:tickMarkSkip val="1" />
|
||||
<c:noMultiLvlLbl val="0" />
|
||||
<c:crosses val="autoZero"/>
|
||||
<c:auto val="1"/>
|
||||
<c:lblAlgn val="ctr"/>
|
||||
<c:lblOffset val="100"/>
|
||||
<c:tickLblSkip val="1"/>
|
||||
<c:tickMarkSkip val="1"/>
|
||||
<c:noMultiLvlLbl val="0"/>
|
||||
</c:catAx>
|
||||
<c:valAx>
|
||||
<c:axId val="1" />
|
||||
<c:axId val="1"/>
|
||||
<c:scaling>
|
||||
<c:orientation val="minMax" />
|
||||
<c:orientation val="minMax"/>
|
||||
</c:scaling>
|
||||
<c:axPos val="l" />
|
||||
<c:crossAx val="0" />
|
||||
<c:delete val="0" />
|
||||
<c:numFmt formatCode="General" sourceLinked="1" />
|
||||
<c:majorTickMark val="out" />
|
||||
<c:minorTickMark val="none" />
|
||||
<c:tickLblPos val="nextTo" />
|
||||
<c:axPos val="l"/>
|
||||
<c:crossAx val="0"/>
|
||||
<c:delete val="0"/>
|
||||
<c:numFmt formatCode="General" sourceLinked="1"/>
|
||||
<c:majorTickMark val="out"/>
|
||||
<c:minorTickMark val="none"/>
|
||||
<c:tickLblPos val="nextTo"/>
|
||||
<c:txPr>
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0"
|
||||
anchor="ctr" anchorCtr="1" />
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0" anchor="ctr" anchorCtr="1"/>
|
||||
<a:p>
|
||||
<a:pPr algn="l">
|
||||
<a:defRPr sz="900" b="0" i="1" u="none">
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="000000" />
|
||||
<a:srgbClr val="000000"/>
|
||||
</a:solidFill>
|
||||
<a:latin typeface="돋움" />
|
||||
<a:ea typeface="돋움" />
|
||||
<a:cs typeface="돋움" />
|
||||
<a:sym typeface="돋움" />
|
||||
<a:latin typeface="돋움"/>
|
||||
<a:ea typeface="돋움"/>
|
||||
<a:cs typeface="돋움"/>
|
||||
<a:sym typeface="돋움"/>
|
||||
</a:defRPr>
|
||||
</a:pPr>
|
||||
<a:endParaRPr />
|
||||
<a:endParaRPr/>
|
||||
</a:p>
|
||||
</c:txPr>
|
||||
<c:crosses val="autoZero" />
|
||||
<c:crossBetween val="between" />
|
||||
<c:crosses val="autoZero"/>
|
||||
<c:crossBetween val="between"/>
|
||||
</c:valAx>
|
||||
<c:spPr>
|
||||
<a:noFill />
|
||||
<a:noFill/>
|
||||
<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">
|
||||
<a:noFill />
|
||||
<a:prstDash val="solid" />
|
||||
<a:round />
|
||||
<a:headEnd w="med" len="med" />
|
||||
<a:tailEnd w="med" len="med" />
|
||||
<a:noFill/>
|
||||
<a:prstDash val="solid"/>
|
||||
<a:round/>
|
||||
<a:headEnd w="med" len="med"/>
|
||||
<a:tailEnd w="med" len="med"/>
|
||||
</a:ln>
|
||||
</c:spPr>
|
||||
</c:plotArea>
|
||||
<c:legend>
|
||||
<c:legendPos val="b" />
|
||||
<c:layout />
|
||||
<c:overlay val="0" />
|
||||
<c:legendPos val="b"/>
|
||||
<c:layout/>
|
||||
<c:overlay val="0"/>
|
||||
<c:spPr>
|
||||
<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">
|
||||
<a:solidFill>
|
||||
<a:prstClr val="black" />
|
||||
<a:prstClr val="black"/>
|
||||
</a:solidFill>
|
||||
<a:prstDash val="solid" />
|
||||
<a:round />
|
||||
<a:headEnd w="med" len="med" />
|
||||
<a:tailEnd w="med" len="med" />
|
||||
<a:prstDash val="solid"/>
|
||||
<a:round/>
|
||||
<a:headEnd w="med" len="med"/>
|
||||
<a:tailEnd w="med" len="med"/>
|
||||
</a:ln>
|
||||
</c:spPr>
|
||||
<c:txPr>
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0"
|
||||
anchor="ctr" anchorCtr="1" />
|
||||
<a:bodyPr rot="0" vert="horz" wrap="none" lIns="0" tIns="0" rIns="0" bIns="0" anchor="ctr" anchorCtr="1"/>
|
||||
<a:p>
|
||||
<a:pPr algn="l">
|
||||
<a:defRPr sz="900" b="0" i="1" u="none">
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="000000" />
|
||||
<a:srgbClr val="000000"/>
|
||||
</a:solidFill>
|
||||
<a:latin typeface="돋움" />
|
||||
<a:ea typeface="돋움" />
|
||||
<a:cs typeface="돋움" />
|
||||
<a:sym typeface="돋움" />
|
||||
<a:latin typeface="돋움"/>
|
||||
<a:ea typeface="돋움"/>
|
||||
<a:cs typeface="돋움"/>
|
||||
<a:sym typeface="돋움"/>
|
||||
</a:defRPr>
|
||||
</a:pPr>
|
||||
<a:endParaRPr />
|
||||
<a:endParaRPr/>
|
||||
</a:p>
|
||||
</c:txPr>
|
||||
</c:legend>
|
||||
<c:plotVisOnly val="0" />
|
||||
<c:dispBlanksAs val="gap" />
|
||||
<c:plotVisOnly val="1"/>
|
||||
<c:dispBlanksAs val="gap"/>
|
||||
</c:chart>
|
||||
<c:spPr>
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="ffffff" />
|
||||
<a:srgbClr val="ffffff"/>
|
||||
</a:solidFill>
|
||||
<a:ln w="12700" cap="flat" cmpd="sng" algn="ctr">
|
||||
<a:solidFill>
|
||||
<a:srgbClr val="8c8c8c" />
|
||||
<a:srgbClr val="8c8c8c"/>
|
||||
</a:solidFill>
|
||||
<a:prstDash val="solid" />
|
||||
<a:round />
|
||||
<a:headEnd w="med" len="med" />
|
||||
<a:tailEnd w="med" len="med" />
|
||||
<a:prstDash val="solid"/>
|
||||
<a:round/>
|
||||
<a:headEnd w="med" len="med"/>
|
||||
<a:tailEnd w="med" len="med"/>
|
||||
</a:ln>
|
||||
</c:spPr>
|
||||
<c:extLst>
|
||||
<c:ext uri="CC8EB2C9-7E31-499d-B8F2-F6CE61031016">
|
||||
<ho:hncChartStyle xmlns:ho="http://schemas.haansoft.com/office/8.0" layoutIndex="-1"
|
||||
colorIndex="0" styleIndex="0" />
|
||||
<ho:hncChartStyle xmlns:ho="http://schemas.haansoft.com/office/8.0" layoutIndex="-1" colorIndex="0" styleIndex="0"/>
|
||||
</c:ext>
|
||||
</c:extLst>
|
||||
</c:chartSpace>
|
||||
@@ -716,3 +716,253 @@
|
||||
2025-01-10 19:37:10,154 - INFO - 변환 성공: 워드(한글)-010245-김하준.hwp -> 워드(한글)-010245-김하준.hml
|
||||
2025-01-10 19:37:10,304 - INFO - 변환 성공: 워드(한글)-010246-한유승.hwp -> 워드(한글)-010246-한유승.hml
|
||||
2025-01-10 19:37:10,453 - INFO - 변환 성공: 한글(워드)-010021-김유정.hwp -> 한글(워드)-010021-김유정.hml
|
||||
2025-01-13 15:21:11,179 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-13 15:21:11,549 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-13 15:21:11,868 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-13 15:21:12,050 - INFO - 변환 성공: 워드(한글)-009895-김라온.hwp -> 워드(한글)-009895-김라온.hml
|
||||
2025-01-13 15:21:12,208 - INFO - 변환 성공: 워드(한글)-009896-안서준.hwp -> 워드(한글)-009896-안서준.hml
|
||||
2025-01-13 15:21:12,572 - INFO - 변환 성공: 워드(한글)-009920-김민찬.hwp -> 워드(한글)-009920-김민찬.hml
|
||||
2025-01-13 15:21:13,657 - INFO - 변환 성공: 워드(한글)-009921-김혜원.hwp -> 워드(한글)-009921-김혜원.hml
|
||||
2025-01-13 15:21:13,781 - INFO - 변환 성공: 워드(한글)-009926-진성훈.hwp -> 워드(한글)-009926-진성훈.hml
|
||||
2025-01-13 15:21:14,017 - INFO - 변환 성공: 워드(한글)-009927-한지수.hwp -> 워드(한글)-009927-한지수.hml
|
||||
2025-01-13 15:21:14,257 - INFO - 변환 성공: 워드(한글)-009928-윤아르.hwp -> 워드(한글)-009928-윤아르.hml
|
||||
2025-01-13 15:21:14,425 - INFO - 변환 성공: 워드(한글)-009929-김준영.hwp -> 워드(한글)-009929-김준영.hml
|
||||
2025-01-13 15:21:14,559 - INFO - 변환 성공: 워드(한글)-009930-문윤재.hwp -> 워드(한글)-009930-문윤재.hml
|
||||
2025-01-13 15:21:14,739 - INFO - 변환 성공: 워드(한글)-009931-이선우.hwp -> 워드(한글)-009931-이선우.hml
|
||||
2025-01-13 15:21:14,965 - INFO - 변환 성공: 워드(한글)-009932-최다솜.hwp -> 워드(한글)-009932-최다솜.hml
|
||||
2025-01-13 15:21:15,099 - INFO - 변환 성공: 워드(한글)-009933-이지한.hwp -> 워드(한글)-009933-이지한.hml
|
||||
2025-01-13 15:21:15,224 - INFO - 변환 성공: 워드(한글)-009934-고서진.hwp -> 워드(한글)-009934-고서진.hml
|
||||
2025-01-13 15:21:15,399 - INFO - 변환 성공: 워드(한글)-009935-이가은.hwp -> 워드(한글)-009935-이가은.hml
|
||||
2025-01-13 15:21:15,538 - INFO - 변환 성공: 워드(한글)-009936-이라현.hwp -> 워드(한글)-009936-이라현.hml
|
||||
2025-01-13 15:21:15,686 - INFO - 변환 성공: 워드(한글)-009937-진성준.hwp -> 워드(한글)-009937-진성준.hml
|
||||
2025-01-13 15:21:15,829 - INFO - 변환 성공: 워드(한글)-009938-김규리.hwp -> 워드(한글)-009938-김규리.hml
|
||||
2025-01-13 15:21:15,967 - INFO - 변환 성공: 워드(한글)-009939-이준.hwp -> 워드(한글)-009939-이준.hml
|
||||
2025-01-13 15:21:16,115 - INFO - 변환 성공: 워드(한글)-009940-김지민.hwp -> 워드(한글)-009940-김지민.hml
|
||||
2025-01-13 15:21:16,319 - INFO - 변환 성공: 워드(한글)-009941-윤지후.hwp -> 워드(한글)-009941-윤지후.hml
|
||||
2025-01-13 15:21:16,455 - INFO - 변환 성공: 워드(한글)-009942-최원준.hwp -> 워드(한글)-009942-최원준.hml
|
||||
2025-01-13 15:21:16,665 - INFO - 변환 성공: 워드(한글)-009943-윤헤르.hwp -> 워드(한글)-009943-윤헤르.hml
|
||||
2025-01-13 15:21:16,830 - INFO - 변환 성공: 워드(한글)-009944-현지후.hwp -> 워드(한글)-009944-현지후.hml
|
||||
2025-01-13 15:21:16,956 - INFO - 변환 성공: 워드(한글)-009945-고재웅.hwp -> 워드(한글)-009945-고재웅.hml
|
||||
2025-01-13 15:21:17,094 - INFO - 변환 성공: 워드(한글)-009946-홍규진.hwp -> 워드(한글)-009946-홍규진.hml
|
||||
2025-01-13 15:21:17,289 - INFO - 변환 성공: 워드(한글)-009956-고현규.hwp -> 워드(한글)-009956-고현규.hml
|
||||
2025-01-13 15:21:17,427 - INFO - 변환 성공: 워드(한글)-009957-김도준.hwp -> 워드(한글)-009957-김도준.hml
|
||||
2025-01-13 15:21:17,539 - INFO - 변환 성공: 워드(한글)-009958-김온유.hwp -> 워드(한글)-009958-김온유.hml
|
||||
2025-01-13 15:21:17,682 - INFO - 변환 성공: 워드(한글)-009959-김현욱.hwp -> 워드(한글)-009959-김현욱.hml
|
||||
2025-01-13 15:21:17,791 - INFO - 변환 성공: 워드(한글)-009960-박가을.hwp -> 워드(한글)-009960-박가을.hml
|
||||
2025-01-13 15:21:17,911 - INFO - 변환 성공: 워드(한글)-009961-정현욱.hwp -> 워드(한글)-009961-정현욱.hml
|
||||
2025-01-13 15:21:18,082 - INFO - 변환 성공: 워드(한글)-009962-최율.hwp -> 워드(한글)-009962-최율.hml
|
||||
2025-01-13 15:21:18,311 - INFO - 변환 성공: 워드(한글)-009963-현서현.hwp -> 워드(한글)-009963-현서현.hml
|
||||
2025-01-13 15:21:18,445 - INFO - 변환 성공: 워드(한글)-009992-송유준.hwp -> 워드(한글)-009992-송유준.hml
|
||||
2025-01-13 15:21:18,582 - INFO - 변환 성공: 워드(한글)-009993-김지우.hwp -> 워드(한글)-009993-김지우.hml
|
||||
2025-01-13 15:21:18,747 - INFO - 변환 성공: 워드(한글)-010035-유아정.hwp -> 워드(한글)-010035-유아정.hml
|
||||
2025-01-13 15:21:18,861 - INFO - 변환 성공: 워드(한글)-010036-구준호.hwp -> 워드(한글)-010036-구준호.hml
|
||||
2025-01-13 15:21:19,072 - INFO - 변환 성공: 워드(한글)-010037-나준우.hwp -> 워드(한글)-010037-나준우.hml
|
||||
2025-01-13 15:21:19,212 - INFO - 변환 성공: 워드(한글)-010038-주보민.hwp -> 워드(한글)-010038-주보민.hml
|
||||
2025-01-13 15:21:19,352 - INFO - 변환 성공: 워드(한글)-010039-이예낭.hwp -> 워드(한글)-010039-이예낭.hml
|
||||
2025-01-13 15:21:19,492 - INFO - 변환 성공: 워드(한글)-010040-송가빈.hwp -> 워드(한글)-010040-송가빈.hml
|
||||
2025-01-13 15:21:19,690 - INFO - 변환 성공: 워드(한글)-010041-이삼강.hwp -> 워드(한글)-010041-이삼강.hml
|
||||
2025-01-13 15:21:19,818 - INFO - 변환 성공: 워드(한글)-010042-이윤찬.hwp -> 워드(한글)-010042-이윤찬.hml
|
||||
2025-01-13 15:21:19,928 - INFO - 변환 성공: 워드(한글)-010043-고채원.hwp -> 워드(한글)-010043-고채원.hml
|
||||
2025-01-13 15:21:20,052 - INFO - 변환 성공: 워드(한글)-010044-양준서.hwp -> 워드(한글)-010044-양준서.hml
|
||||
2025-01-13 15:21:20,214 - INFO - 변환 성공: 워드(한글)-010045-김호건.hwp -> 워드(한글)-010045-김호건.hml
|
||||
2025-01-13 15:21:20,339 - INFO - 변환 성공: 워드(한글)-010046-고보현.hwp -> 워드(한글)-010046-고보현.hml
|
||||
2025-01-13 15:21:20,462 - INFO - 변환 성공: 워드(한글)-010047-고세현.hwp -> 워드(한글)-010047-고세현.hml
|
||||
2025-01-13 15:21:20,587 - INFO - 변환 성공: 워드(한글)-010048-고주영.hwp -> 워드(한글)-010048-고주영.hml
|
||||
2025-01-13 15:21:20,713 - INFO - 변환 성공: 워드(한글)-010049-김아현.hwp -> 워드(한글)-010049-김아현.hml
|
||||
2025-01-13 15:21:21,016 - INFO - 변환 성공: 워드(한글)-010050-박태오.hwp -> 워드(한글)-010050-박태오.hml
|
||||
2025-01-13 15:21:21,180 - INFO - 변환 성공: 워드(한글)-010051-오은솔.hwp -> 워드(한글)-010051-오은솔.hml
|
||||
2025-01-13 15:21:21,308 - INFO - 변환 성공: 워드(한글)-010052-김민유.hwp -> 워드(한글)-010052-김민유.hml
|
||||
2025-01-13 15:21:21,442 - INFO - 변환 성공: 워드(한글)-010053-김봄.hwp -> 워드(한글)-010053-김봄.hml
|
||||
2025-01-13 15:21:21,614 - INFO - 변환 성공: 워드(한글)-010054-김린우.hwp -> 워드(한글)-010054-김린우.hml
|
||||
2025-01-13 15:21:21,751 - INFO - 변환 성공: 워드(한글)-010055-양유진.hwp -> 워드(한글)-010055-양유진.hml
|
||||
2025-01-13 15:21:21,884 - INFO - 변환 성공: 워드(한글)-010065-양야베스.hwp -> 워드(한글)-010065-양야베스.hml
|
||||
2025-01-13 15:21:22,066 - INFO - 변환 성공: 워드(한글)-010066-강우리.hwp -> 워드(한글)-010066-강우리.hml
|
||||
2025-01-13 15:21:22,266 - INFO - 변환 성공: 워드(한글)-010067-김예빈.hwp -> 워드(한글)-010067-김예빈.hml
|
||||
2025-01-13 15:21:22,472 - INFO - 변환 성공: 워드(한글)-010087-김다연.hwp -> 워드(한글)-010087-김다연.hml
|
||||
2025-01-13 15:21:22,617 - INFO - 변환 성공: 워드(한글)-010088-송은율.hwp -> 워드(한글)-010088-송은율.hml
|
||||
2025-01-13 15:21:22,752 - INFO - 변환 성공: 워드(한글)-010089-오준혁.hwp -> 워드(한글)-010089-오준혁.hml
|
||||
2025-01-13 15:21:22,903 - INFO - 변환 성공: 워드(한글)-010090-오채원.hwp -> 워드(한글)-010090-오채원.hml
|
||||
2025-01-13 15:21:23,024 - INFO - 변환 성공: 워드(한글)-010091-윤채린.hwp -> 워드(한글)-010091-윤채린.hml
|
||||
2025-01-13 15:21:23,294 - INFO - 변환 성공: 워드(한글)-010092-신기하.hwp -> 워드(한글)-010092-신기하.hml
|
||||
2025-01-13 15:21:23,435 - INFO - 변환 성공: 워드(한글)-010093-김이안.hwp -> 워드(한글)-010093-김이안.hml
|
||||
2025-01-13 15:21:23,582 - INFO - 변환 성공: 워드(한글)-010094-김정현.hwp -> 워드(한글)-010094-김정현.hml
|
||||
2025-01-13 15:21:23,727 - INFO - 변환 성공: 워드(한글)-010095-전민정.hwp -> 워드(한글)-010095-전민정.hml
|
||||
2025-01-13 15:21:23,875 - INFO - 변환 성공: 워드(한글)-010120-고하진.hwp -> 워드(한글)-010120-고하진.hml
|
||||
2025-01-13 15:21:24,076 - INFO - 변환 성공: 워드(한글)-010121-고한율.hwp -> 워드(한글)-010121-고한율.hml
|
||||
2025-01-13 15:21:24,222 - INFO - 변환 성공: 워드(한글)-010122-손서아.hwp -> 워드(한글)-010122-손서아.hml
|
||||
2025-01-13 15:21:24,363 - INFO - 변환 성공: 워드(한글)-010123-김지온.hwp -> 워드(한글)-010123-김지온.hml
|
||||
2025-01-13 15:21:24,525 - INFO - 변환 성공: 워드(한글)-010124-안서정.hwp -> 워드(한글)-010124-안서정.hml
|
||||
2025-01-13 15:21:24,654 - INFO - 변환 성공: 워드(한글)-010125-강지환.hwp -> 워드(한글)-010125-강지환.hml
|
||||
2025-01-13 15:21:24,852 - INFO - 변환 성공: 워드(한글)-010126-고여진.hwp -> 워드(한글)-010126-고여진.hml
|
||||
2025-01-13 15:21:24,998 - INFO - 변환 성공: 워드(한글)-010127-고재범.hwp -> 워드(한글)-010127-고재범.hml
|
||||
2025-01-13 15:21:25,130 - INFO - 변환 성공: 워드(한글)-010128-윤빈.hwp -> 워드(한글)-010128-윤빈.hml
|
||||
2025-01-13 15:21:25,302 - INFO - 변환 성공: 워드(한글)-010129-유승재.hwp -> 워드(한글)-010129-유승재.hml
|
||||
2025-01-13 15:21:25,475 - INFO - 변환 성공: 워드(한글)-010130-고강은.hwp -> 워드(한글)-010130-고강은.hml
|
||||
2025-01-13 15:21:25,611 - INFO - 변환 성공: 워드(한글)-010136-김호연.hwp -> 워드(한글)-010136-김호연.hml
|
||||
2025-01-13 15:21:25,769 - INFO - 변환 성공: 워드(한글)-010141-김성운.hwp -> 워드(한글)-010141-김성운.hml
|
||||
2025-01-13 15:21:25,926 - INFO - 변환 성공: 워드(한글)-010142-윤은지.hwp -> 워드(한글)-010142-윤은지.hml
|
||||
2025-01-13 15:21:26,552 - INFO - 변환 성공: 워드(한글)-010143-지혁.hwp -> 워드(한글)-010143-지혁.hml
|
||||
2025-01-13 15:21:26,793 - INFO - 변환 성공: 워드(한글)-010151-현시연.hwp -> 워드(한글)-010151-현시연.hml
|
||||
2025-01-13 15:21:26,921 - INFO - 변환 성공: 워드(한글)-010162-박새롬.hwp -> 워드(한글)-010162-박새롬.hml
|
||||
2025-01-13 15:21:27,085 - INFO - 변환 성공: 워드(한글)-010163-한보석.hwp -> 워드(한글)-010163-한보석.hml
|
||||
2025-01-13 15:21:27,232 - INFO - 변환 성공: 워드(한글)-010169-오현준.hwp -> 워드(한글)-010169-오현준.hml
|
||||
2025-01-13 15:21:27,425 - INFO - 변환 성공: 워드(한글)-010170-이하음.hwp -> 워드(한글)-010170-이하음.hml
|
||||
2025-01-13 15:21:27,611 - INFO - 변환 성공: 워드(한글)-010171-진성원.hwp -> 워드(한글)-010171-진성원.hml
|
||||
2025-01-13 15:21:27,767 - INFO - 변환 성공: 워드(한글)-010172-최수빈.hwp -> 워드(한글)-010172-최수빈.hml
|
||||
2025-01-13 15:21:27,982 - INFO - 변환 성공: 워드(한글)-010177-조승우.hwp -> 워드(한글)-010177-조승우.hml
|
||||
2025-01-13 15:21:28,197 - INFO - 변환 성공: 워드(한글)-010178-이태윤.hwp -> 워드(한글)-010178-이태윤.hml
|
||||
2025-01-13 15:21:28,435 - INFO - 변환 성공: 워드(한글)-010187-현지수.hwp -> 워드(한글)-010187-현지수.hml
|
||||
2025-01-13 15:21:28,594 - INFO - 변환 성공: 워드(한글)-010188-김현송.hwp -> 워드(한글)-010188-김현송.hml
|
||||
2025-01-13 15:21:28,823 - INFO - 변환 성공: 워드(한글)-010189-한진우.hwp -> 워드(한글)-010189-한진우.hml
|
||||
2025-01-13 15:21:28,979 - INFO - 변환 성공: 워드(한글)-010190-장서후.hwp -> 워드(한글)-010190-장서후.hml
|
||||
2025-01-13 15:21:29,146 - INFO - 변환 성공: 워드(한글)-010191-진지원.hwp -> 워드(한글)-010191-진지원.hml
|
||||
2025-01-13 15:21:29,268 - INFO - 변환 성공: 워드(한글)-010192-김시우.hwp -> 워드(한글)-010192-김시우.hml
|
||||
2025-01-13 15:21:29,413 - INFO - 변환 성공: 워드(한글)-010193-강지오.hwp -> 워드(한글)-010193-강지오.hml
|
||||
2025-01-13 15:21:29,601 - INFO - 변환 성공: 워드(한글)-010194-강리주.hwp -> 워드(한글)-010194-강리주.hml
|
||||
2025-01-13 15:21:29,846 - INFO - 변환 성공: 워드(한글)-010195-강지예.hwp -> 워드(한글)-010195-강지예.hml
|
||||
2025-01-13 15:21:30,057 - INFO - 변환 성공: 워드(한글)-010211-곽서아.hwp -> 워드(한글)-010211-곽서아.hml
|
||||
2025-01-13 15:21:30,214 - INFO - 변환 성공: 워드(한글)-010219-김태형.hwp -> 워드(한글)-010219-김태형.hml
|
||||
2025-01-13 15:21:30,392 - INFO - 변환 성공: 워드(한글)-010220-송수지.hwp -> 워드(한글)-010220-송수지.hml
|
||||
2025-01-13 15:21:30,580 - INFO - 변환 성공: 워드(한글)-010221-이지나.hwp -> 워드(한글)-010221-이지나.hml
|
||||
2025-01-13 15:21:30,760 - INFO - 변환 성공: 워드(한글)-010241-전하율.hwp -> 워드(한글)-010241-전하율.hml
|
||||
2025-01-13 15:21:30,938 - INFO - 변환 성공: 워드(한글)-010242-양윤호.hwp -> 워드(한글)-010242-양윤호.hml
|
||||
2025-01-13 15:21:31,193 - INFO - 변환 성공: 워드(한글)-010245-김하준.hwp -> 워드(한글)-010245-김하준.hml
|
||||
2025-01-13 15:21:31,369 - INFO - 변환 성공: 워드(한글)-010246-한유승.hwp -> 워드(한글)-010246-한유승.hml
|
||||
2025-01-13 15:21:31,539 - INFO - 변환 성공: 한글(워드)-010021-김유정.hwp -> 한글(워드)-010021-김유정.hml
|
||||
2025-01-14 14:20:56,587 - INFO - 변환 성공: 워드(한글)-002294-우시현.hwp -> 워드(한글)-002294-우시현.hml
|
||||
2025-01-16 13:31:28,436 - ERROR - 프로그램 실행 오류: module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap'
|
||||
2025-01-16 13:35:17,499 - INFO - win32com 캐시가 성공적으로 삭제되었습니다.
|
||||
2025-01-16 13:36:02,967 - INFO - win32com 캐시가 성공적으로 삭제되었습니다.
|
||||
2025-01-16 13:36:12,205 - ERROR - 프로그램 실행 오류: '<win32com.gen_py.HwpObject 1.0 Type Library.IHwpObject instance at 0x2151521563136>' object has no attribute 'Close'
|
||||
2025-01-16 13:36:45,137 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-16 13:36:45,385 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-16 13:36:45,757 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-16 13:36:45,994 - INFO - 변환 성공: 워드(한글)-009895-김라온.hwp -> 워드(한글)-009895-김라온.hml
|
||||
2025-01-16 13:36:46,191 - INFO - 변환 성공: 워드(한글)-009896-안서준.hwp -> 워드(한글)-009896-안서준.hml
|
||||
2025-01-16 13:36:46,371 - INFO - 변환 성공: 워드(한글)-009920-김민찬.hwp -> 워드(한글)-009920-김민찬.hml
|
||||
2025-01-16 13:36:46,566 - INFO - 변환 성공: 워드(한글)-009921-김혜원.hwp -> 워드(한글)-009921-김혜원.hml
|
||||
2025-01-16 13:36:46,732 - INFO - 변환 성공: 워드(한글)-009926-진성훈.hwp -> 워드(한글)-009926-진성훈.hml
|
||||
2025-01-16 13:36:46,911 - INFO - 변환 성공: 워드(한글)-009927-한지수.hwp -> 워드(한글)-009927-한지수.hml
|
||||
2025-01-16 13:36:47,088 - INFO - 변환 성공: 워드(한글)-009928-윤아르.hwp -> 워드(한글)-009928-윤아르.hml
|
||||
2025-01-16 13:36:47,268 - INFO - 변환 성공: 워드(한글)-009929-김준영.hwp -> 워드(한글)-009929-김준영.hml
|
||||
2025-01-16 13:36:47,448 - INFO - 변환 성공: 워드(한글)-009930-문윤재.hwp -> 워드(한글)-009930-문윤재.hml
|
||||
2025-01-16 13:36:47,637 - INFO - 변환 성공: 워드(한글)-009931-이선우.hwp -> 워드(한글)-009931-이선우.hml
|
||||
2025-01-16 13:36:47,816 - INFO - 변환 성공: 워드(한글)-009932-최다솜.hwp -> 워드(한글)-009932-최다솜.hml
|
||||
2025-01-16 13:36:47,995 - INFO - 변환 성공: 워드(한글)-009933-이지한.hwp -> 워드(한글)-009933-이지한.hml
|
||||
2025-01-16 13:36:48,176 - INFO - 변환 성공: 워드(한글)-009934-고서진.hwp -> 워드(한글)-009934-고서진.hml
|
||||
2025-01-16 13:36:48,359 - INFO - 변환 성공: 워드(한글)-009935-이가은.hwp -> 워드(한글)-009935-이가은.hml
|
||||
2025-01-16 13:36:48,539 - INFO - 변환 성공: 워드(한글)-009936-이라현.hwp -> 워드(한글)-009936-이라현.hml
|
||||
2025-01-16 13:36:48,712 - INFO - 변환 성공: 워드(한글)-009937-진성준.hwp -> 워드(한글)-009937-진성준.hml
|
||||
2025-01-16 13:36:48,908 - INFO - 변환 성공: 워드(한글)-009938-김규리.hwp -> 워드(한글)-009938-김규리.hml
|
||||
2025-01-16 13:36:49,106 - INFO - 변환 성공: 워드(한글)-009939-이준.hwp -> 워드(한글)-009939-이준.hml
|
||||
2025-01-16 13:36:49,305 - INFO - 변환 성공: 워드(한글)-009940-김지민.hwp -> 워드(한글)-009940-김지민.hml
|
||||
2025-01-16 13:36:49,511 - INFO - 변환 성공: 워드(한글)-009941-윤지후.hwp -> 워드(한글)-009941-윤지후.hml
|
||||
2025-01-16 13:36:49,704 - INFO - 변환 성공: 워드(한글)-009942-최원준.hwp -> 워드(한글)-009942-최원준.hml
|
||||
2025-01-16 13:36:49,930 - INFO - 변환 성공: 워드(한글)-009943-윤헤르.hwp -> 워드(한글)-009943-윤헤르.hml
|
||||
2025-01-16 13:36:50,192 - INFO - 변환 성공: 워드(한글)-009944-현지후.hwp -> 워드(한글)-009944-현지후.hml
|
||||
2025-01-16 13:36:50,372 - INFO - 변환 성공: 워드(한글)-009945-고재웅.hwp -> 워드(한글)-009945-고재웅.hml
|
||||
2025-01-16 13:36:50,560 - INFO - 변환 성공: 워드(한글)-009946-홍규진.hwp -> 워드(한글)-009946-홍규진.hml
|
||||
2025-01-16 13:36:50,825 - INFO - 변환 성공: 워드(한글)-009956-고현규.hwp -> 워드(한글)-009956-고현규.hml
|
||||
2025-01-16 13:36:51,023 - INFO - 변환 성공: 워드(한글)-009957-김도준.hwp -> 워드(한글)-009957-김도준.hml
|
||||
2025-01-16 13:36:51,205 - INFO - 변환 성공: 워드(한글)-009958-김온유.hwp -> 워드(한글)-009958-김온유.hml
|
||||
2025-01-16 13:36:51,394 - INFO - 변환 성공: 워드(한글)-009959-김현욱.hwp -> 워드(한글)-009959-김현욱.hml
|
||||
2025-01-16 13:36:51,545 - INFO - 변환 성공: 워드(한글)-009960-박가을.hwp -> 워드(한글)-009960-박가을.hml
|
||||
2025-01-16 13:36:51,724 - INFO - 변환 성공: 워드(한글)-009961-정현욱.hwp -> 워드(한글)-009961-정현욱.hml
|
||||
2025-01-16 13:36:51,932 - INFO - 변환 성공: 워드(한글)-009962-최율.hwp -> 워드(한글)-009962-최율.hml
|
||||
2025-01-16 13:36:52,111 - INFO - 변환 성공: 워드(한글)-009963-현서현.hwp -> 워드(한글)-009963-현서현.hml
|
||||
2025-01-16 13:36:52,298 - INFO - 변환 성공: 워드(한글)-009992-송유준.hwp -> 워드(한글)-009992-송유준.hml
|
||||
2025-01-16 13:36:52,496 - INFO - 변환 성공: 워드(한글)-009993-김지우.hwp -> 워드(한글)-009993-김지우.hml
|
||||
2025-01-16 13:36:52,704 - INFO - 변환 성공: 워드(한글)-010035-유아정.hwp -> 워드(한글)-010035-유아정.hml
|
||||
2025-01-16 13:36:52,870 - INFO - 변환 성공: 워드(한글)-010036-구준호.hwp -> 워드(한글)-010036-구준호.hml
|
||||
2025-01-16 13:36:53,036 - INFO - 변환 성공: 워드(한글)-010037-나준우.hwp -> 워드(한글)-010037-나준우.hml
|
||||
2025-01-16 13:36:53,217 - INFO - 변환 성공: 워드(한글)-010038-주보민.hwp -> 워드(한글)-010038-주보민.hml
|
||||
2025-01-16 13:36:53,393 - INFO - 변환 성공: 워드(한글)-010039-이예낭.hwp -> 워드(한글)-010039-이예낭.hml
|
||||
2025-01-16 13:36:53,643 - INFO - 변환 성공: 워드(한글)-010040-송가빈.hwp -> 워드(한글)-010040-송가빈.hml
|
||||
2025-01-16 13:36:53,807 - INFO - 변환 성공: 워드(한글)-010041-이삼강.hwp -> 워드(한글)-010041-이삼강.hml
|
||||
2025-01-16 13:36:53,981 - INFO - 변환 성공: 워드(한글)-010042-이윤찬.hwp -> 워드(한글)-010042-이윤찬.hml
|
||||
2025-01-16 13:36:54,148 - INFO - 변환 성공: 워드(한글)-010043-고채원.hwp -> 워드(한글)-010043-고채원.hml
|
||||
2025-01-16 13:36:54,342 - INFO - 변환 성공: 워드(한글)-010044-양준서.hwp -> 워드(한글)-010044-양준서.hml
|
||||
2025-01-16 13:36:54,578 - INFO - 변환 성공: 워드(한글)-010045-김호건.hwp -> 워드(한글)-010045-김호건.hml
|
||||
2025-01-16 13:36:54,754 - INFO - 변환 성공: 워드(한글)-010046-고보현.hwp -> 워드(한글)-010046-고보현.hml
|
||||
2025-01-16 13:36:54,936 - INFO - 변환 성공: 워드(한글)-010047-고세현.hwp -> 워드(한글)-010047-고세현.hml
|
||||
2025-01-16 13:36:55,107 - INFO - 변환 성공: 워드(한글)-010048-고주영.hwp -> 워드(한글)-010048-고주영.hml
|
||||
2025-01-16 13:36:55,294 - INFO - 변환 성공: 워드(한글)-010049-김아현.hwp -> 워드(한글)-010049-김아현.hml
|
||||
2025-01-16 13:36:55,629 - INFO - 변환 성공: 워드(한글)-010050-박태오.hwp -> 워드(한글)-010050-박태오.hml
|
||||
2025-01-16 13:36:55,823 - INFO - 변환 성공: 워드(한글)-010051-오은솔.hwp -> 워드(한글)-010051-오은솔.hml
|
||||
2025-01-16 13:36:55,998 - INFO - 변환 성공: 워드(한글)-010052-김민유.hwp -> 워드(한글)-010052-김민유.hml
|
||||
2025-01-16 13:36:56,200 - INFO - 변환 성공: 워드(한글)-010053-김봄.hwp -> 워드(한글)-010053-김봄.hml
|
||||
2025-01-16 13:36:56,388 - INFO - 변환 성공: 워드(한글)-010054-김린우.hwp -> 워드(한글)-010054-김린우.hml
|
||||
2025-01-16 13:36:56,573 - INFO - 변환 성공: 워드(한글)-010055-양유진.hwp -> 워드(한글)-010055-양유진.hml
|
||||
2025-01-16 13:36:56,748 - INFO - 변환 성공: 워드(한글)-010065-양야베스.hwp -> 워드(한글)-010065-양야베스.hml
|
||||
2025-01-16 13:36:56,925 - INFO - 변환 성공: 워드(한글)-010066-강우리.hwp -> 워드(한글)-010066-강우리.hml
|
||||
2025-01-16 13:36:57,108 - INFO - 변환 성공: 워드(한글)-010067-김예빈.hwp -> 워드(한글)-010067-김예빈.hml
|
||||
2025-01-16 13:36:57,292 - INFO - 변환 성공: 워드(한글)-010087-김다연.hwp -> 워드(한글)-010087-김다연.hml
|
||||
2025-01-16 13:36:57,480 - INFO - 변환 성공: 워드(한글)-010088-송은율.hwp -> 워드(한글)-010088-송은율.hml
|
||||
2025-01-16 13:36:57,662 - INFO - 변환 성공: 워드(한글)-010089-오준혁.hwp -> 워드(한글)-010089-오준혁.hml
|
||||
2025-01-16 13:36:57,840 - INFO - 변환 성공: 워드(한글)-010090-오채원.hwp -> 워드(한글)-010090-오채원.hml
|
||||
2025-01-16 13:36:58,013 - INFO - 변환 성공: 워드(한글)-010091-윤채린.hwp -> 워드(한글)-010091-윤채린.hml
|
||||
2025-01-16 13:36:58,201 - INFO - 변환 성공: 워드(한글)-010092-신기하.hwp -> 워드(한글)-010092-신기하.hml
|
||||
2025-01-16 13:36:58,385 - INFO - 변환 성공: 워드(한글)-010093-김이안.hwp -> 워드(한글)-010093-김이안.hml
|
||||
2025-01-16 13:36:58,573 - INFO - 변환 성공: 워드(한글)-010094-김정현.hwp -> 워드(한글)-010094-김정현.hml
|
||||
2025-01-16 13:36:58,751 - INFO - 변환 성공: 워드(한글)-010095-전민정.hwp -> 워드(한글)-010095-전민정.hml
|
||||
2025-01-16 13:36:58,932 - INFO - 변환 성공: 워드(한글)-010120-고하진.hwp -> 워드(한글)-010120-고하진.hml
|
||||
2025-01-16 13:36:59,104 - INFO - 변환 성공: 워드(한글)-010121-고한율.hwp -> 워드(한글)-010121-고한율.hml
|
||||
2025-01-16 13:36:59,270 - INFO - 변환 성공: 워드(한글)-010122-손서아.hwp -> 워드(한글)-010122-손서아.hml
|
||||
2025-01-16 13:36:59,435 - INFO - 변환 성공: 워드(한글)-010123-김지온.hwp -> 워드(한글)-010123-김지온.hml
|
||||
2025-01-16 13:36:59,623 - INFO - 변환 성공: 워드(한글)-010124-안서정.hwp -> 워드(한글)-010124-안서정.hml
|
||||
2025-01-16 13:36:59,795 - INFO - 변환 성공: 워드(한글)-010125-강지환.hwp -> 워드(한글)-010125-강지환.hml
|
||||
2025-01-16 13:36:59,960 - INFO - 변환 성공: 워드(한글)-010126-고여진.hwp -> 워드(한글)-010126-고여진.hml
|
||||
2025-01-16 13:37:00,119 - INFO - 변환 성공: 워드(한글)-010127-고재범.hwp -> 워드(한글)-010127-고재범.hml
|
||||
2025-01-16 13:37:00,300 - INFO - 변환 성공: 워드(한글)-010128-윤빈.hwp -> 워드(한글)-010128-윤빈.hml
|
||||
2025-01-16 13:37:00,470 - INFO - 변환 성공: 워드(한글)-010129-유승재.hwp -> 워드(한글)-010129-유승재.hml
|
||||
2025-01-16 13:37:00,640 - INFO - 변환 성공: 워드(한글)-010130-고강은.hwp -> 워드(한글)-010130-고강은.hml
|
||||
2025-01-16 13:37:00,821 - INFO - 변환 성공: 워드(한글)-010136-김호연.hwp -> 워드(한글)-010136-김호연.hml
|
||||
2025-01-16 13:37:01,006 - INFO - 변환 성공: 워드(한글)-010141-김성운.hwp -> 워드(한글)-010141-김성운.hml
|
||||
2025-01-16 13:37:01,236 - INFO - 변환 성공: 워드(한글)-010142-윤은지.hwp -> 워드(한글)-010142-윤은지.hml
|
||||
2025-01-16 13:37:01,869 - INFO - 변환 성공: 워드(한글)-010143-지혁.hwp -> 워드(한글)-010143-지혁.hml
|
||||
2025-01-16 13:37:02,105 - INFO - 변환 성공: 워드(한글)-010151-현시연.hwp -> 워드(한글)-010151-현시연.hml
|
||||
2025-01-16 13:37:02,238 - INFO - 변환 성공: 워드(한글)-010162-박새롬.hwp -> 워드(한글)-010162-박새롬.hml
|
||||
2025-01-16 13:37:02,416 - INFO - 변환 성공: 워드(한글)-010163-한보석.hwp -> 워드(한글)-010163-한보석.hml
|
||||
2025-01-16 13:37:02,608 - INFO - 변환 성공: 워드(한글)-010169-오현준.hwp -> 워드(한글)-010169-오현준.hml
|
||||
2025-01-16 13:37:02,782 - INFO - 변환 성공: 워드(한글)-010170-이하음.hwp -> 워드(한글)-010170-이하음.hml
|
||||
2025-01-16 13:37:02,965 - INFO - 변환 성공: 워드(한글)-010171-진성원.hwp -> 워드(한글)-010171-진성원.hml
|
||||
2025-01-16 13:37:03,142 - INFO - 변환 성공: 워드(한글)-010172-최수빈.hwp -> 워드(한글)-010172-최수빈.hml
|
||||
2025-01-16 13:37:03,321 - INFO - 변환 성공: 워드(한글)-010177-조승우.hwp -> 워드(한글)-010177-조승우.hml
|
||||
2025-01-16 13:37:03,569 - INFO - 변환 성공: 워드(한글)-010178-이태윤.hwp -> 워드(한글)-010178-이태윤.hml
|
||||
2025-01-16 13:37:03,760 - INFO - 변환 성공: 워드(한글)-010187-현지수.hwp -> 워드(한글)-010187-현지수.hml
|
||||
2025-01-16 13:37:03,980 - INFO - 변환 성공: 워드(한글)-010188-김현송.hwp -> 워드(한글)-010188-김현송.hml
|
||||
2025-01-16 13:37:04,170 - INFO - 변환 성공: 워드(한글)-010189-한진우.hwp -> 워드(한글)-010189-한진우.hml
|
||||
2025-01-16 13:37:04,351 - INFO - 변환 성공: 워드(한글)-010190-장서후.hwp -> 워드(한글)-010190-장서후.hml
|
||||
2025-01-16 13:37:04,538 - INFO - 변환 성공: 워드(한글)-010191-진지원.hwp -> 워드(한글)-010191-진지원.hml
|
||||
2025-01-16 13:37:04,690 - INFO - 변환 성공: 워드(한글)-010192-김시우.hwp -> 워드(한글)-010192-김시우.hml
|
||||
2025-01-16 13:37:04,870 - INFO - 변환 성공: 워드(한글)-010193-강지오.hwp -> 워드(한글)-010193-강지오.hml
|
||||
2025-01-16 13:37:05,048 - INFO - 변환 성공: 워드(한글)-010194-강리주.hwp -> 워드(한글)-010194-강리주.hml
|
||||
2025-01-16 13:37:05,222 - INFO - 변환 성공: 워드(한글)-010195-강지예.hwp -> 워드(한글)-010195-강지예.hml
|
||||
2025-01-16 13:37:05,418 - INFO - 변환 성공: 워드(한글)-010211-곽서아.hwp -> 워드(한글)-010211-곽서아.hml
|
||||
2025-01-16 13:37:05,613 - INFO - 변환 성공: 워드(한글)-010219-김태형.hwp -> 워드(한글)-010219-김태형.hml
|
||||
2025-01-16 13:37:05,820 - INFO - 변환 성공: 워드(한글)-010220-송수지.hwp -> 워드(한글)-010220-송수지.hml
|
||||
2025-01-16 13:37:06,027 - INFO - 변환 성공: 워드(한글)-010221-이지나.hwp -> 워드(한글)-010221-이지나.hml
|
||||
2025-01-16 13:37:06,212 - INFO - 변환 성공: 워드(한글)-010241-전하율.hwp -> 워드(한글)-010241-전하율.hml
|
||||
2025-01-16 13:37:06,397 - INFO - 변환 성공: 워드(한글)-010242-양윤호.hwp -> 워드(한글)-010242-양윤호.hml
|
||||
2025-01-16 13:37:06,583 - INFO - 변환 성공: 워드(한글)-010245-김하준.hwp -> 워드(한글)-010245-김하준.hml
|
||||
2025-01-16 13:37:06,765 - INFO - 변환 성공: 워드(한글)-010246-한유승.hwp -> 워드(한글)-010246-한유승.hml
|
||||
2025-01-16 13:37:06,944 - INFO - 변환 성공: 한글(워드)-010021-김유정.hwp -> 한글(워드)-010021-김유정.hml
|
||||
2025-01-16 16:41:56,943 - ERROR - 프로그램 실행 오류: [WinError 5] 액세스가 거부되었습니다: 'C:\\Users\\gzero-ser7-win11'
|
||||
2025-01-16 16:46:12,750 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-16 16:46:12,779 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-16 16:46:12,794 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-16 16:46:29,919 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-16 16:46:30,398 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-16 16:46:30,958 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-16 16:54:39,223 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-16 16:54:39,705 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-16 16:54:40,257 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-16 16:57:28,791 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-16 16:57:29,289 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-16 16:57:29,897 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-16 17:00:36,937 - INFO - 변환 성공: 워드(한글)-009865-고미송.hwp -> 워드(한글)-009865-고미송.hml
|
||||
2025-01-16 17:00:37,422 - INFO - 변환 성공: 워드(한글)-009866-성유나.hwp -> 워드(한글)-009866-성유나.hml
|
||||
2025-01-16 17:00:37,904 - INFO - 변환 성공: 워드(한글)-009890-오지은.hwp -> 워드(한글)-009890-오지은.hml
|
||||
2025-01-16 18:26:35,547 - INFO - 변환 성공: 워드(한글)-009933-이지한.hwp -> 워드(한글)-009933-이지한.hml
|
||||
2025-01-16 18:26:37,117 - INFO - 변환 성공: 워드(한글)-009934-고서진.hwp -> 워드(한글)-009934-고서진.hml
|
||||
2025-01-16 18:26:38,028 - INFO - 변환 성공: 워드(한글)-009935-이가은.hwp -> 워드(한글)-009935-이가은.hml
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
110
score5.py
110
score5.py
@@ -1,13 +1,15 @@
|
||||
from datetime import datetime
|
||||
import json
|
||||
import glob
|
||||
from pathlib import Path
|
||||
import os
|
||||
from lxml import etree as ET
|
||||
import re
|
||||
from difflib import SequenceMatcher
|
||||
import pandas as pd
|
||||
# from xpathSearch import XMLPathHandler
|
||||
|
||||
from binaryToChartxml import binaryToChartxml
|
||||
|
||||
|
||||
class XMLScorer:
|
||||
# 채점 기준 경로 초기화
|
||||
@@ -21,21 +23,38 @@ class XMLScorer:
|
||||
return json.load(f)
|
||||
|
||||
# XML 파일에서 element의 값을 찾아 반환
|
||||
def query_xml(self, root, query):
|
||||
try:
|
||||
result = root.xpath(query)
|
||||
if type(result) is list and len(result) == 0:
|
||||
def query_xml(self, root, *args):
|
||||
points = args[2]
|
||||
if args[1] is not None:
|
||||
try:
|
||||
result = root.xpath(args[0])
|
||||
if type(result) is list and len(result) == 0:
|
||||
return None
|
||||
elif result < points:
|
||||
result = root.xpath(args[1])
|
||||
return result
|
||||
else:
|
||||
return result
|
||||
# result = root.xpath(args[1])
|
||||
# print(f'result : {result}')
|
||||
# return result
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
else:
|
||||
try:
|
||||
result = root.xpath(args[0])
|
||||
if type(result) is list and len(result) == 0:
|
||||
return None
|
||||
|
||||
return result
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
|
||||
return result
|
||||
except ET.XPathEvalError as e:
|
||||
return None
|
||||
|
||||
# 유사한 텍스트 찾기
|
||||
def find_similar_text(self, root, target_text, threshold=0.3):
|
||||
def find_similar_text(self, root, target_text, threshold=0.5):
|
||||
"""
|
||||
전체 문서에서 유사한 텍스트를 찾아 반환
|
||||
|
||||
|
||||
Args:
|
||||
root (_type_): xml root element 객체
|
||||
target_text (_type_): 찾을 텍스트
|
||||
@@ -47,6 +66,7 @@ class XMLScorer:
|
||||
# 전체 텍스트 추출
|
||||
# all_text = root.xpath(f"//CHAR/text()")
|
||||
# all_text.append(root.xpath(f"//TEXTART/@text"))
|
||||
|
||||
all_text = root.xpath(f"//CHAR/text() | //TEXTART/@Text")
|
||||
|
||||
# 유사도 비교
|
||||
@@ -64,7 +84,7 @@ class XMLScorer:
|
||||
return similar_text
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
# 하나의 XML 파일 채점
|
||||
def _score_xml_file(self, xml_path):
|
||||
try:
|
||||
@@ -84,24 +104,24 @@ class XMLScorer:
|
||||
|
||||
for criterion_id, criterion in self.scoring_criteria.items():
|
||||
xpath = criterion['path']
|
||||
xpath2 = criterion['path2']
|
||||
search_value = criterion['searchValue']
|
||||
right_answer = criterion['value']
|
||||
points = criterion['points']
|
||||
category = criterion['category']
|
||||
item = criterion['item']
|
||||
|
||||
simliar_text = None
|
||||
|
||||
# searchValue가 있을 경우 유사한 텍스트 찾기
|
||||
if search_value is not None:
|
||||
simliar_text = self.find_similar_text(root, search_value)
|
||||
if simliar_text is None:
|
||||
xpath = xpath.replace('{searchValue}', '')
|
||||
xpath = xpath.replace('{searchValue}', search_value)
|
||||
else:
|
||||
xpath = xpath.replace('{searchValue}', simliar_text)
|
||||
|
||||
# xpath로 실제 작성 답안 찾기
|
||||
result = self.query_xml(root, xpath)
|
||||
result = self.query_xml(root, xpath, xpath2, points)
|
||||
|
||||
# [ boolean 타입 ]
|
||||
# 1. 이텔릭체, 굵게, 밑줄 등 효과가 적용 여부에 따라
|
||||
@@ -112,18 +132,16 @@ class XMLScorer:
|
||||
# [ float 타입 ]
|
||||
# 1. 부분점수의 합산으로 반환되는 경우 float 타입으로 반환
|
||||
if type(result) is not list:
|
||||
actual_answer = result
|
||||
|
||||
# 표 같이 여러 조건을 동시에 검사 해야하는 경우우
|
||||
# elif type(result) is list and len(result) > 1:
|
||||
# xpath2 = criterion['path2']
|
||||
# for i in result:
|
||||
# xpath2 = xpath2.replace('{path_result_list}', str(i))
|
||||
# print(f"xpath2: {xpath2}")
|
||||
|
||||
if type(result) is float and (result > points):
|
||||
actual_answer = float(points)
|
||||
else:
|
||||
actual_answer = result
|
||||
else:
|
||||
actual_answer = result[0]
|
||||
|
||||
if type(right_answer) is int:
|
||||
actual_answer = int(result[0])
|
||||
else:
|
||||
actual_answer = result[0]
|
||||
|
||||
scoring = {
|
||||
'category': category, # 채점 분류
|
||||
'item': item, # 채점 항목
|
||||
@@ -132,26 +150,31 @@ class XMLScorer:
|
||||
'points': 0,
|
||||
'deductions': [] # 각 기준별 감점 내역
|
||||
}
|
||||
|
||||
scoring['points'] = points
|
||||
|
||||
# 점수 차감 조건
|
||||
# 1. 정답이 실수형으로 반환받은 경우는 채점항목의 부분점수 합산 결과이므로
|
||||
# 반환받은 값 그대로를 점수로 사용
|
||||
# 2. 그 외의 경우 정답과 실제 작성 답안이 다른 경우 점수 차감
|
||||
# 2. 정답이 정수형(사이즈 비교)의 경우 오차범위를 넘는다면 감점
|
||||
# 3. 그 외의 경우 정답과 실제 작성 답안이 다른 경우 점수 차감
|
||||
if type(actual_answer) is float:
|
||||
scoring['points'] = actual_answer
|
||||
scoring['points'] = actual_answer
|
||||
|
||||
elif type(actual_answer) is int:
|
||||
# 오차범위 5 이상이면 감점
|
||||
if abs(actual_answer - right_answer) > 5:
|
||||
scoring['points'] -= points
|
||||
else:
|
||||
# right_answer(JSON파일 내 valuer값) null일 경우 점수감점 없이 진행
|
||||
if right_answer != actual_answer:
|
||||
scoring['points'] -= points
|
||||
|
||||
|
||||
# 점수 차감 이유 작성 (개발중)
|
||||
|
||||
results['score_results'].append(scoring)
|
||||
total_score += scoring['points']
|
||||
|
||||
if scoring['points'] > 0:
|
||||
print(f'scoring: {scoring}')
|
||||
print(f'scoring: {scoring}')
|
||||
|
||||
results['total_score'] = total_score
|
||||
return results
|
||||
@@ -162,6 +185,7 @@ class XMLScorer:
|
||||
'error': f"XML 파싱 오류: {str(e)}",
|
||||
'total_score': 0
|
||||
}
|
||||
# def binary_to_chartxml(self, xml_path):
|
||||
|
||||
# XML 파일 채점
|
||||
def score_directory(self, xml_directory):
|
||||
@@ -173,11 +197,21 @@ class XMLScorer:
|
||||
results = []
|
||||
|
||||
for xml_file in xml_files:
|
||||
self.binary_to_chartxml(xml_file)
|
||||
result = self._score_xml_file(xml_file)
|
||||
results.append(result)
|
||||
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
def parse_filename(self, filename):
|
||||
if isinstance(filename, dict):
|
||||
filename = filename.get('파일명', '')
|
||||
match = re.match(r'.*-(\d+)-(.+)\.hml', filename)
|
||||
if match:
|
||||
number = match.group(1)
|
||||
name = match.group(2)
|
||||
return number, name
|
||||
return None, None
|
||||
|
||||
def export_to_excel(self, results, output_path=None):
|
||||
if output_path is None:
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
@@ -185,7 +219,6 @@ class XMLScorer:
|
||||
|
||||
summary_data = []
|
||||
detail_data = []
|
||||
header_added = False
|
||||
|
||||
for result in results:
|
||||
# 요약 정보
|
||||
@@ -200,7 +233,10 @@ class XMLScorer:
|
||||
|
||||
# 상세 정보
|
||||
if 'score_results' in result:
|
||||
detail_row = {'파일명': result['filename']}
|
||||
filename = {'파일명': result['filename']}
|
||||
number, name = self.parse_filename(filename)
|
||||
detail_row = {'수험자':f"{number}-{name}"}
|
||||
|
||||
for i, scoring in enumerate(result['score_results']):
|
||||
detail_row[f'점수_{i+1}'] = scoring['points']
|
||||
|
||||
@@ -208,7 +244,7 @@ class XMLScorer:
|
||||
detail_data.append(detail_row)
|
||||
|
||||
summary_df = pd.DataFrame(summary_data)
|
||||
detail_df = pd.DataFrame(detail_data)
|
||||
detail_df = pd.DataFrame(detail_data).transpose()
|
||||
# detail_df = pd.DataFrame(detail_data)
|
||||
|
||||
# ExcelWriter 객체 생성
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"0-1":{
|
||||
"path":"boolean(//PAGEMARGIN[@Bottom='5669' and @Footer='2834' and @Gutter='0' and @Header='2834' and @Left='5669' and @Right='5669' and @Top='5669'])",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
@@ -9,6 +10,7 @@
|
||||
},
|
||||
"0-2":{
|
||||
"path":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
@@ -17,206 +19,232 @@
|
||||
},
|
||||
"0-3":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -2점"
|
||||
},
|
||||
"1":{
|
||||
"1-1":{
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "궁서체",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"글씨체 (궁서체)"
|
||||
},
|
||||
"2": {
|
||||
"1-2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "10040115",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"채우기 : 색상(RGB:51,51,153)"
|
||||
},
|
||||
"3": {
|
||||
"1-3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "36850",
|
||||
"value": 36850,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"크기-너비 (130mm)"
|
||||
},
|
||||
"4": {
|
||||
"1-4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "5669",
|
||||
"value": 5669,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"크기-높이 (20mm)"
|
||||
},
|
||||
"5": {
|
||||
"1-5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"1-6": {
|
||||
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"7":{
|
||||
"1-7":{
|
||||
"path": "",
|
||||
"path2": null,
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": null,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
|
||||
"1-8": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][BOLD])",
|
||||
"path2": null,
|
||||
"searchValue": "‘즐거운 컬러푸드 영양교실’",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "글꼴속성",
|
||||
"item":"진하게"
|
||||
},
|
||||
"9": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||
"1-9": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'{searchValue}')]/parent::TEXT/@CharShape][ITALIC])",
|
||||
"path2": null,
|
||||
"searchValue": "‘즐거운 컬러푸드 영양교실’",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "글꼴속성",
|
||||
"item":"기울임"
|
||||
},
|
||||
"10": {
|
||||
"path": "string-length(//CHAR[contains(text(),'♤')]) - string-length(translate(//CHAR[contains(text(),'♤')], '♤', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))",
|
||||
"1-10": {
|
||||
"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.0,
|
||||
"points": 3,
|
||||
"category": "특수문자",
|
||||
"item":"♤, ♤, ※"
|
||||
},
|
||||
"11": {
|
||||
"1-11": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"1-12": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"13": {
|
||||
"1-13": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||
"path2": null,
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
|
||||
"value": true,
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"기울임"
|
||||
},
|
||||
"14": {
|
||||
"1-14": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
|
||||
"path2": null,
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
|
||||
"value": true,
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"밑줄"
|
||||
},
|
||||
"15": {
|
||||
"1-15": {
|
||||
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3600 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2000)",
|
||||
"path2": null,
|
||||
"searchValue": "※ 기타",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "문단모양",
|
||||
"item":"왼쪽여백 (18pt), 내어쓰기 (10pt)"
|
||||
},
|
||||
"16": {
|
||||
"1-16": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "2024. 1. 27.",
|
||||
"value": "1100",
|
||||
"value": 1100,
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"크기 (11pt)"
|
||||
},
|
||||
"17": {
|
||||
"1-17": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "2024. 1. 27.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"18": {
|
||||
"1-18": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "한양중고딕",
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"글씨체 (중고딕)"
|
||||
},
|
||||
"19": {
|
||||
"1-19": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "2200",
|
||||
"value": 2200,
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"크기 (22pt)"
|
||||
},
|
||||
"20": {
|
||||
"1-20": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"21": {
|
||||
"1-21": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"글꼴 (돋움체)"
|
||||
},
|
||||
"22": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"1-22": {
|
||||
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"value": 900,
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"크기 (9pt)"
|
||||
},
|
||||
"23": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"1-23": {
|
||||
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"24": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"1-24": {
|
||||
"path": "//SECTION[1]//PAGENUM/@FormatType",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "쪽번호",
|
||||
"item":"쪽 번호 매기기 (A,B,C 순으로)"
|
||||
},
|
||||
"25": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"1-25": {
|
||||
"path": "//SECTION[1]//PAGENUM/@Pos",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
@@ -224,207 +252,233 @@
|
||||
"item":"가운데 아래"
|
||||
},
|
||||
"2-01":{
|
||||
"path":"boolean(//SECTION[2]//PAGEBORDERFILL[@Type='Both']/@HeaderInside='true' and //BORDERFILL[@Id=//SECTION[2]//PAGEBORDERFILL[@Type='Both']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||
"path":"boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "쪽 테두리",
|
||||
"item": "이중 실선, 머리말 포함"
|
||||
},
|
||||
"2-02":{
|
||||
"path":"//NUMBERINGLIST/@Count > 1",
|
||||
"path":"count(//SECTION)>1",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "다단",
|
||||
"item": "① 구역나누기"
|
||||
},
|
||||
"2-03":{
|
||||
"path":"/HWPML/BODY/SECTION[2]/P[2]/TEXT/COLDEF/@Count=2",
|
||||
"path":"//COLDEF/@Count>1",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "다단",
|
||||
"item": "② 다단 2단"
|
||||
},
|
||||
"2-04":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"11339",
|
||||
"value":11339,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "① 크기-너비 (40mm)"
|
||||
},
|
||||
"2-05":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"3402",
|
||||
"value":3402,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "② 크기-높이 (12mm)"
|
||||
},
|
||||
"2-06":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "③ 테두리 (이중 실선(1.00mm))"
|
||||
},
|
||||
"2-07":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio>0",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "④ 글상자 모서리 (둥근 모양)"
|
||||
},
|
||||
"2-08":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"12813762",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "⑤ 채우기 : 색상(RGB:194,133,195) "
|
||||
},
|
||||
"2-09":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"true",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "⑥ 글상자 위치 (글자처럼 취급)"
|
||||
},
|
||||
"2-10":{
|
||||
"path":"//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "⑦ 글상자 정렬 (가운데 정렬)"
|
||||
},
|
||||
"2-11":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"한양견고딕",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "⑧ 글씨체 (견고딕)"
|
||||
},
|
||||
"2-12":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='1600' and //CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "⑨ 글씨크기 (16pt), 진하게",
|
||||
"item": "글상자"
|
||||
},
|
||||
"2-13":{
|
||||
"path":"//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"Center",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "글상자",
|
||||
"item": "⑩ 정렬 (가운데 정렬)"
|
||||
},
|
||||
"2-14":{
|
||||
"path":"boolean(//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
|
||||
"path2": null,
|
||||
"searchValue": "그림D.jpg",
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": "14"
|
||||
"category": "그림삽입",
|
||||
"item": "① 파일명 '그림D.jpg' 삽입"
|
||||
},
|
||||
"2-15":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"11339",
|
||||
"value":11339,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": "15"
|
||||
"category": "그림삽입",
|
||||
"item": "② 크기-너비 (40mm)"
|
||||
},
|
||||
"2-16":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"8504",
|
||||
"value":8504,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "그림삽입",
|
||||
"item": "③ 크기-높이 (30mm)"
|
||||
},
|
||||
"2-17":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"0",
|
||||
"value":0,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "그림삽입",
|
||||
"item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0.0mm)"
|
||||
},
|
||||
"2-18":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"6520",
|
||||
"value":6520,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "그림삽입",
|
||||
"item": "⑤ 위치 (어울림 : 세로-쪽의 위 23mm)"
|
||||
},
|
||||
"2-19":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='1. 컬러푸드란']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":"굴림",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "속성",
|
||||
"item": "① 글씨체 (굴림)"
|
||||
},
|
||||
"2-20":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='1. 컬러푸드란']/parent::TEXT/@CharShape]/@Height",
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":"1100",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"value":1100,
|
||||
"points": 1,
|
||||
"category": "속성",
|
||||
"item": "② 크기 (11pt)"
|
||||
},
|
||||
"2-21":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='1. 컬러푸드란']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path2": null,
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "속성",
|
||||
"item": "③ 진하게"
|
||||
},
|
||||
"2-22":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='2. 컬러푸드의 효능']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":"굴림",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "속성",
|
||||
"item": "① 글씨체 (굴림)"
|
||||
},
|
||||
"2-23":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='2. 컬러푸드의 효능']/parent::TEXT/@CharShape]/@Height",
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":"1100",
|
||||
"value":1100,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "속성",
|
||||
"item": "② 크기 (11pt)"
|
||||
},
|
||||
"2-24":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='2. 컬러푸드의 효능']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path2": null,
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "속성",
|
||||
"item": "③ 진하게"
|
||||
},
|
||||
"2-25":{
|
||||
"path":"boolean(//CHAR[contains(text(),'항산화 작용')]/following-sibling::FOOTNOTE/descendant::CHAR[contains(text(),'산화를 억제하는 작용')])",
|
||||
"searchValue": "항산화 작용",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"category": "각주",
|
||||
"item": ""
|
||||
},
|
||||
"2-26":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'산화를 억제하는 작용')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "산화를 억제하는 작용",
|
||||
"value": "굴림",
|
||||
"points": 2,
|
||||
@@ -432,15 +486,17 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-27":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[contains(text(),'산화를 억제하는 작용')]/parent::TEXT/@CharShape]/@Height",
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "산화를 억제하는 작용",
|
||||
"value":"900",
|
||||
"value":900,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-28":{
|
||||
"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,
|
||||
@@ -448,23 +504,26 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-29":{
|
||||
"path":"boolean(//CHAR[text()='서로 다른 색과 맛을'])",
|
||||
"path":"boolean(//CHAR[contains(text(),'맛을')])",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "편집",
|
||||
"item": "'이' → '을' 글자바꿈"
|
||||
},
|
||||
"2-30":{
|
||||
"path":"boolean(//CHAR[text()='혈관을 튼튼하게'])",
|
||||
"path":"boolean(//CHAR[contains(text(),'을 튼')])",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "편집",
|
||||
"item": "'튼튼하게' / '혈관을' 순서바꿈"
|
||||
},
|
||||
"2-31":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value":"굴림체",
|
||||
"points": 1,
|
||||
@@ -473,14 +532,16 @@
|
||||
},
|
||||
"2-32":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value": "1100",
|
||||
"value": 1100,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-33":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path2": null,
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
@@ -489,6 +550,7 @@
|
||||
},
|
||||
"2-34":{
|
||||
"path":"//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
@@ -497,6 +559,7 @@
|
||||
},
|
||||
"2-35":{
|
||||
"path":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value": "6268159",
|
||||
"points": 2,
|
||||
@@ -505,6 +568,7 @@
|
||||
},
|
||||
"2-36":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
@@ -513,6 +577,7 @@
|
||||
},
|
||||
"2-37":{
|
||||
"path":"boolean(//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER[@Type='DoubleSlim' and @Width='0.5mm'])",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
@@ -521,6 +586,7 @@
|
||||
},
|
||||
"2-38":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"궁서",
|
||||
"points": 2,
|
||||
@@ -529,32 +595,153 @@
|
||||
},
|
||||
"2-39":{
|
||||
"path":"//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"1000",
|
||||
"value":1000,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-40":{
|
||||
"path":"//PARASHAPE[@Id=//TABLE/ROW/descendant::P/@ParaShape]/@Align",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"Center",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-41":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-42":{
|
||||
"path":"//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"22677",
|
||||
"value":22677,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-43":{
|
||||
"path":"//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":"25511",
|
||||
"value":25511,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-44":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-45":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-46":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-47":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-48":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-49":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-50":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-51":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-52":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-53":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-54":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-55":{
|
||||
"path":"",
|
||||
"path2": null,
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
|
||||
12
scoring_criteria2.json
Normal file
12
scoring_criteria2.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"1-10": {
|
||||
"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.0,
|
||||
"points": 3,
|
||||
"category": "특수문자",
|
||||
"item":"♤, ♤, ※"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,18 +4,26 @@
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "용지설정",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"0-2":{
|
||||
"path":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//STYLE[@Name='바탕글']/@CharShape]/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE[@Id=//STYLE[@Name='바탕글']/@CharShape]/@Height='1000' and //PARASHAPE[@Id=//STYLE[@Name='바탕글']/@ParaShape][PARAMARGIN/@LineSpacing='160' and @Align='Justify'])",
|
||||
"path":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "기본설정",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"1":{
|
||||
"0-3":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -2점"
|
||||
},
|
||||
"1-1":{
|
||||
"path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "궁서체",
|
||||
@@ -23,7 +31,7 @@
|
||||
"category": "글맵시",
|
||||
"item":"글씨체 (궁서체)"
|
||||
},
|
||||
"2": {
|
||||
"1-2": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "10040115",
|
||||
@@ -31,23 +39,23 @@
|
||||
"category": "글맵시",
|
||||
"item":"채우기 : 색상(RGB:51,51,153)"
|
||||
},
|
||||
"3": {
|
||||
"1-3": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "36850",
|
||||
"value": 36850,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"크기-너비 (130mm)"
|
||||
},
|
||||
"4": {
|
||||
"1-4": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "5669",
|
||||
"value": 5669,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"크기-높이 (20mm)"
|
||||
},
|
||||
"5": {
|
||||
"1-5": {
|
||||
"path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "true",
|
||||
@@ -55,7 +63,7 @@
|
||||
"category": "글맵시",
|
||||
"item":"위치 (글자처럼 취급)"
|
||||
},
|
||||
"6": {
|
||||
"1-6": {
|
||||
"path": "//PARASHAPE[@Id=//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "Center",
|
||||
@@ -63,7 +71,7 @@
|
||||
"category": "글맵시",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"7":{
|
||||
"1-7":{
|
||||
"path": "",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": null,
|
||||
@@ -71,7 +79,7 @@
|
||||
"category": "글맵시",
|
||||
"item":"글맵시모양 (육안확인)"
|
||||
},
|
||||
"8": {
|
||||
"1-8": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
|
||||
"searchValue": "‘즐거운 컬러푸드 영양교실’",
|
||||
"value": true,
|
||||
@@ -79,7 +87,7 @@
|
||||
"category": "글꼴속성",
|
||||
"item":"진하게"
|
||||
},
|
||||
"9": {
|
||||
"1-9": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||
"searchValue": "‘즐거운 컬러푸드 영양교실’",
|
||||
"value": true,
|
||||
@@ -87,7 +95,7 @@
|
||||
"category": "글꼴속성",
|
||||
"item":"기울임"
|
||||
},
|
||||
"10": {
|
||||
"1-10": {
|
||||
"path": "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.0,
|
||||
@@ -95,7 +103,7 @@
|
||||
"category": "특수문자",
|
||||
"item":"♤, ♤, ※"
|
||||
},
|
||||
"11": {
|
||||
"1-11": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림체",
|
||||
@@ -103,7 +111,7 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"글씨체 (굴림체)"
|
||||
},
|
||||
"12": {
|
||||
"1-12": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "행사안내",
|
||||
"value": "Center",
|
||||
@@ -111,7 +119,7 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"13": {
|
||||
"1-13": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
|
||||
"value": true,
|
||||
@@ -119,7 +127,7 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"기울임"
|
||||
},
|
||||
"14": {
|
||||
"1-14": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
|
||||
"value": true,
|
||||
@@ -127,7 +135,7 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"밑줄"
|
||||
},
|
||||
"15": {
|
||||
"1-15": {
|
||||
"path": "boolean(//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3600 and //PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2000)",
|
||||
"searchValue": "※ 기타",
|
||||
"value": true,
|
||||
@@ -135,15 +143,15 @@
|
||||
"category": "문단모양",
|
||||
"item":"왼쪽여백 (18pt), 내어쓰기 (10pt)"
|
||||
},
|
||||
"16": {
|
||||
"1-16": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2024. 1. 27.",
|
||||
"value": "1100",
|
||||
"value": 1100,
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"크기 (11pt)"
|
||||
},
|
||||
"17": {
|
||||
"1-17": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2024. 1. 27.",
|
||||
"value": "Center",
|
||||
@@ -151,7 +159,7 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"18": {
|
||||
"1-18": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "한양중고딕",
|
||||
@@ -159,15 +167,15 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"글씨체 (중고딕)"
|
||||
},
|
||||
"19": {
|
||||
"1-19": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "2200",
|
||||
"value": 2200,
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"크기 (22pt)"
|
||||
},
|
||||
"20": {
|
||||
"1-20": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "Center",
|
||||
@@ -175,7 +183,7 @@
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"21": {
|
||||
"1-21": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
@@ -183,15 +191,15 @@
|
||||
"category": "머리말",
|
||||
"item":"글꼴 (돋움체)"
|
||||
},
|
||||
"22": {
|
||||
"1-22": {
|
||||
"path": "//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": "900",
|
||||
"value": 900,
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"크기 (9pt)"
|
||||
},
|
||||
"23": {
|
||||
"1-23": {
|
||||
"path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
@@ -199,7 +207,7 @@
|
||||
"category": "머리말",
|
||||
"item":"정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"24": {
|
||||
"1-24": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"searchValue": null,
|
||||
"value": "LatinCapital",
|
||||
@@ -207,7 +215,7 @@
|
||||
"category": "쪽번호",
|
||||
"item":"쪽 번호 매기기 (A,B,C 순으로)"
|
||||
},
|
||||
"25": {
|
||||
"1-25": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"searchValue": null,
|
||||
"value": "BottomCenter",
|
||||
@@ -216,7 +224,7 @@
|
||||
"item":"가운데 아래"
|
||||
},
|
||||
"2-01":{
|
||||
"path":"boolean(//SECTION[2]//PAGEBORDERFILL[@Type='Both']/@HeaderInside='true' and //BORDERFILL[@Id=//SECTION[2]//PAGEBORDERFILL[@Type='Both']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||
"path":"boolean(//PAGEBORDERFILL[@Type='Both']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
@@ -224,7 +232,7 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-02":{
|
||||
"path":"//NUMBERINGLIST/@Count > 1",
|
||||
"path":"count(//SECTION)>1",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 3,
|
||||
@@ -242,7 +250,7 @@
|
||||
"2-04":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"11339",
|
||||
"value":11339,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -250,7 +258,7 @@
|
||||
"2-05":{
|
||||
"path":"//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"3402",
|
||||
"value":3402,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -330,7 +338,7 @@
|
||||
"2-15":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": null,
|
||||
"value":"11339",
|
||||
"value":11339,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": "15"
|
||||
@@ -338,7 +346,7 @@
|
||||
"2-16":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": null,
|
||||
"value":"8504",
|
||||
"value":8504,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -346,7 +354,7 @@
|
||||
"2-17":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
||||
"searchValue": null,
|
||||
"value":"0",
|
||||
"value":0,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -354,13 +362,13 @@
|
||||
"2-18":{
|
||||
"path":"//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
||||
"searchValue": null,
|
||||
"value":"6520",
|
||||
"value":6520,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-19":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='1. 컬러푸드란']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":"굴림",
|
||||
"points": 1,
|
||||
@@ -368,15 +376,15 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-20":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='1. 컬러푸드란']/parent::TEXT/@CharShape]/@Height",
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":"1100",
|
||||
"value":1100,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-21":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='1. 컬러푸드란']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
@@ -384,7 +392,7 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-22":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='2. 컬러푸드의 효능']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":"굴림",
|
||||
"points": 1,
|
||||
@@ -392,15 +400,15 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-23":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='2. 컬러푸드의 효능']/parent::TEXT/@CharShape]/@Height",
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":"1100",
|
||||
"value":1100,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-24":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='2. 컬러푸드의 효능']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"path":"boolean(//CHARSHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
@@ -408,7 +416,7 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-25":{
|
||||
"path":"boolean(//CHAR[contains(text(),'항산화 작용')]/following-sibling::FOOTNOTE/descendant::CHAR[contains(text(),'산화를 억제하는 작용')])",
|
||||
"path":"boolean(//CHAR[contains(text(),'{searchValue}')]/following-sibling::FOOTNOTE/descendant::CHAR[contains(text(),'산화를 억제하는 작용')])",
|
||||
"searchValue": "항산화 작용",
|
||||
"value":true,
|
||||
"points": 3,
|
||||
@@ -416,7 +424,7 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-26":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'산화를 억제하는 작용')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "산화를 억제하는 작용",
|
||||
"value": "굴림",
|
||||
"points": 2,
|
||||
@@ -424,9 +432,9 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-27":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[contains(text(),'산화를 억제하는 작용')]/parent::TEXT/@CharShape]/@Height",
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "산화를 억제하는 작용",
|
||||
"value":"900",
|
||||
"value":900,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -440,20 +448,20 @@
|
||||
"item": ""
|
||||
},
|
||||
"2-29":{
|
||||
"path":"boolean(//CHAR[text()='서로 다른 색과 맛이'])",
|
||||
"path":"boolean(//CHAR[contains(text(),'맛을')])",
|
||||
"searchValue": null,
|
||||
"value":false,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "편집",
|
||||
"item": "'이' → '을' 글자바꿈"
|
||||
},
|
||||
"2-30":{
|
||||
"path":"boolean(//CHAR[text()='튼튼하게 혈관을'])",
|
||||
"path":"boolean(//CHAR[contains(text(),'을 튼')])",
|
||||
"searchValue": null,
|
||||
"value":false,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
"category": "편집",
|
||||
"item": "'튼튼하게' / '혈관을' 순서바꿈"
|
||||
},
|
||||
"2-31":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
@@ -466,7 +474,7 @@
|
||||
"2-32":{
|
||||
"path":"//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value": "1100",
|
||||
"value": 1100,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -522,7 +530,7 @@
|
||||
"2-39":{
|
||||
"path":"//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
||||
"searchValue": null,
|
||||
"value":"1000",
|
||||
"value":1000,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -538,15 +546,15 @@
|
||||
"2-41":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"value":null,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-42":{
|
||||
"path":"//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
||||
"searchValue": null,
|
||||
"value":"22677",
|
||||
"value":22677,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -554,7 +562,7 @@
|
||||
"2-43":{
|
||||
"path":"//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
||||
"searchValue": null,
|
||||
"value":"25511",
|
||||
"value":25511,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -562,7 +570,7 @@
|
||||
"2-44":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -570,7 +578,7 @@
|
||||
"2-45":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -578,7 +586,7 @@
|
||||
"2-46":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -586,7 +594,7 @@
|
||||
"2-47":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -594,7 +602,7 @@
|
||||
"2-48":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -602,7 +610,7 @@
|
||||
"2-49":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -610,7 +618,7 @@
|
||||
"2-50":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -618,7 +626,7 @@
|
||||
"2-51":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -626,7 +634,7 @@
|
||||
"2-52":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -634,7 +642,7 @@
|
||||
"2-53":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -642,7 +650,7 @@
|
||||
"2-54":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
@@ -650,7 +658,7 @@
|
||||
"2-55":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
666
scoring_criteria_section_separation.json
Normal file
666
scoring_criteria_section_separation.json
Normal file
@@ -0,0 +1,666 @@
|
||||
{
|
||||
"0-1":{
|
||||
"path":"boolean(//PAGEMARGIN[@Bottom='5669' and @Footer='2834' and @Gutter='0' and @Header='2834' and @Left='5669' and @Right='5669' and @Top='5669'])",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
"category": "용지설정",
|
||||
"item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)"
|
||||
},
|
||||
"0-2":{
|
||||
"path":"boolean(//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE/FONTID/@Hangul]/@Name='바탕' and //CHARSHAPE/@Height='1000' and //PARASHAPE/PARAMARGIN/@LineSpacing='160' and //PARASHAPE/@Align='Justify')",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
"category": "기본설정",
|
||||
"item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)"
|
||||
},
|
||||
"0-3":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 40,
|
||||
"category": "오타감점",
|
||||
"item": "오타 1개 -2점"
|
||||
},
|
||||
"1-1":{
|
||||
"path": "//SECTION[1]//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "궁서체",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"글씨체 (궁서체)"
|
||||
},
|
||||
"1-2": {
|
||||
"path": "//SECTION[1]//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "10040115",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"채우기 : 색상(RGB:51,51,153)"
|
||||
},
|
||||
"1-3": {
|
||||
"path": "//SECTION[1]//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": 36850,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"크기-너비 (130mm)"
|
||||
},
|
||||
"1-4": {
|
||||
"path": "//SECTION[1]//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": 5669,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"크기-높이 (20mm)"
|
||||
},
|
||||
"1-5": {
|
||||
"path": "//SECTION[1]//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "true",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"위치 (글자처럼 취급)"
|
||||
},
|
||||
"1-6": {
|
||||
"path": "//PARASHAPE[@Id=//SECTION[1]//TEXTART[@Text='{searchValue}']/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"1-7":{
|
||||
"path": "",
|
||||
"searchValue": "즐거운컬러푸드영양교실",
|
||||
"value": null,
|
||||
"points": 2,
|
||||
"category": "글맵시",
|
||||
"item":"글맵시모양 (육안확인)"
|
||||
},
|
||||
"1-8": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][BOLD])",
|
||||
"searchValue": "‘즐거운 컬러푸드 영양교실’",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "글꼴속성",
|
||||
"item":"진하게"
|
||||
},
|
||||
"1-9": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||
"searchValue": "‘즐거운 컬러푸드 영양교실’",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "글꼴속성",
|
||||
"item":"기울임"
|
||||
},
|
||||
"1-10": {
|
||||
"path": "string-length(//SECTION[1]//CHAR[contains(text(),'♤')]) - string-length(translate(//SECTION[1]//CHAR[contains(text(),'♤')], '♤', '')) + string-length(//SECTION[1]//CHAR[contains(text(),'※')]) - string-length(translate(//SECTION[1]//CHAR[contains(text(),'※')], '※', ''))",
|
||||
"searchValue": null,
|
||||
"value": 3.0,
|
||||
"points": 3,
|
||||
"category": "특수문자",
|
||||
"item":"♤, ♤, ※"
|
||||
},
|
||||
"1-11": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "행사안내",
|
||||
"value": "굴림체",
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"글씨체 (굴림체)"
|
||||
},
|
||||
"1-12": {
|
||||
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "행사안내",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"1-13": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][ITALIC])",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
|
||||
"value": true,
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"기울임"
|
||||
},
|
||||
"1-14": {
|
||||
"path": "boolean(//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape][UNDERLINE])",
|
||||
"searchValue": "홈페이지(http://www.ihd.or.kr)를 통해 선착순 접수",
|
||||
"value": true,
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"밑줄"
|
||||
},
|
||||
"1-15": {
|
||||
"path": "boolean(//PARASHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Left=3600 and //PARASHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN/@Indent=-2000)",
|
||||
"searchValue": "※ 기타",
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "문단모양",
|
||||
"item":"왼쪽여백 (18pt), 내어쓰기 (10pt)"
|
||||
},
|
||||
"1-16": {
|
||||
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2024. 1. 27.",
|
||||
"value": 1100,
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"크기 (11pt)"
|
||||
},
|
||||
"1-17": {
|
||||
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "2024. 1. 27.",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"1-18": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "한양중고딕",
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"글씨체 (중고딕)"
|
||||
},
|
||||
"1-19": {
|
||||
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "용일동보건소",
|
||||
"value": 2200,
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"크기 (22pt)"
|
||||
},
|
||||
"1-20": {
|
||||
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "용일동보건소",
|
||||
"value": "Center",
|
||||
"points": 2,
|
||||
"category": "글꼴 속성",
|
||||
"item":"정렬 (가운데 정렬)"
|
||||
},
|
||||
"1-21": {
|
||||
"path": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "DIAT",
|
||||
"value": "돋움체",
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"글꼴 (돋움체)"
|
||||
},
|
||||
"1-22": {
|
||||
"path": "//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "DIAT",
|
||||
"value": 900,
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"크기 (9pt)"
|
||||
},
|
||||
"1-23": {
|
||||
"path": "//PARASHAPE[@Id=//SECTION[1]//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align",
|
||||
"searchValue": "DIAT",
|
||||
"value": "Right",
|
||||
"points": 2,
|
||||
"category": "머리말",
|
||||
"item":"정렬 (오른쪽 정렬)"
|
||||
},
|
||||
"1-24": {
|
||||
"path": "//PAGENUM/@FormatType",
|
||||
"searchValue": null,
|
||||
"value": "LatinCapital",
|
||||
"points": 2,
|
||||
"category": "쪽번호",
|
||||
"item":"쪽 번호 매기기 (A,B,C 순으로)"
|
||||
},
|
||||
"1-25": {
|
||||
"path": "//PAGENUM/@Pos",
|
||||
"searchValue": null,
|
||||
"value": "BottomCenter",
|
||||
"points": 2,
|
||||
"category": "쪽번호",
|
||||
"item":"가운데 아래"
|
||||
},
|
||||
"2-01":{
|
||||
"path":"boolean(//SECTION[2]//PAGEBORDERFILL[@Type='Both']/@HeaderInside='true' and //BORDERFILL[@Id=//SECTION[2]//PAGEBORDERFILL[@Type='Both']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 4,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-02":{
|
||||
"path":"count(//SECTION)>1",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-03":{
|
||||
"path":"/HWPML/BODY/SECTION[2]/P[2]/TEXT/COLDEF/@Count=2",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-04":{
|
||||
"path":"//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":11339,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-05":{
|
||||
"path":"//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":3402,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-06":{
|
||||
"path":"//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::LINESHAPE/@Style",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"DoubleSlim",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-07":{
|
||||
"path":"//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/@Ratio>0",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-08":{
|
||||
"path":"//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"12813762",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-09":{
|
||||
"path":"//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"true",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-10":{
|
||||
"path":"//PARASHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::P[last()]/@ParaShape]/@Align",
|
||||
"searchValue": "컬러푸드",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-11":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"한양견고딕",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-12":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height='1600' and //CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-13":{
|
||||
"path":"//PARASHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/ancestor::P[1]/@ParaShape]/@Align",
|
||||
"searchValue": "컬러푸드",
|
||||
"value":"Center",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-14":{
|
||||
"path":"boolean(//SECTION[2]//PICTURE/descendant::SHAPECOMMENT[contains(text(),'{searchValue}')])",
|
||||
"searchValue": "그림D.jpg",
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": "14"
|
||||
},
|
||||
"2-15":{
|
||||
"path":"//SECTION[2]//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Width",
|
||||
"searchValue": null,
|
||||
"value":11339,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": "15"
|
||||
},
|
||||
"2-16":{
|
||||
"path":"//SECTION[2]//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/SIZE/@Height",
|
||||
"searchValue": null,
|
||||
"value":8504,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-17":{
|
||||
"path":"//SECTION[2]//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@HorzOffset",
|
||||
"searchValue": null,
|
||||
"value":0,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-18":{
|
||||
"path":"//SECTION[2]//IMAGE[@BinItem=//BINITEM[@Format='JPG']/@BinData]/preceding-sibling::SHAPEOBJECT/POSITION/@VertOffset",
|
||||
"searchValue": null,
|
||||
"value":6520,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-19":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":"굴림",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-20":{
|
||||
"path":"//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":1100,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-21":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": "1. 컬러푸드란",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-22":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":"굴림",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-23":{
|
||||
"path":"//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":1100,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-24":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//SECTION[2]//CHAR[text()='{searchValue}']/parent::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": "2. 컬러푸드의 효능",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-25":{
|
||||
"path":"boolean(//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/following-sibling::FOOTNOTE/descendant::CHAR[contains(text(),'산화를 억제하는 작용')])",
|
||||
"searchValue": "항산화 작용",
|
||||
"value":true,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-26":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "산화를 억제하는 작용",
|
||||
"value": "굴림",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-27":{
|
||||
"path":"//CHARSHAPE[@Id=//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "산화를 억제하는 작용",
|
||||
"value":900,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-28":{
|
||||
"path":"(count(//SECTION[2]//CHAR[contains(text(),'미생물')][contains(text(),'微生物')])+count(//SECTION[2]//CHAR[contains(text(),'해충')][contains(text(),'害蟲')])+count(//SECTION[2]//CHAR[contains(text(),'재생')][contains(text(),'再生')])+count(//SECTION[2]//CHAR[contains(text(),'노화')][contains(text(),'老化')])+count(//SECTION[2]//CHAR[contains(text(),'오골계')][contains(text(),'烏骨鷄')]))*2",
|
||||
"searchValue": null,
|
||||
"value": 10,
|
||||
"points": 10,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-29":{
|
||||
"path":"boolean(//SECTION[2]//CHAR[contains(text(),'맛을')])",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "편집",
|
||||
"item": "'이' → '을' 글자바꿈"
|
||||
},
|
||||
"2-30":{
|
||||
"path":"boolean(//SECTION[2]//CHAR[contains(text(),'을 튼')])",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "편집",
|
||||
"item": "'튼튼하게' / '혈관을' 순서바꿈"
|
||||
},
|
||||
"2-31":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value":"굴림체",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-32":{
|
||||
"path":"//CHARSHAPE[@Id=//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height",
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value": 1100,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-33":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value":true,
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-34":{
|
||||
"path":"//PARASHAPE[@Id=//SECTION[2]//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align",
|
||||
"searchValue": "과일야채 항산화지수 비교",
|
||||
"value": "Center",
|
||||
"points": 1,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-35":{
|
||||
"path":"//BORDERFILL[@Id=//SECTION[2]//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor",
|
||||
"searchValue": null,
|
||||
"value": "6268159",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-36":{
|
||||
"path":"boolean(//CHARSHAPE[@Id=//SECTION[2]//TABLE/ROW[1]/descendant::TEXT/@CharShape]/BOLD)",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-37":{
|
||||
"path":"boolean(//BORDERFILL[@Id=//SECTION[2]//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER[@Type='DoubleSlim' and @Width='0.5mm'])",
|
||||
"searchValue": null,
|
||||
"value":true,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-38":{
|
||||
"path":"//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//SECTION[2]//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name",
|
||||
"searchValue": null,
|
||||
"value":"궁서",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-39":{
|
||||
"path":"//CHARSHAPE[@Id=//SECTION[2]//TABLE/ROW/descendant::TEXT/@CharShape]/@Height",
|
||||
"searchValue": null,
|
||||
"value":1000,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-40":{
|
||||
"path":"//PARASHAPE[@Id=//SECTION[2]//TABLE/ROW/descendant::P/@ParaShape]/@Align",
|
||||
"searchValue": null,
|
||||
"value":"Center",
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-41":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 3,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-42":{
|
||||
"path":"//SECTION[2]//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Width",
|
||||
"searchValue": null,
|
||||
"value":22677,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-43":{
|
||||
"path":"//SECTION[2]//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]/descendant::SIZE/@Height",
|
||||
"searchValue": null,
|
||||
"value":25511,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-44":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-45":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-46":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-47":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-48":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-49":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-50":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-51":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-52":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-53":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-54":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
},
|
||||
"2-55":{
|
||||
"path":"",
|
||||
"searchValue": null,
|
||||
"value":null,
|
||||
"points": 2,
|
||||
"category": "",
|
||||
"item": ""
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"1":{
|
||||
"path": "//TABLE/ROW[1]/CELL/@BorderFill",
|
||||
"path2": "boolean(//CHARSHAPE[@Id='{path_result_list}']/BOLD)",
|
||||
"searchValue": null,
|
||||
"value": true,
|
||||
"points": 2,
|
||||
"category": "표",
|
||||
"item":"진하게"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
12
test.py
12
test.py
@@ -53,8 +53,8 @@ def convert_hwp_to_xml(input_folder, output_folder):
|
||||
|
||||
# 자동화 보안 설정
|
||||
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
|
||||
# hwp.XHwpWindows.Item(0).Visible = False
|
||||
hwp.XHwpWindows.Item(0).Visible = True
|
||||
hwp.XHwpWindows.Item(0).Visible = False
|
||||
# hwp.XHwpWindows.Item(0).Visible = True
|
||||
|
||||
# 출력 폴더가 없으면 생성
|
||||
os.makedirs(output_folder, exist_ok=True)
|
||||
@@ -126,12 +126,12 @@ if __name__ == "__main__":
|
||||
|
||||
|
||||
# 변환할 폴더 경로 설정
|
||||
# input_folder = r"C:\Users\dra\project\HWP-Scoring\input" # HWP 파일이 있는 폴더
|
||||
# output_folder = r"C:\Users\dra\project\HWP-Scoring\output" # XML 파일을 저장할 폴더
|
||||
input_folder = r"C:\Users\dra\project\HWP-Scoring\input" # HWP 파일이 있는 폴더
|
||||
output_folder = r"C:\Users\dra\project\HWP-Scoring\output" # XML 파일을 저장할 폴더
|
||||
|
||||
# 변환할 폴더 경로 설정
|
||||
input_folder = r"C:\Users\gzero-ser7-win11\Project\KAIT\hwpTest\input" # HWP 파일이 있는 폴더
|
||||
output_folder = r"C:\Users\gzero-ser7-win11\Project\KAIT\hwpTest\output" # XML 파일을 저장할 폴더
|
||||
# input_folder = r"C:\Users\gzero-ser7-win11\Project\KAIT\hwpTest\input" # HWP 파일이 있는 폴더
|
||||
# output_folder = r"C:\Users\gzero-ser7-win11\Project\KAIT\hwpTest\output" # XML 파일을 저장할 폴더
|
||||
|
||||
|
||||
# output_folder = r"\hwp-output" # HWP 파일이 있는 폴더
|
||||
|
||||
1
zzz.xbook
Normal file
1
zzz.xbook
Normal file
@@ -0,0 +1 @@
|
||||
[{"kind":1,"language":"markdown","value":"# XPath Notebook\nDate: 2025-01-16 Time: 13:51:18"},{"kind":2,"language":"xpath","value":"boolean(//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside='true' and //BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim')"},{"kind":2,"language":"xpath","value":"//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=1]/*[contains(local-name(), 'BORDER')]/@Type='DoubleSlim'"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=1]"},{"kind":2,"language":"xpath","value":"boolean(//CHARSHAPE[@Id=//CHAR[contains(text(),'‘즐거운 컬러푸드 영양교실’')]/parent::TEXT/@CharShape][BOLD])"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text()[1],'‘즐거운 컬러푸드 영양교실’')]/parent::TEXT/@CharShape]"},{"kind":2,"language":"xpath","value":"boolean(//CHARSHAPE[@Id=//CHAR[contains(text()[1],'‘즐거운 컬러푸드 영양교실’')]/parent::TEXT/@CharShape][BOLD])"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text())[1],'‘즐거운 컬러푸드 영양교실’']/parent::TEXT/@CharShape]"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//SECTION[1]//CHAR[text()='DIAT']/parent::TEXT/@CharShape]/@Height"},{"kind":2,"language":"xpath","value":"//CHARSHAPE[@Id=//CHAR[contains(text(),\"2024. 1. 27.\")]/parent::TEXT/@CharShape]/@Height"},{"kind":2,"language":"xpath","value":"//BINDATA[@Id=//BINITEM[@Format=\"OLE\"]/@BinData]/text()"},{"kind":2,"language":"xpath","value":"//BINITEM[@Format=\"OLE\"]/@BinData"}]
|
||||
49
수정사항.txt
Normal file
49
수정사항.txt
Normal file
@@ -0,0 +1,49 @@
|
||||
문제2
|
||||
- 글상자-크기(너비,높이) 채점 안됨 (4, 5)
|
||||
- 그림삽입-크기(너비,높이) 채점 안됨 (15, 16)
|
||||
- 그림삽입-위치 (어울림 : 세로-쪽의 위 23mm) 채점 안됨 (18)
|
||||
>> mm에서 포인트로 변환 후 비교하여 채점하는 과정에서 소수점 단위의 오차가 발생
|
||||
>> 너비, 높이 등 길이 채점 시 오차범위 추가
|
||||
- 편집-문구 ("…서로 다른 색과 맛이…") "이" → "을" 글자바꿈 채점 안됨
|
||||
- 편집-문구 ("…튼튼하게 혈관을…") "튼튼하게" / "혈관을" 순서바꿈 채점 안됨
|
||||
>> 채점 방식 수정
|
||||
|
||||
수시5-002294-우시현
|
||||
- 1페이지에 문제2 답안 작성, 2페이지는 빈페이지 => 문제2 채점 제외대상
|
||||
ㄴ> (문제1에 머릿말은 채점해주신대로 점수가 들어가는게 맞을 것 같습니다. 문제2만 채점 점수 없는걸로 해주시면 됩니다)
|
||||
>> 페이지 별 채점 채점 적용
|
||||
|
||||
|
||||
|
||||
<워드프로세서>
|
||||
1. 문제2-쪽테두리 설정은 해당 페이지에 쪽테두리가 지시사항 처럼 설정되어 있으면 정답
|
||||
> (구역이 나뉘어져 있지 않는 경우, 양쪽이 아닌 짝수로 설정한 경우가 있음)
|
||||
>> 특정 페이지만 검사하지 않고 쪽테두리 적용이 되어있으면 정상 채점
|
||||
|
||||
2. 문제2-속성-문구1-크기 배점 1점인데 2점씩 채점
|
||||
>> 채점 기준 수정
|
||||
3. 문제1-특수문자 (009866-성유나) 특수문자 3개 다 있는데 2점
|
||||
>> 채점 기준 수정
|
||||
4. 문제2-다단-구역나누기 (009866-성유나) 구역이 나누어져 있지 않은데 점수 3점받음
|
||||
>> 채점 기준 수정
|
||||
5. 문제2-다단-다단2단 (009866-성유나),(009890-오지은) 다단이 나누이져 있는데 감점
|
||||
>> 채점 기준 수정
|
||||
6. 문제2-속성-문구1,2 (009866-성유나),(009890-오지은) 글씨체(굴림),크기11pt,진하게 다되어있는데 감점
|
||||
>> 채점 기준 수정
|
||||
7. 오타(띄어쓰기 개수만큼 차감)
|
||||
> 문제2의 표내에 오타가 있어서 차트 범주에도 오타가 있더라도, 1번만 차감
|
||||
|
||||
8. 쪽테두리는 구역이 나뉘어져 있지 않더라도 해당 페이지(2페이지)에 쪽테두리가 지시사항처럼 설정되었으면 정답
|
||||
>> 1. 쪽나눔 (한글 내부에서 Control+Enter 혹은 Enter여러번으로 다음 쪽으로 이동)의 경우 SECTION 태그가 생성되지 않음
|
||||
2. Control+Enter
|
||||
|
||||
|
||||
"path": "sum(//CHAR[contains(text(),'♤')]/string-length(text())) - sum(//CHAR[contains(text(),'♤')]/string-length(translate(text(), '♤', '')))+sum(//CHAR[contains(text(),'※')]/string-length(text()))-//CHAR[contains(text(),'※')]/string-length(translate(text(),'※',''))",
|
||||
|
||||
|
||||
|
||||
기존 채점 기준은 오탈자가 나면 채점 기준에서 제외
|
||||
|
||||
현재 개발과정의 채점 기준은 문구의 오탈자를 포함해 유사한 단어를 찾아 채점 하는 방식이므로
|
||||
|
||||
기존 채점방식과 최종 점수가 상이할 가능성이 존재
|
||||
Reference in New Issue
Block a user