Esempio n. 1
0
class Hyperlink :
	
	_hyperlink = ''
	_rel_id = ''
	_url = ''

	def __init__(self, text, rel_id, url, anchor=None) :
		self._rel_id = rel_id
		self._url = url

		if anchor is None :
			self._hyperlink = Element().createElement('hyperlink', attr={'rel_id' : 'rId' + rel_id})
		else :
			self._hyperlink = Element().createElement('hyperlink', attr={'anchor' : anchor})
		
		run = Element().createElement('r')
		
		rPr = Element().createElement('rPr')
		style = Element().createElement('rStyle', attr={'val' : 'Hyperlink'})
		rPr.append(style)
		run.append(rPr)

		textEl = Element().createElement('t', text=text, attr={'space' : 'preserve'})
		run.append(textEl)

		self._hyperlink.append(run)

	def get(self) :
		return self._hyperlink

	def getRelation(self) :
		attr = {'TargetMode' : 'External', 'Type' : HYPERLINK_SCHEMA, 'Id' : 'rId' + self._rel_id, 'Target' : self._url}
		rel = Element().createElement('Relationship', prefix=None, attr=attr)
		return rel
Esempio n. 2
0
	def __init__(self, text='', style='NormalWeb', styles=None) :
	
		self._styles = {
			'bold' : False,
			'italic' : False,
			'underline' : False,
			'uppercase' : False,
			'color' : False,
			'font' : False
		}

		if styles is not None :
			for key, value in styles.items() :
				self._styles[key] = value

		#root element
		self.para = Element().createElement('p')
		
		#style element
		pPr = Element().createElement('pPr')
		self.para.append(pPr)
		pPr.append(Element().createElement('pStyle', attr={'val' : style}))

		#run and text element
		run = Element().createElement('r')
		self._prop = Element().createElement('rPr')
		run.append(self._prop)

		#set styles
		self.setStyles()
		
		textEl = Element().createElement('t', attr={'space' : 'preserve'})
		textEl.text = text
		run.append(textEl)
		self.para.append(run)
Esempio n. 3
0
	def __init__(self, text, rel_id, url, anchor=None) :
		self._rel_id = rel_id
		self._url = url

		if anchor is None :
			self._hyperlink = Element().createElement('hyperlink', attr={'rel_id' : 'rId' + rel_id})
		else :
			self._hyperlink = Element().createElement('hyperlink', attr={'anchor' : anchor})
		
		run = Element().createElement('r')
		
		rPr = Element().createElement('rPr')
		style = Element().createElement('rStyle', attr={'val' : 'Hyperlink'})
		rPr.append(style)
		run.append(rPr)

		textEl = Element().createElement('t', text=text, attr={'space' : 'preserve'})
		run.append(textEl)

		self._hyperlink.append(run)
Esempio n. 4
0
class Paragraph :
	
	_prop = ''
	
	def __init__(self, text='', style='NormalWeb', styles=None) :
	
		self._styles = {
			'bold' : False,
			'italic' : False,
			'underline' : False,
			'uppercase' : False,
			'color' : False,
			'font' : False
		}

		if styles is not None :
			for key, value in styles.items() :
				self._styles[key] = value

		#root element
		self.para = Element().createElement('p')
		
		#style element
		pPr = Element().createElement('pPr')
		self.para.append(pPr)
		pPr.append(Element().createElement('pStyle', attr={'val' : style}))

		#run and text element
		run = Element().createElement('r')
		self._prop = Element().createElement('rPr')
		run.append(self._prop)

		#set styles
		self.setStyles()
		
		textEl = Element().createElement('t', attr={'space' : 'preserve'})
		textEl.text = text
		run.append(textEl)
		self.para.append(run)
	
	def setStyles(self) :
		if self._styles['bold'] is not False :
			self._prop.append(Element().createElement('b', attr={'val' : 'true'}))
		if self._styles['italic'] is not False :
			self._prop.append(Element().createElement('i', attr={'val' : 'true'}))
		if self._styles['underline'] is not False :
			if self._styles['underline'] in defaults.colors :
				self._prop.append(Element().createElement('u', attr={'val' : 'single', 'color' : defaults.colors[self._styles['color']].replace('#', '')}))
			else :
				if self._styles['underline'] == True :
					underline = '#000000'
				self._prop.append(Element().createElement('u', attr={'val' : 'single', 'color' : underline.replace('#', '')}))
		if self._styles['uppercase'] is not False :
			self._prop.append(Element().createElement('caps', attr={'val' : 'true'}))
		if self._styles['color'] is not False :
			if self._styles['color'] in defaults.colors :
				self._prop.append(Element().createElement('color', attr={'val' : defaults.colors[self._styles['color']].replace('#', '')}))
			else :
				self._prop.append(Element().createElement('color', attr={'val' : self._styles['color'].replace('#', '')}))
		if self._styles['font'] is not False :
			self._prop.append(Element().createElement('rFonts', attr={'ascii' : self._styles['font'], 'hAnsi' : self._styles['font']}))

	def get(self) :
		return self.para
Esempio n. 5
0
    def __init__(self, image, id, rel_id, width="100%", height="100%", url_id=None):
        self._image = open(image)
        image_name = basename(self._image.name).replace(" ", "-")
        id = id

        img = PILImage.open(self._image.name)
        imgwidth = self.pixelToEmu(img.size[0])
        imgheight = self.pixelToEmu(img.size[1])
        width = (float(width.replace("%", "")) / 100) * imgwidth
        height = (float(height.replace("%", "")) / 100) * imgheight

        rel_id = rel_id

        self._p = Element().createElement("p")
        r = Element().createElement("r")
        rPr = Element().createElement("rPr")
        noProof = Element().createElement("noProof")
        lang = Element().createElement("lang", attr={"eastAsia": "nl-NL"})
        rPr.append(noProof)
        rPr.append(lang)
        drawing = Element().createElement("drawing")
        inline = Element().createElement(
            "inline", attr={"distT": "0", "distR": "0", "distL": "0", "distB": "0"}, prefix="wp", attrprefix=None
        )
        extend = Element().createElement(
            "extent", attr={"cy": str(int(height)), "cx": str(int(width))}, prefix="wp", attrprefix=None
        )
        effectExtent = Element().createElement(
            "effectExtent", attr={"l": "19050", "t": "0", "r": "0", "b": "0"}, prefix="wp", attrprefix=None
        )
        docPr = Element().createElement(
            "docPr", attr={"id": str(id), "descr": image_name, "name": "Picture 0"}, prefix="wp", attrprefix=None
        )

        if url_id is not None:
            a = Element().createElement("hlinkClick", attr={"rel_id": "rId" + str(url_id)}, prefix="a")
            docPr.append(a)

        cNvGraphicFramePr = Element().createElement("cNvGraphicFramePr", prefix="wp")
        graphicFrameLocks = Element().createElement(
            "graphicFrameLocks", attr={"noChangeAspect": "1"}, prefix="a", attrprefix=None
        )
        cNvGraphicFramePr.append(graphicFrameLocks)
        graphic = Element().createElement("graphic", prefix="a")
        graphicData = Element().createElement(
            "graphicData",
            attr={"uri": "http://schemas.openxmlformats.org/drawingml/2006/picture"},
            prefix="a",
            attrprefix=None,
        )
        pic = Element().createElement("pic", prefix="pic")
        nvPicPr = Element().createElement("nvPicPr", prefix="pic")
        cNvPr = Element().createElement("cNvPr", attr={"id": "0", "name": image_name}, prefix="pic", attrprefix=None)
        cNvPicPr = Element().createElement("cNvPicPr", prefix="pic")
        nvPicPr.append(cNvPr)
        nvPicPr.append(cNvPicPr)
        blipFill = Element().createElement("blipFill", prefix="pic")
        blip = Element().createElement("blip", attr={"embed": "rId" + str(rel_id)}, prefix="a")
        stretch = Element().createElement("stretch", prefix="a")
        fillRect = Element().createElement("fillRect", prefix="a")
        stretch.append(fillRect)
        blipFill.append(blip)
        blipFill.append(stretch)
        spPr = Element().createElement("spPr", prefix="pic")
        xfrm = Element().createElement("xfrm", prefix="a")
        off = Element().createElement("off", attr={"y": "0", "x": "0"}, prefix="a", attrprefix=None)
        ext = Element().createElement(
            "ext", attr={"cy": str(int(height)), "cx": str(int(width))}, prefix="a", attrprefix=None
        )
        xfrm.append(off)
        xfrm.append(ext)
        prstGeom = Element().createElement("prstGeom", attr={"prst": "rect"}, prefix="a", attrprefix=None)
        avLst = Element().createElement("avLst", prefix="a")
        prstGeom.append(avLst)
        spPr.append(xfrm)
        spPr.append(prstGeom)
        pic.append(nvPicPr)
        pic.append(blipFill)
        pic.append(spPr)
        graphicData.append(pic)
        graphic.append(graphicData)
        inline.append(extend)
        inline.append(effectExtent)
        inline.append(docPr)
        inline.append(cNvGraphicFramePr)
        inline.append(graphic)
        drawing.append(inline)
        r.append(rPr)
        r.append(drawing)
        self._p.append(r)
Esempio n. 6
0
	def addItem(self, text, level = 0) :
		p		= Element().createElement('p')
		pPr 	= Element().createElement('pPr')
		p.append(pPr)

		style 	= Element().createElement('pStyle', attr={'val' : 'ListParagraph'})
		numPr	= Element().createElement('numPr')
		pPr.append(style)
		pPr.append(numPr)
		
		levels	= Element().createElement('ilvl', attr={'val' : str(level)})
		numId	= Element().createElement('numId', attr={'val' : '1'})
		numPr.append(levels)
		numPr.append(numId)

		run = Element().createElement('r')
		p.append(run)

		textEl = Element().createElement('t')
		textEl.text = text
		run.append(textEl)

		self._list.append(p)