1*0e16a31dSJim Jagielski# usage: runpy.sh fixtures/normal-values5b/make.py <port> <out.ods> <symbol.png> 2*0e16a31dSJim Jagielskiimport sys, uno 3*0e16a31dSJim Jagielskifrom unohelp import connect, desktop, pv 4*0e16a31dSJim Jagielskifrom com.sun.star.awt import Rectangle 5*0e16a31dSJim Jagielskifrom com.sun.star.table import CellRangeAddress 6*0e16a31dSJim Jagielski 7*0e16a31dSJim Jagielskiport, out, png = int(sys.argv[1]), sys.argv[2], sys.argv[3] 8*0e16a31dSJim Jagielskictx = connect(port) 9*0e16a31dSJim Jagielskid = desktop(ctx) 10*0e16a31dSJim Jagielskidoc = d.loadComponentFromURL("private:factory/scalc", "_blank", 0, (pv("Hidden", True),)) 11*0e16a31dSJim Jagielskish = doc.Sheets.getByIndex(0) 12*0e16a31dSJim Jagielskifor r, row in enumerate([["", "a", "b"], ["x", 1, 2], ["y", 3, 5], ["z", 4, 8]]): 13*0e16a31dSJim Jagielski for c, v in enumerate(row): 14*0e16a31dSJim Jagielski cell = sh.getCellByPosition(c, r) 15*0e16a31dSJim Jagielski if isinstance(v, str): cell.String = v 16*0e16a31dSJim Jagielski else: cell.Value = v 17*0e16a31dSJim Jagielskirng = sh.getCellRangeByName("A1:C4").getRangeAddress() 18*0e16a31dSJim Jagielskir = Rectangle(); r.X, r.Y, r.Width, r.Height = 8000, 1000, 9000, 7000 19*0e16a31dSJim Jagielskish.Charts.addNewByName("c1", r, (rng,), True, True) 20*0e16a31dSJim Jagielskim = sh.Charts.getByName("c1").EmbeddedObject 21*0e16a31dSJim Jagielskigp = ctx.ServiceManager.createInstanceWithContext("com.sun.star.graphic.GraphicProvider", ctx) 22*0e16a31dSJim Jagielskig = gp.queryGraphic((pv("URL", uno.systemPathToFileUrl(png)),)) 23*0e16a31dSJim Jagielskiseries = m.getFirstDiagram().getCoordinateSystems()[0].getChartTypes()[0].getDataSeries() 24*0e16a31dSJim Jagielskis = series[0] 25*0e16a31dSJim Jagielskisym = s.Symbol 26*0e16a31dSJim Jagielskisym.Style = uno.Enum("com.sun.star.chart2.SymbolStyle", "GRAPHIC") 27*0e16a31dSJim Jagielskisym.Graphic = g 28*0e16a31dSJim Jagielskis.Symbol = sym 29*0e16a31dSJim Jagielskiprint("readback", s.Symbol.Style, s.Symbol.Graphic, g, s.SymbolBitmapURL if hasattr(s,"SymbolBitmapURL") else None) 30*0e16a31dSJim Jagielskish.getColumns().getByIndex(2).IsVisible = False 31*0e16a31dSJim Jagielskirng2 = sh.getCellRangeByName("A1:C4").getRangeAddress() 32*0e16a31dSJim Jagielskir2 = Rectangle(); r2.X, r2.Y, r2.Width, r2.Height = 8000, 9000, 9000, 7000 33*0e16a31dSJim Jagielskish.Charts.addNewByName("c2", r2, (rng2,), True, True) 34*0e16a31dSJim Jagielskidoc.storeToURL(uno.systemPathToFileUrl(out), (pv("FilterName", "calc8"),)) 35*0e16a31dSJim Jagielskidoc.close(True) 36