示例#1
0
 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
示例#2
0
    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
示例#3
0
    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)
示例#4
0
    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
示例#6
0
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