本文整理汇总了Python中utils.rdata函数的典型用法代码示例。如果您正苦于以下问题:Python rdata函数的具体用法?Python rdata怎么用?Python rdata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rdata函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle_char_styles
def handle_char_styles(page, data, parent, parser = None):
off = 8
(count, off) = rdata(data, off, '<H')
ids = []
off = len(data) - 2 * count
start_ids = off - 2
while off < len(data):
(id, off) = rdata(data, off, '<H')
ids.append(id)
off = 8
fmt_size = 28
start_styles = off + 2 + fmt_size * count
attrsiter = add_pgiter(page, 'Attr. sets', 'wt602', 'container', data[off:start_styles], parent)
off += 2
for (n, id) in zip(range(0, count), ids):
add_pgiter(page, 'Attr. set %d (ID: %d)' % (n, id), 'wt602', 'attrset', data[off:off + fmt_size], attrsiter)
off += fmt_size
assert(off == start_styles)
descsiter = add_pgiter(page, 'Styles', 'wt602', 'container', data[off:start_ids], parent)
off += 2
n = 0
while off < start_ids:
add_pgiter(page, 'Style %d' % n, 'wt602', 'style', data[off:off + 6], descsiter)
off += 6
n += 1
# assert(off == start_ids)
add_pgiter(page, 'ID map', 'wt602', 'attrset_ids', data[start_ids:], parent)
示例2: parse_data_record
def parse_data_record(self, n, data, parent):
(para, off) = rdata(data, 2, '>H')
off += 2
(typ, off) = rdata(data, off, 'B')
typ_str = None
if int(typ) < len(plucker_type):
typ_str = ' (%s)' % plucker_type[int(typ)]
reciter = add_pgiter(self.page, 'Record %d%s' % (n, typ_str), 'pdb', 'plucker_record', data, parent)
if typ == 0 or typ == 1:
# read para headers
off = 8
paraiter = add_pgiter(self.page, 'Paragraphs', 'pdb', 0, data[off:off + 4 * int(para)], reciter)
for i in range(int(para)):
(size, off) = rdata(data, off, '>H')
(attrs, off) = rdata(data, off, '>H')
add_pgiter(self.page, 'Paragraph %d' % i, 'pdb', 'plucker_para', data[off - 4:off], paraiter)
text = data[off:len(data)]
if typ == 0:
add_pgiter(self.page, 'Text', 'pdb', 0, text, reciter)
elif typ == 1:
if self.version == 1:
uncompressed = lz77_decompress(text)
add_pgiter(self.page, 'Text', 'pdb', 0, uncompressed, reciter)
elif self.version == 2:
uncompressed = zlib.decompress(text)
add_pgiter(self.page, 'Text', 'pdb', 0, uncompressed, reciter)
示例3: add_obj_rectangle
def add_obj_rectangle(view, data, offset):
off = _add_obj_shape(view, data, offset)
# TODO: It's not clear if the dims are relative to canvas or to the
# shape's origin. All rectangles I've seen've had offset (0, 0).
(tl_x, off) = rdata(data, off, '<i')
view.add_iter('Top left corner X', tl_x, off - 4, 4, '<i')
(tl_y, off) = rdata(data, off, '<i')
view.add_iter('Top left corner Y', tl_y, off - 4, 4, '<i')
(tr_x, off) = rdata(data, off, '<i')
view.add_iter('Top right corner X', tr_x, off - 4, 4, '<i')
(tr_y, off) = rdata(data, off, '<i')
view.add_iter('Top right corner Y', tr_y, off - 4, 4, '<i')
(br_x, off) = rdata(data, off, '<i')
view.add_iter('Bottom right corner X', br_x, off - 4, 4, '<i')
(br_y, off) = rdata(data, off, '<i')
view.add_iter('Bottom right corner Y', br_y, off - 4, 4, '<i')
(bl_x, off) = rdata(data, off, '<i')
view.add_iter('Bottom left corner X', bl_x, off - 4, 4, '<i')
(bl_y, off) = rdata(data, off, '<i')
view.add_iter('Bottom left corner Y', bl_y, off - 4, 4, '<i')
corner_types = {1: 'normal', 2: 'round', 3: 'round in', 4: 'cut'}
(corner, off) = rdata(data, off, '<H')
view.add_iter('Corner type', key2txt(corner, corner_types), off - 2, 2, '<H')
(rounding, off) = rdata(data, off, '<H')
view.add_iter('Rounding', '%.3fin' % (rounding * 0.02028), off - 2, 2, '<H')
off = _add_point_list(view, data, off)
return off
示例4: add_comment
def add_comment(hd, size, data, off):
(row, off) = rdata(data, off, '<H')
add_iter(hd, 'Row', format_row(row), off - 2, 2, '<H')
(col, off) = rdata(data, off, '<B')
add_iter(hd, 'Column', format_column(col), off - 1, 1, '<B')
off += 1
add_long_string(hd, size, data, off, 'Comment')
示例5: parse_text_frame
def parse_text_frame(self, data, parent):
off = self._parse_object(data, 0, parent)
off = self._parse_object(data, off, parent)
off = self._parse_object(data, off, parent)
add_pgiter(self.page, 'Bounding box', 'zmf', 'zmf2_bbox', data[off:off + 0x20], parent)
off += 0x20
(count, off) = rdata(data, off, '<I')
chars = []
chars_len = 0
i = 0
while i < int(count):
(length, off) = rdata(data, off, '<I')
i += 1
chars.append(data[off - 4:off + int(length)])
chars_len += 4 + int(length)
off += int(length)
charsiter = add_pgiter(self.page, 'Characters', 'zmf', 0, data[off:off + chars_len], parent)
i = 0
while i != len(chars):
add_pgiter(self.page, 'Character %d' % (i + 1), 'zmf', 'zmf2_character', chars[i], charsiter)
i += 1
return off
示例6: add_record
def add_record(hd, size, data):
off = 0
(typ, off) = rdata(data, off, '<B')
add_iter(hd, 'Record type', typ, off - 1, 1, '<B')
(length, off) = rdata(data, off, '<H')
add_iter(hd, 'Record length', length, off - 2, 2, '<H')
return off
示例7: add_cell
def add_cell(hd, size, data):
off = add_record(hd, size, data)
(col, off) = rdata(data, off, '<B')
add_iter(hd, 'Column', format_column(col), off - 1, 1, '<B')
(row, off) = rdata(data, off, '<H')
add_iter(hd, 'Row', format_row(row), off - 2, 2, '<H')
return (off, col, row)
示例8: add_string
def add_string(hd, size, data, off, name, fmt):
fmtlen = struct.calcsize(fmt)
(length, off) = rdata(data, off, fmt)
add_iter(hd, '%s length' % name, length, off - fmtlen, fmtlen, fmt)
(text, off) = rdata(data, off, '%ds' % length)
add_iter(hd, name, unicode(text, 'cp1250'), off - length, length, '%ds' % length)
return off
示例9: add_style_para
def add_style_para(hd, size, data):
off = 0
(attribs, off) = rdata(data, off, '<H')
# add_iter(hd, 'Changed attributes', '%s' % get_para_style(attribs), off - 2, 2, '<H')
off += 2
(attrset, off) = rdata(data, off, '<H')
add_iter(hd, 'Attribute set', attrset, off - 2, 2, '<H')
示例10: add_obj_page
def add_obj_page(view, data, offset):
off = offset + 17
(dimX, off) = rdata(data, off, '<I')
view.add_iter('A dimension?', dimX, off - 4, 4, '<I')
(dimY, off) = rdata(data, off, '<I')
view.add_iter('A dimension?', dimY, off - 4, 4, '<I')
# As with ZMF, the page is placed on a canvas and all dimensions are
# relative to the canvas.
(left_margin, off) = rdata(data, off, '<i')
view.add_iter('Left page margin?', left_margin, off - 4, 4, '<i')
(top_margin, off) = rdata(data, off, '<i')
view.add_iter('Top page margin?', top_margin, off - 4, 4, '<i')
(right_margin, off) = rdata(data, off, '<i')
view.add_iter('Right page margin?', right_margin, off - 4, 4, '<i')
(bottom_margin, off) = rdata(data, off, '<i')
view.add_iter('Bottom page margin?', bottom_margin, off - 4, 4, '<i')
(width, off) = rdata(data, off, '<I')
view.add_iter('Page width', width, off - 4, 4, '<I')
(height, off) = rdata(data, off, '<I')
view.add_iter('Page height', height, off - 4, 4, '<I')
(cwidth, off) = rdata(data, off, '<I')
view.add_iter('Canvas width?', cwidth, off - 4, 4, '<I')
(cheight, off) = rdata(data, off, '<I')
view.add_iter('Canvas height?', cheight, off - 4, 4, '<I')
off += 8
return _add_obj_list(view, data, off)
示例11: parse_color
def parse_color(self, data, parent):
(length, off) = rdata(data, 0xd, '<I')
name_str = 'Color'
if length > 1:
(name, off) = rdata(data, off, '%ds' % (int(length) - 1))
name_str += ' (%s)' % unicode(name, 'cp1250')
add_pgiter(self.page, name_str, 'zmf', 'zmf2_color', data, parent)
return len(data)
示例12: add_string
def add_string(hd, size, data):
off = 0
(c, off) = rdata(data, off, ">B")
sz = c & 0xF
if sz == 0xF:
(sz, off) = read_int(data, off)
(string, off) = rdata(data, off, "%ds" % sz)
add_iter(hd, "Value", string, off - sz, sz, "%ds" % sz)
示例13: chop_tag_f55c
def chop_tag_f55c(hd, size, data):
(count, off) = rdata(data, 2, '<H')
add_iter(hd, 'Page count', count, off - 2, 2, '<H')
i = 0
while i != int(count):
(pid, off) = rdata(data, off, '<I')
add_iter(hd, 'Page %d' % i, '0x%x' % pid, off - 4, 4, '<I')
i += 1
示例14: add_header
def add_header(hd, size, data):
(sig, off) = rdata(data, 0, '<H')
add_iter(hd, 'Signature', '0x%x' % sig, off - 2, 2, '<H')
(version, off) = rdata(data, off, '<H')
add_iter(hd, 'Version', version, off - 2, 2, '<H')
(comment, off) = rdata(data, off, '100s')
add_iter(hd, 'Comment', comment, off - 100, 100, '100s')
assert off == 104
示例15: add_page_breaks
def add_page_breaks(hd, size, data, off):
(count, off) = rdata(data, off, '<H')
add_iter(hd, 'Number of breaks', count, off - 2, 2, '<H')
i = 0
while off + 2 <= size:
(row, off) = rdata(data, off, '<H')
add_iter(hd, 'Break before row [%d]' % i, format_row(row), off - 2, 2, '<H')
i += 1