# -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import WCHAR from hwp5.binmodel.controls._shared import Control class NumberingControl(Control): Kind = Enum( PAGE=0, FOOTNOTE=1, ENDNOTE=2, PICTURE=3, TABLE=4, EQUATION=5, UNKNOWN6=6, ) Flags = Flags(UINT32, 0, 3, Kind, 'kind', 4, 11, 'footnoteshape', 12, 'superscript') def attributes(cls): yield cls.Flags, 'flags', yield UINT16, 'number', attributes = classmethod(attributes) class AutoNumbering(NumberingControl): ''' 4.2.10.5. 자동 번호 ''' chid = CHID.ATNO def attributes(cls): yield WCHAR, 'usersymbol', yield WCHAR, 'prefix', yield WCHAR, 'suffix', attributes = classmethod(attributes) def __unicode__(self): prefix = u'' suffix = u'' if self.flags.kind == self.Kind.FOOTNOTE: if self.suffix != u'\x00': suffix = self.suffix return prefix + unicode(self.number) + suffix class NewNumbering(NumberingControl): ''' 4.2.10.6. 새 번호 지정 ''' chid = CHID.NWNO