Spaces:
Running
Running
| # -*- coding: utf-8 -*- | |
| # | |
| # pyhwp : hwp file format parser in python | |
| # Copyright (C) 2010-2023 mete0r <https://github.com/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 <http://www.gnu.org/licenses/>. | |
| # | |
| 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 | |