""" if do_print_record: print_fn('{0}{1}'.format(' ' * indent, record)) if isinstance(record, PptContainerRecord): for subrec in record.records: print_records(subrec, print_fn, indent + 1, True) elif isinstance(record, PptRecordCurrentUser): logging.info('{4}--> crypt: {0}, offset {1}, user {2}/{3}'.format( record.is_document_encrypted(), record.offset_to_current_edit, repr(record.ansi_user_name), repr(record.unicode_user_name), ' ' * indent)) elif isinstance(record, PptRecordExOleObjAtom): logging.info('{2}--> obj id {0}, persist id ref {1}'.format( record.ex_obj_id, record.persist_id_ref, ' ' * indent)) elif isinstance(record, PptRecordExOleVbaActiveXAtom): ole = record.get_data_as_olefile() for entry in ole.listdir(): logging.info('{0}ole entry {1}'.format(' ' * indent, entry)) if __name__ == '__main__': def do_per_record(record): print_records(record, logging.info, 2, False) sys.exit( record_base.test(sys.argv[1:], PptFile, do_per_record=do_per_record, verbose=False))
.format(self.link_type, self.string1, self.string2) ############################################################################### # XLSB Binary Parts ############################################################################### def parse_xlsb_part(file_stream, _, filename): """ Excel xlsb files also have bin files with record structure. iter! """ xlsb_stream = None try: xlsb_stream = XlsbStream(file_stream, file_stream.size, filename, record_base.STGTY_STREAM) for record in xlsb_stream.iter_records(): yield record except Exception: raise finally: if xlsb_stream is not None: xlsb_stream.close() ############################################################################### # TESTING ############################################################################### if __name__ == '__main__': sys.exit(record_base.test(sys.argv[1:], XlsFile, WorkbookStream))
return 'XlsbBeginSupBook Record ({0}, "{1}", "{2}")' \ .format(self.link_type, self.string1, self.string2) ############################################################################### # XLSB Binary Parts ############################################################################### def parse_xlsb_part(file_stream, _, filename): """ Excel xlsb files also have bin files with record structure. iter! """ xlsb_stream = None try: xlsb_stream = XlsbStream(file_stream, file_stream.size, filename, record_base.STGTY_STREAM) for record in xlsb_stream.iter_records(): yield record except Exception: raise finally: if xlsb_stream is not None: xlsb_stream.close() ############################################################################### # TESTING ############################################################################### if __name__ == '__main__': sys.exit(record_base.test(sys.argv[1:], XlsFile, WorkbookStream))
prints additional info for some types and subrecords recursively """ if do_print_record: print_fn('{0}{1}'.format(' ' * indent, record)) if isinstance(record, PptContainerRecord): for subrec in record.records: print_records(subrec, print_fn, indent+1, True) elif isinstance(record, PptRecordCurrentUser): logging.info('{4}--> crypt: {0}, offset {1}, user {2}/{3}' .format(record.is_document_encrypted(), record.offset_to_current_edit, repr(record.ansi_user_name), repr(record.unicode_user_name), ' ' * indent)) elif isinstance(record, PptRecordExOleObjAtom): logging.info('{2}--> obj id {0}, persist id ref {1}' .format(record.ex_obj_id, record.persist_id_ref, ' ' * indent)) elif isinstance(record, PptRecordExOleVbaActiveXAtom): ole = record.get_data_as_olefile() for entry in ole.listdir(): logging.info('{0}ole entry {1}'.format(' ' * indent, entry)) if __name__ == '__main__': def do_per_record(record): print_records(record, logging.info, 2, False) sys.exit(record_base.test(sys.argv[1:], PptFile, do_per_record=do_per_record, verbose=False))