def test_subobject(self): df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") self.textdoc.text.addElement(df) subdoc = OpenDocumentText() # Here we add the subdocument to the main document. We get back a reference # to use in the href. subloc = self.textdoc.addObject(subdoc) self.assertEqual(subloc,'./Object 1') do = draw.Object(href=subloc) df.addElement(do) subsubdoc = OpenDocumentText() subsubloc = subdoc.addObject(subsubdoc) self.assertEqual(subsubloc,'./Object 1/Object 1') c = unicode(self.textdoc.contentxml(),'UTF-8') c.index(u'<office:body><office:text><draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt"><draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>') c.index(u'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"') self.textdoc.save("TEST.odt") self.saved = True m = _getxmlpart("TEST.odt", "META-INF/manifest.xml") m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>') m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"/>') m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"/>')
class TestUnicode(unittest.TestCase): def setUp(self): self.textdoc = OpenDocumentText() self.saved = False def tearDown(self): if self.saved: os.unlink("TEST.odt") def test_subobject(self): df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") self.textdoc.text.addElement(df) subdoc = OpenDocumentText() # Here we add the subdocument to the main document. We get back a reference # to use in the href. subloc = self.textdoc.addObject(subdoc) self.assertEqual(subloc, "./Object 1") do = draw.Object(href=subloc) df.addElement(do) subsubdoc = OpenDocumentText() subsubloc = subdoc.addObject(subsubdoc) self.assertEqual(subsubloc, "./Object 1/Object 1") c = unicode(self.textdoc.contentxml(), "UTF-8") c.index( u'<office:body><office:text><draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt"><draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>' ) c.index(u'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"') self.textdoc.save("TEST.odt") self.saved = True m = _getxmlpart("TEST.odt", "META-INF/manifest.xml") m.index( '<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"/>' ) m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>') m.index( '<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"/>' ) m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"/>') m.index( '<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"/>' ) m.index( '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"/>' ) m.index( '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"/>' )
class TestUnicode(unittest.TestCase): def setUp(self): self.textdoc = OpenDocumentText() self.saved = False def tearDown(self): if self.saved: os.unlink("TEST.odt") def test_subobject(self): df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") self.textdoc.text.addElement(df) subdoc = OpenDocumentText() # Here we add the subdocument to the main document. We get back a reference # to use in the href. subloc = self.textdoc.addObject(subdoc) self.assertEqual(subloc,'./Object 1') do = draw.Object(href=subloc) df.addElement(do) subsubdoc = OpenDocumentText() subsubloc = subdoc.addObject(subsubdoc) self.assertEqual(subsubloc,'./Object 1/Object 1') c = self.textdoc.contentxml() # contentxml() is supposed to yeld a bytes c.index(b'<office:body><office:text><draw:frame ') e = ElementParser(c.decode("utf-8"), u'draw:frame') # e = ElementParser('<draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt">') self.assertTrue(e.has_value(u'svg:width',"476pt")) self.assertTrue(e.has_value(u'svg:height',"404pt")) self.assertTrue(e.has_value(u'text:anchor-type',"paragraph")) self.assertFalse(e.has_value(u'svg:height',"476pt")) c.index(b'<draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>') c.index(b'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"') self.textdoc.save(u"TEST.odt") self.saved = True m = _getxmlpart(u"TEST.odt", u"META-INF/manifest.xml").decode('utf-8') assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="content.xml"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="meta.xml"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"')) assert(element_has_attributes(m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"'))
def test_subobject(self): df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") self.textdoc.text.addElement(df) subdoc = OpenDocumentText() # Here we add the subdocument to the main document. We get back a reference # to use in the href. subloc = self.textdoc.addObject(subdoc) self.assertEqual(subloc,'./Object 1') do = draw.Object(href=subloc) df.addElement(do) subsubdoc = OpenDocumentText() subsubloc = subdoc.addObject(subsubdoc) self.assertEqual(subsubloc,'./Object 1/Object 1') c = unicode(self.textdoc.contentxml(),'UTF-8') c.index(u'<office:body><office:text><draw:frame ') e = ElementParser(c, 'draw:frame') # e = ElementParser('<draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt">') self.assertTrue(e.has_value('svg:width',"476pt")) self.assertTrue(e.has_value('svg:height',"404pt")) self.assertTrue(e.has_value('text:anchor-type',"paragraph")) self.assertFalse(e.has_value('svg:height',"476pt")) c.index(u'<draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>') c.index(u'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"') self.textdoc.save("TEST.odt") self.saved = True m = _getxmlpart("TEST.odt", "META-INF/manifest.xml") m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>') m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"/>') m.index('<manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"/>') m.index('<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"/>')
def test_subobject(self): df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") self.textdoc.text.addElement(df) subdoc = OpenDocumentText() # Here we add the subdocument to the main document. We get back a reference # to use in the href. subloc = self.textdoc.addObject(subdoc) self.assertEqual(subloc, './Object 1') do = draw.Object(href=subloc) df.addElement(do) subsubdoc = OpenDocumentText() subsubloc = subdoc.addObject(subsubdoc) self.assertEqual(subsubloc, './Object 1/Object 1') c = self.textdoc.contentxml( ) # contentxml() is supposed to yeld a bytes c.index(b'<office:body><office:text><draw:frame ') e = ElementParser(c.decode("utf-8"), u'draw:frame') # e = ElementParser('<draw:frame svg:width="476pt" text:anchor-type="paragraph" svg:height="404pt">') self.assertTrue(e.has_value(u'svg:width', "476pt")) self.assertTrue(e.has_value(u'svg:height', "404pt")) self.assertTrue(e.has_value(u'text:anchor-type', "paragraph")) self.assertFalse(e.has_value(u'svg:height', "476pt")) c.index( b'<draw:object xlink:href="./Object 1"/></draw:frame></office:text></office:body>' ) c.index(b'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"') self.textdoc.save(u"TEST.odt") self.saved = True m = _getxmlpart(u"TEST.odt", u"META-INF/manifest.xml").decode('utf-8') assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="/"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="content.xml"') ) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="meta.xml"')) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/styles.xml"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/content.xml"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="application/vnd.oasis.opendocument.text" manifest:full-path="Object 1/Object 1/"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/styles.xml"' )) assert (element_has_attributes( m, u'manifest:file-entry', u'manifest:media-type="text/xml" manifest:full-path="Object 1/Object 1/content.xml"' ))
class Doc: def __init__(self, filename, language="de", curesec_brand=True): # create document tree self.document = OpenDocumentText() # set members self.filename = filename self.language = language # some basic report details self.project = "XY-932521-OMEGA" self.date = TODAY self.dateStart = TODAY self.dateEnd = TODAY self.author = "Curesec GmbH" self.authorAddress = "Berliner Allee 170" self.clientName = "Name des Kunden" self.clientAddress = "Adresse des Kunden" self.version = "0.1" # define style and add user information self.__style = DocumentStyle() self.__style.defineCuresecStyles(self.document, self.language) if curesec_brand: self.__style.addUserfieldsToBody(self.document, projekt=self.project, date=self.date, dateStart=self.dateStart, dateEnd=self.dateEnd, author=self.author, authorAddress=self.authorAddress, clientName=self.clientName, clientAddress=self.clientAddress, version=self.version) self.setHeader() self.setFooter() self.setDeckblatt() self.setVertragspartner() self.setTableOfContent() def setTableOfContent(self): self.__style.addTableOfContent(self.document) def setDeckblatt(self): self.__style.addDeckblatt(self.document) def setVertragspartner(self): self.__style.addVertragspartner(self.document) def setFooter(self): self.__style.setFooterData(self.document) def setHeader(self): self.__style.setHeaderData(self.document, self.project, self.date, self.version) def save(self): # save document self.document.save(self.filename) def add(self, element): if element is not None: self.document.text.addElement(element) def addAsObject(self, element): if element is not None: return self.document.addObject(element)
class Doc: def __init__(self, filename, language="de", curesec_brand=True): # create document tree self.document = OpenDocumentText() # set members self.filename = filename self.language = language # some basic report details self.project = "XY-932521-OMEGA" self.date = TODAY self.dateStart = TODAY self.dateEnd = TODAY self.author = "Curesec GmbH" self.authorAddress = "Berliner Allee 170" self.clientName = "Name des Kunden" self.clientAddress = "Adresse des Kunden" self.version = "0.1" # define style and add user information self.__style = DocumentStyle() self.__style.defineCuresecStyles(self.document, self.language) if curesec_brand: self.__style.addUserfieldsToBody(self.document, projekt=self.project, date=self.date, dateStart=self.dateStart, dateEnd=self.dateEnd, author=self.author, authorAddress=self.authorAddress, clientName=self.clientName, clientAddress=self.clientAddress, version=self.version ) self.setHeader() self.setFooter() self.setDeckblatt() self.setVertragspartner() self.setTableOfContent() def setTableOfContent(self): self.__style.addTableOfContent(self.document) def setDeckblatt(self): self.__style.addDeckblatt(self.document) def setVertragspartner(self): self.__style.addVertragspartner(self.document) def setFooter(self): self.__style.setFooterData(self.document) def setHeader(self): self.__style.setHeaderData(self.document, self.project, self.date, self.version) def save(self): # save document self.document.save(self.filename) def add(self, element): if element is not None: self.document.text.addElement(element) def addAsObject(self, element): if element is not None: return self.document.addObject(element)
# These represent the data. Six rows in three columns mychart.values = ( ('','Expense','Revenue'), ('Counterfeit',1000,1500), ('Murder',1100,1150), ('Prostitution',3200,2350), ('Blackmail',1100,1150), ('Larceny',1000,1750) ) mychart.datasourcehaslabels = "both" mychart(chartdoc) # Create the containg document textdoc = OpenDocumentText() # Create a paragraph to contain the frame. You can put the frame directly # as a child og textdoc.text, but both Kword and OOo has problems wiht # this approach. p = text.P() textdoc.text.addElement(p) # Create the frame. df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") p.addElement(df) # Here we add the subdocument to the main document. We get back a reference # to use in the href. objectloc = textdoc.addObject(chartdoc) do = draw.Object(href=objectloc) # Put the object inside the frame df.addElement(do) textdoc.save("spectre-balance", True)
mychart = BarChart() mychart.title = "SPECTRE" mychart.subtitle = "SPecial Executive for Counter-intelligence, Terrorism, Revenge and Extortion" mychart.x_axis = "Divisions" mychart.y_axis = u"€ (thousand)" # These represent the data. Six rows in three columns mychart.values = (('', 'Expense', 'Revenue'), ('Counterfeit', 1000, 1500), ('Murder', 1100, 1150), ('Prostitution', 3200, 2350), ('Blackmail', 1100, 1150), ('Larceny', 1000, 1750)) mychart.datasourcehaslabels = "both" mychart(chartdoc) # Create the containg document textdoc = OpenDocumentText() # Create a paragraph to contain the frame. You can put the frame directly # as a child og textdoc.text, but both Kword and OOo has problems wiht # this approach. p = text.P() textdoc.text.addElement(p) # Create the frame. df = draw.Frame(width="476pt", height="404pt", anchortype="paragraph") p.addElement(df) # Here we add the subdocument to the main document. We get back a reference # to use in the href. objectloc = textdoc.addObject(chartdoc) do = draw.Object(href=objectloc) # Put the object inside the frame df.addElement(do) textdoc.save("spectre-balance", True)