diff options
author | Hossein <hossein@libreoffice.org> | 2021-09-28 09:42:03 +0200 |
---|---|---|
committer | Hossein <hossein@libreoffice.org> | 2021-09-28 09:50:54 +0200 |
commit | 5b01cfd6971e8822b8d52e0ba3bad2134a9e5aa9 (patch) | |
tree | c4fd2432e6e2bbf8653e9850f6d5cb755e2964d0 /msodumper/wmfrecord.py | |
parent | 7bcbe575ce88e4daa6f6335d0b78acc58917cb3e (diff) |
Added dump() for 2 wmf records in wmf-dump
Added dump() for 2 wmf records to wmf-dump.py
List of records:
1. SaveDC (META_SAVEDC)
2. RestoreDC (META_RESTOREDC)
Change-Id: I12007c40d385b3b3ca25876428f37e01e241757d
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122754
Tested-by: Hossein <hossein@libreoffice.org>
Reviewed-by: Hossein <hossein@libreoffice.org>
Diffstat (limited to 'msodumper/wmfrecord.py')
-rw-r--r-- | msodumper/wmfrecord.py | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py index dc1ecdb..6065163 100644 --- a/msodumper/wmfrecord.py +++ b/msodumper/wmfrecord.py @@ -953,13 +953,22 @@ class SetTextCharacterExtra(WMFRecord): pass -class RestoreDC: - def __init__(self, parent): +class RestoreDC(WMFRecord): + def __init__(self, parent, name=None): WMFRecord.__init__(self, parent) + if name: + self.name = name + else: + self.name = "restoredc" def dump(self): - print("<todo/>") - pass + dataPos = self.pos + print('<%s type="RestoreDC">' % self.name) + self.printAndSet("RecordSize", self.readuInt32(), hexdump=False) + self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True) + self.printAndSet("nSavedDC", self.readInt16(), hexdump=False) + # RecordSize is described in words, so we should double for bytes + assert self.pos == dataPos + self.RecordSize * 2 class ResizePalette(WMFRecord): @@ -1423,21 +1432,20 @@ class RoundRect(WMFRecord): class SaveDC(WMFRecord): - def __init__(self, parent): - WMFRecord.__init__(self, parent) - - def dump(self): - print("<todo/>") - pass - - -class SaveDC(WMFRecord): - def __init__(self, parent): + def __init__(self, parent, name=None): WMFRecord.__init__(self, parent) + if name: + self.name = name + else: + self.name = "savedc" def dump(self): - print("<todo/>") - pass + dataPos = self.pos + print('<%s type="SaveDC">' % self.name) + self.printAndSet("RecordSize", self.readuInt32(), hexdump=False) + self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True) + # RecordSize is described in words, so we should double for bytes + assert self.pos == dataPos + self.RecordSize * 2 class Pie(WMFRecord): |