def add_page(self, page_format=None): parent = self.get_pages_obj() if page_format: page = sk2_model.Page(self.config) page.page_format = deepcopy(page_format) else: page = sk2_model.Page(self.config, parent) parent.childs.append(page) parent.page_counter += 1 page.name = _('Page') + ' %i' % parent.page_counter return page
def insert_page(self, index=0, page_format=None): parent = self.get_pages_obj() if page_format: page = sk2_model.Page(self.config) page.page_format = deepcopy(page_format) else: page = sk2_model.Page(self.config, parent) if index < len(parent.childs): parent.childs.insert(index, page) else: parent.childs.append(page) parent.page_counter += 1 page.name = _('Page') + ' %i' % parent.page_counter return page
def translate_header(self, header): self.sk2_mt.doc_units = uc2const.UNIT_PT center = [0.0, 0.0] p = [self.wwidth, self.wheight] x0, y0 = apply_trafo_to_point(center, self.get_trafo()) x1, y1 = apply_trafo_to_point(p, self.get_trafo()) width = abs(x1 - x0) height = abs(y1 - y0) ornt = uc2const.PORTRAIT if width > height: ornt = uc2const.LANDSCAPE page_fmt = ['Custom', (width, height), ornt] pages_obj = self.sk2_mtds.get_pages_obj() pages_obj.page_format = page_fmt self.page = sk2_model.Page(pages_obj.config, pages_obj, 'WMF page') self.page.page_format = deepcopy(page_fmt) pages_obj.childs = [self.page, ] pages_obj.page_counter = 1 self.layer = sk2_model.Layer(self.page.config, self.page) self.page.childs = [self.layer, ] for record in header.childs: try: self.translate_record(record) except Exception as e: LOG.error('ERREC-->%s', wmfconst.WMF_RECORD_NAMES[record.func]) LOG.error('Record index %s', str(header.childs.index(record))) LOG.error('Error: %s', e)
def translate(self, sk_doc, sk2_doc): sk_mdl = sk_doc.model self.sk2mtds = sk2mtds = sk2_doc.methods self.sk2_doc = sk2_doc for item in sk_mdl.childs: if item.cid == sk_model.LAYOUT: pages_obj = sk2mtds.get_pages_obj() fmt = get_sk2_page(item.format, item.size, item.orientation) pages_obj.page_format = fmt self.dx = -fmt[1][0] / 2.0 self.dy = -fmt[1][1] / 2.0 pages_obj.childs = [] name = 'Page 1' self.page = sk2_model.Page(pages_obj.config, pages_obj, name) self.page.page_format = deepcopy(fmt) pages_obj.childs.append(self.page) elif item.cid == sk_model.GUIDELAYER: gl = sk2mtds.get_guide_layer() sk2mtds.set_guide_color(get_sk2_color(item.layer_color)) props = get_sk2_layer_props(item) if props[3]: props[3] = 0 gl.properties = props parse_objs = False for chld in item.childs: if chld.cid == sk_model.GUIDE: orientation = abs(chld.orientation - 1) position = chld.position + self.dy if orientation: position = chld.position + self.dx guide = sk2_model.Guide(gl.config, gl, position, orientation) gl.childs.append(guide) else: parse_objs = True if parse_objs: layer = self.translate_layer(self.page, item) self.page.childs.append(layer) elif item.cid == sk_model.GRID: grid = sk2mtds.get_grid_layer() grid.geometry = list(item.geometry) color = get_sk2_color(item.grid_color) color[2] = .15 sk2mtds.set_grid_color(color) props = get_sk2_layer_props(item) if props[3]: props[3] = 0 grid.properties = props if item.childs: layer = self.translate_layer(self.page, item) self.page.childs.append(layer) elif item.cid == sk_model.LAYER: self.page.childs.append(self.translate_layer(self.page, item)) self.page.layer_counter = len(self.page.childs) self.page = None sk2_doc.model.do_update()
def translate_page(self, dest_parent, source_page): name = source_page.name fmt = get_sk2_page(source_page.format, source_page.size, source_page.orientation) self.dx = -source_page.size[0] / 2.0 self.dy = -source_page.size[1] / 2.0 dest_page = sk2_model.Page(dest_parent.config, dest_parent, name) dest_page.page_format = fmt dest_page.childs = self.translate_objs(dest_page, source_page.childs) dest_page.layer_counter = len(dest_page.childs) return dest_page
def create_new_doc(config): doc = sk2_model.Document(config) layer = sk2_model.Layer(config) page = sk2_model.Page(config) add_child(page, layer) page.layer_counter += 1 pages = sk2_model.Pages(config) add_child(pages, page) pages.page_counter += 1 dl = sk2_model.DesktopLayers(config) ml = sk2_model.MasterLayers(config) gl = sk2_model.GridLayer(config) guide = sk2_model.GuideLayer(config) add_childs(doc, [pages, dl, ml, gl, guide]) return doc