def expandFrame(self): """Text is inserted into a frame without regard to frame size. Later we expand the frame to fit the text, carrying text to a new frame if necessary.""" numcarries = 0 self.raiseImages() if self.frame != None: while scribus.textOverflows(self.frame, ) > 0: (x, y) = scribus.getPosition(self.frame) (width, height) = scribus.getSize(self.frame) if y + height < self.pageheight - self.bottommargin: scribus.sizeObject(width, height + 1, self.frame) else: fullpage = (y <= self.topmargin and self.columns == 1) if self.buffer != [] and not self.framelinked and numcarries < 4 and not fullpage: numcarries = numcarries + 1 scribus.deselectAll() scribus.deleteText(self.frame) for (content, style) in self.contents: self.styleText(content, style, self.frame) newcontents = self.buffer[:] self.newFrame(columns=self.columns) for (content, style) in newcontents: self.styleText(content, style, self.frame) self.buffer = newcontents[:] else: lastframe = self.frame self.newFrame(columns=self.columns) scribus.linkTextFrames(lastframe, self.frame) self.framelinked = True self.raiseImages()
def expandFrame(self): """Text is inserted into a frame without regard to frame size. Later we expand the frame to fit the text, carrying text to a new frame if necessary.""" numcarries = 0 self.raiseImages() if self.frame != None: while scribus.textOverflows(self.frame,) > 0: (x,y) = scribus.getPosition(self.frame) (width,height) = scribus.getSize(self.frame) if y + height < self.pageheight - self.bottommargin: scribus.sizeObject(width, height + 1, self.frame) else: fullpage = (y <= self.topmargin and self.columns == 1) if self.buffer != [] and not self.framelinked and numcarries < 4 and not fullpage: numcarries = numcarries + 1 scribus.deselectAll() scribus.deleteText(self.frame) for (content,style) in self.contents: self.styleText(content,style,self.frame) newcontents = self.buffer[:] self.newFrame(columns=self.columns) for (content,style) in newcontents: self.styleText(content,style,self.frame) self.buffer = newcontents[:] else: lastframe = self.frame self.newFrame(columns=self.columns) scribus.linkTextFrames(lastframe,self.frame) self.framelinked = True self.raiseImages()
def add_page_number(): page_num = scribus.pageCount() page_width, page_height, margin_top, margin_left, margin_right, margin_bottom = page_size_margin(page_num) textbox = scribus.createText(margin_left, page_height-margin_bottom, page_width-margin_left-margin_right, PAGE_NUM_HEIGHT) scribus.setStyle("pagenumber_{}".format(get_style_suffix()), textbox) scribus.insertText(str(page_num), 0, textbox) scribus.deselectAll()
def create_content(): dirname = scribus.fileDialog("Select Directory", "", "", False, False, True) files = sorted(glob(os.path.join(dirname, "*"))) if len(files) == 0: return scribus.progressReset() scribus.progressTotal(len(files)) scribus.messagebarText("Creating pages...") progress = 0 for f in files: scribus.progressSet(progress) progress = progress + 1 add_image(f) if len(files) > progress: # add page for next image scribus.newPage(-1) scribus.progressReset() scribus.messagebarText("") scribus.deselectAll() scribus.gotoPage(1)
def add_page_number(): page_num = scribus.pageCount() page_width, page_height, margin_top, margin_left, margin_right, margin_bottom = page_size_margin( page_num) textbox = scribus.createText(margin_left, page_height - margin_bottom, page_width - margin_left - margin_right, PAGE_NUM_HEIGHT) scribus.setStyle("pagenumber_{}".format(get_style_suffix()), textbox) scribus.insertText(str(page_num), 0, textbox) scribus.deselectAll()
def alignImage(self): if scribus.haveDoc(): restore_units = scribus.getUnit( ) # since there is an issue with units other than points, scribus.setUnit(0) # we switch to points then restore later. nbrSelected = scribus.selectionCount() objList = [] for i in range(nbrSelected): objList.append(scribus.getSelectedObject(i)) scribus.deselectAll() for i in range(nbrSelected): try: obj = objList[i] scribus.selectObject(obj) frameW, frameH = scribus.getSize(obj) saveScaleX, saveScaleY = scribus.getImageScale(obj) scribus.setScaleImageToFrame(1, 0, obj) fullScaleX, fullScaleY = scribus.getImageScale(obj) scribus.setScaleImageToFrame(0, 0, obj) scribus.setImageScale(saveScaleX, saveScaleY, obj) imageW = frameW * (saveScaleX / fullScaleX) imageH = frameH * (saveScaleY / fullScaleY) imageX = 0.0 imageY = 0.0 if self.alignVar.get()[0] == "T": imageY = 0.0 elif self.alignVar.get()[0] == "M": imageY = (frameH - imageH) / 2.0 elif self.alignVar.get()[0] == "B": imageY = (frameH - imageH) if self.alignVar.get()[1] == "L": imageX = 0.0 elif self.alignVar.get()[1] == "C": imageX = (frameW - imageW) / 2.0 elif self.alignVar.get()[1] == "R": imageX = (frameW - imageW) scribus.setImageOffset(imageX, imageY, obj) scribus.docChanged(1) scribus.setRedraw(True) scribus.deselectAll() except: nothing = "nothing" scribus.setUnit(restore_units) self.master.destroy()
def alignImage(self): if scribus.haveDoc(): restore_units = scribus.getUnit() # since there is an issue with units other than points, scribus.setUnit(0) # we switch to points then restore later. nbrSelected = scribus.selectionCount() objList = [] for i in range(nbrSelected): objList.append(scribus.getSelectedObject(i)) scribus.deselectAll() for i in range(nbrSelected): try: obj = objList[i] scribus.selectObject(obj) frameW, frameH = scribus.getSize(obj) saveScaleX, saveScaleY = scribus.getImageScale(obj) scribus.setScaleImageToFrame(1, 0, obj) fullScaleX, fullScaleY = scribus.getImageScale(obj) scribus.setScaleImageToFrame(0, 0, obj) scribus.setImageScale(saveScaleX, saveScaleY, obj) imageW = frameW * (saveScaleX / fullScaleX) imageH = frameH * (saveScaleY / fullScaleY) imageX = 0.0 imageY = 0.0 if self.alignVar.get()[0] == "T": imageY = 0.0 elif self.alignVar.get()[0] == "M": imageY = (frameH - imageH) / 2.0 elif self.alignVar.get()[0] == "B": imageY = (frameH - imageH) if self.alignVar.get()[1] == "L": imageX = 0.0 elif self.alignVar.get()[1] == "C": imageX = (frameW - imageW) / 2.0 elif self.alignVar.get()[1] == "R": imageX = (frameW - imageW) scribus.setImageOffset(imageX, imageY, obj) scribus.docChanged(1) scribus.setRedraw(True) scribus.deselectAll() except: nothing = "nothing" scribus.setUnit(restore_units) self.master.destroy()
def change_text(text, item): l = scribus.getTextLength(item) scribus.selectText(0, l, item) fs = scribus.getFontSize(item) f = scribus.getFont(item) scribus.insertText(text, 0, item) l2 = scribus.getTextLength(item) scribus.selectText(0, l2, item) scribus.setFontSize(fs, item) scribus.setFont(f, item) scribus.selectText(l2-l, l, item) scribus.deleteText(item) scribus.deselectAll()
def draw(self): if self.txt != "": if scribus.currentPage() % 2 == 0: r = scribus.createRect(-1,self.y,8,self.height) t = scribus.createText(2,self.y + self.height,self.height,6) else: (pagewidth, pageheight) = scribus.getPageSize() r = scribus.createRect(pagewidth-7,self.y,8,self.height) t = scribus.createText(pagewidth-5,self.y + self.height,self.height,6) scribus.setFillColor("Black",r) scribus.setFillShade(20,r) scribus.setLineColor("None",r) scribus.setCornerRadius(ROUNDS,r) scribus.insertText(self.txt, -1, t) scribus.deselectAll() scribus.selectObject(t) scribus.selectText(0, len(self.txt), t) scribus.setStyle("Sidebar", t) scribus.rotateObject(90,t) self.frames.append(r) self.frames.append(t)
def draw(self): if self.txt != "": if scribus.currentPage() % 2 == 0: r = scribus.createRect(-1, self.y, 8, self.height) t = scribus.createText(2, self.y + self.height, self.height, 6) else: (pagewidth, pageheight) = scribus.getPageSize() r = scribus.createRect(pagewidth - 7, self.y, 8, self.height) t = scribus.createText(pagewidth - 5, self.y + self.height, self.height, 6) scribus.setFillColor("Black", r) scribus.setFillShade(20, r) scribus.setLineColor("None", r) scribus.setCornerRadius(ROUNDS, r) scribus.insertText(self.txt, -1, t) scribus.deselectAll() scribus.selectObject(t) scribus.selectText(0, len(self.txt), t) scribus.setStyle("Sidebar", t) scribus.rotateObject(90, t) self.frames.append(r) self.frames.append(t)
def slotDoIt(self): nfs = self.val.value() obj = scribus.getSelectedObject(0) t = scribus.getText(obj) scribus.deselectAll() t0 = scribus.getText(obj) fs = scribus.getFontSize(obj) tl = scribus.getTextLength(obj) idx = t0.find(t) + (len(t) / 2) base = fs #print t0 #print t #print "FS %i NFS %i IDX %i START %i" % (fs,nfs,idx,idx - int((nfs - fs) / 0.1)) for i in xrange(max(idx - int((nfs - fs) * 10), 0), idx): scribus.selectText(i, 1, obj) base += 0.1 scribus.setFontSize(base,obj) for i in xrange(idx, min(idx + int((nfs - fs) * 10), tl - 1)): scribus.selectText(i, 1, obj) base -= 0.1 scribus.setFontSize(base,obj) scribus.setRedraw(True) scribus.selectObject(obj)
def main(argv): userdim = scribus.getUnit() # get unit and change it to mm scribus.setUnit(scribus.UNIT_MILLIMETERS) cellwidthleft = 0 cellwidthright = 0 # Set starting position hposition = 28 vposition = 20 data = getCSVdata() di = getDataInformation(data) ncol = len(data[0]) nrow = len(data) scribus.messageBox("Table", " " + str(ncol) + " columns, " + str(nrow) + " rows ") #jpg ColWidthList = [] TableWidth = 0 RowHeightList = [] TableHeight = 0 i = 0 for row in data: if i == 0: c = 0 for cell in row: ColWidth = 40 ColWidthList.append(ColWidth) TableWidth = TableWidth + ColWidth c = c + 1 RowHeight = 15 RowHeightList.append(RowHeight) TableHeight = TableHeight + RowHeight i = i + 1 objectlist = [ ] # here we keep a record of all the created textboxes so we can group them later i = 0 scribus.progressTotal(len(data)) scribus.setRedraw(False) rowindex = 0 new_row_indication = 1 new_page_indication = 1 firstorigin_indicator = 1 while rowindex < len(data): c = 0 origin_cd = data[rowindex][0].strip() origin = data[rowindex][1].strip() origin_complete = origin + ' (' + origin_cd + ")" headerorigin = origin_complete origin_added = 0 destination_cd = data[rowindex][2].strip() destination = data[rowindex][3].strip() destination_complete = destination + ' (' + destination_cd + ")" fareplan = data[rowindex][4].strip() fareplan_type = data[rowindex][5].strip() fareplan_complete = fareplan + ' ' + fareplan_type[:1] fare = data[rowindex][6].strip() fare = float(fare) fare = "{0:.2f}".format(fare) fare_onboard = data[rowindex][7].strip() fare_onboard = float(fare_onboard) fare_onboard = "{0:.2f}".format(fare_onboard) cellheight_market = 5 cellheight_market_dos = 5 try: last_origin = data[rowindex - 1][1].strip() except: last_origin = origin try: last_destination = data[rowindex - 1][3].strip() except: last_destination = destination cellsize = ColWidthList[c] cellHeight = RowHeightList[i] # Check to see if near bottom of the page, if so wrap it over if (vposition > 227): hposition = hposition + cellsize vposition = 20 new_row_indication = 1 # If at end, reset and create new page if (hposition > 174): scribus.newPage(-1) hposition = 28 vposition = 20 new_page_indication = 1 firstorigin_indicator = 0 if new_row_indication == 1: textbox = scribus.createText(hposition, 16, cellsize / 2, 4) # create a textbox. objectlist.append(textbox) scribus.setStyle('FareplanHeader', textbox) scribus.insertText('Fareplan', 0, textbox) c = c + 1 textbox = scribus.createText(hposition + (cellsize / 2), 16, cellsize / 2, 4) # create a textbox. objectlist.append(textbox) scribus.setStyle('FareplanHeader', textbox) scribus.insertText('Amount', 0, textbox) c = c + 1 # if (firstorigin_indicator == 1): # headerorigin = origin_complete # textbox = scribus.createText(20, 10, cellsize*4, 4) # create a textbox. # objectlist.append(textbox) # scribus.setStyle('HeaderOrigin', textbox) # scribus.insertText(headerorigin, 0, textbox) # c = c + 1 # Origin textbox if (rowindex < len(data)): if ((origin != last_origin) or (rowindex == 0)): # Add 'btwn' text textbox = scribus.createText(hposition, vposition, cellsize, 4) # create a textbox. objectlist.append(textbox) scribus.setStyle( 'Headings', textbox ) # set it in the style 'Headings' as defined in Scribus. scribus.insertText( 'btwn', 0, textbox) # insert the origin into the textbox. # scribus.setDistances(1,1,1,1) # set the distances. vposition = vposition + 4 # Shift position of cell down. c = c + 1 textbox = scribus.createText( hposition, vposition, cellsize, cellheight_market_dos) # create a textbox. objectlist.append(textbox) scribus.setStyle( 'Headings', textbox ) # set it in the style 'Headings' as defined in Scribus. scribus.insertText( origin_complete, 0, textbox) # insert the origin into the textbox. while (scribus.textOverflows(textbox) > 0): cellheight_market_dos += 1 scribus.sizeObject(cellsize, cellheight_market_dos, textbox) vposition = vposition + cellheight_market_dos # Shift position of cell down. c = c + 1 # Add 'and' text textbox = scribus.createText(hposition, vposition, cellsize, 4) # create a textbox. objectlist.append(textbox) scribus.setStyle( 'andStyle', textbox ) # set it in the style 'andStyle' as defined in Scribus. scribus.insertText( 'and', 0, textbox) # insert the origin into the textbox. vposition = vposition + 4 # Shift position of cell down. c = c + 1 origin_added = 1 firstorigin_indicator = firstorigin_indicator + 1 # Insert the origin at the top margin if (firstorigin_indicator == 1 or rowindex == 0): headerorigin = origin_complete textbox = scribus.createText(28, 10, cellsize * 4, 4) # create a textbox. objectlist.append(textbox) scribus.setStyle('HeaderOrigin', textbox) scribus.insertText(headerorigin, 0, textbox) c = c + 1 # Destination textbox if ((destination != last_destination) or (rowindex == 0) or (origin_added == 1)): textbox = scribus.createText( hposition, vposition, cellsize, cellheight_market) # create a textbox. objectlist.append(textbox) scribus.setStyle( 'Headings', textbox ) # set it in the style 'Headings' as defined in Scribus. scribus.insertText( destination_complete, 0, textbox) # insert the destination into the textbox. while (scribus.textOverflows(textbox) > 0): cellheight_market += 1 scribus.sizeObject(cellsize, cellheight_market, textbox) vposition = vposition + cellheight_market # Shift position of cell down. c = c + 1 rowindex = rowindex + 1 # Fareplan textbox fareplan_box_height = 5 if fare_onboard != '0.00': fareplan_box_height = 10 textbox = scribus.createText(hposition, vposition, cellsize / 2, fareplan_box_height) # create a textbox. objectlist.append(textbox) scribus.insertText(fareplan_complete, 0, textbox) # insert the fareplan into the textbox. hposition = hposition + (cellsize / 2) # Shift position of cell right. c = c + 1 # Fare textbox textbox = scribus.createText(hposition, vposition, cellsize / 2, 5) # create a textbox. objectlist.append(textbox) scribus.insertText(fare, 0, textbox) # insert the fare into the textbox. c = c + 1 if fare_onboard != '0.00': vposition = vposition + 5 # Shift position of cell down. textbox = scribus.createText(hposition, vposition, cellsize / 2, 5) # create a textbox. objectlist.append(textbox) scribus.setStyle('OnBoard', textbox) scribus.insertText(fare_onboard, 0, textbox) # insert the fare into the textbox. hposition = hposition - (cellsize / 2 ) # Shift position of cell back. vposition = vposition + 5 # Shift position of cell down. c = c + 1 else: hposition = hposition - (cellsize / 2 ) # Shift position of cell back. vposition = vposition + 5 # Shift position of cell down. i = i + 1 new_row_indication = 0 new_page_indication = 0 scribus.deselectAll() scribus.groupObjects(objectlist) scribus.progressReset() scribus.setUnit(userdim) # reset unit to previous value scribus.docChanged(True) scribus.statusMessage("Done") scribus.setRedraw(True)
def load_song(data, offset, settings): page_num = scribus.pageCount() page_width, page_height, margin_top, margin_left, margin_right, margin_bottom = page_size_margin(page_num) start_point = margin_top + offset new_width = page_width - margin_left - margin_right if not FAST: scribus.placeEPS(os.path.join(FILES, data["filename"]), 0, 0) eps = scribus.getSelectedObject() eps_width, eps_height = scribus.getSize(eps) #scribus.scaleGroup(new_width/eps_width) # slow on scribus 1.4; does something else on scribus 1.5 scribus.sizeObject(eps_width*0.86, eps_height*0.86, eps) scribus.moveObjectAbs(margin_left, start_point+SPACING_HEADLINE_SONG, eps) eps_width, eps_height = scribus.getSize(eps) else: eps_height = 0 scribus.deselectAll() textbox = scribus.createText(margin_left, start_point, new_width, 20) style_suffix = get_style_suffix() if data["composer"]: scribus.deselectAll() scribus.insertText(u"{}\n".format(data["composer"]), 0, textbox) scribus.selectText(0, 1, textbox) scribus.setStyle("subline_{}".format(style_suffix), textbox) if data["poet"]: scribus.deselectAll() scribus.insertText(u"{}\n".format(data["poet"]), 0, textbox) scribus.selectText(0, 1, textbox) scribus.setStyle("subline_{}".format(style_suffix), textbox) scribus.deselectAll() scribus.insertText(u"{}\n".format(data["name"]), 0, textbox) scribus.selectText(0, 1, textbox) scribus.setStyle("headline_{}".format(style_suffix), textbox) text = data["text"] text = [t.strip() for t in text if t.strip() != ""] # TODO: exit if text == [] textbox = scribus.createText(margin_left, start_point + eps_height + SPACING_HEADLINE_SONG + SPACING_SONG_TEXT, new_width, 50) scribus.setStyle("text", textbox) # let's see how many digits are in there: num_verses = len([l for l in text if l.isdigit()]) num_chars = 0 num_line_total = len(text) num_line_actually = 0 no_new_line = False verse_counter = 0 text_columns_height = 0 # TODO: should be None for num_line, line in enumerate(text): if line.strip == "": continue num_line_actually += 1 if line.isdigit(): print "#", verse_counter, math.ceil(num_verses * 0.5), num_verses, data["filename"] if verse_counter == math.ceil(num_verses*0.5): # this is the first verse that should be in the new column, so let's see what's the height print text_columns_height, num_line_actually text_columns_height = BASELINE_GRID * (num_line_actually -1) first_char = "\n" if num_line == 0: first_char = "" no_new_line = True line = u"{}{}.\t".format(first_char, line) scribus.insertText(line, -1, textbox) scribus.deselectAll() scribus.selectText(num_chars, len(line), textbox) #scribus.setStyle("num", textbox) # no character styles available #scribus.setFontSize(5, textbox) # TODO: testing only # BUG? scribus.setFont("Linux Libertine O Bold", textbox) num_chars += len(line) verse_counter += 1 else: if no_new_line: first_char = "" else: first_char = chr(28) no_new_line = False line = u"{}{}".format(first_char, line) scribus.insertText(line, -1, textbox) #scribus.deselectAll() #scribus.selectText(num_chars, len(line), textbox) #scribus.setStyle("text", textbox) num_chars += len(line) scribus.setColumnGap(5, textbox) columns = settings.get("columns", 2) scribus.setColumns(columns, textbox) if columns != 2: fit_height(textbox) else: scribus.sizeObject(new_width, text_columns_height, textbox) l, t = scribus.getPosition(textbox) scribus.moveObjectAbs(l, round(t/BASELINE_GRID)*BASELINE_GRID, textbox) if scribus.textOverflows(textbox): fit_height(textbox) # there are some cases,.. text_width, text_height = scribus.getSize(textbox) text_left, text_top = scribus.getPosition(textbox) return text_top + text_height - start_point + SPACING_SONGS, page_num
def load_song(data, offset, settings): page_num = scribus.pageCount() page_width, page_height, margin_top, margin_left, margin_right, margin_bottom = page_size_margin( page_num) start_point = margin_top + offset new_width = page_width - margin_left - margin_right if not FAST: scribus.placeEPS(os.path.join(FILES, data["filename"]), 0, 0) eps = scribus.getSelectedObject() eps_width, eps_height = scribus.getSize(eps) #scribus.scaleGroup(new_width/eps_width) # slow on scribus 1.4; does something else on scribus 1.5 scribus.sizeObject(eps_width * 0.86, eps_height * 0.86, eps) scribus.moveObjectAbs(margin_left, start_point + SPACING_HEADLINE_SONG, eps) eps_width, eps_height = scribus.getSize(eps) else: eps_height = 0 scribus.deselectAll() textbox = scribus.createText(margin_left, start_point, new_width, 20) style_suffix = get_style_suffix() if data["composer"]: scribus.deselectAll() scribus.insertText(u"{}\n".format(data["composer"]), 0, textbox) scribus.selectText(0, 1, textbox) scribus.setStyle("subline_{}".format(style_suffix), textbox) if data["poet"]: scribus.deselectAll() scribus.insertText(u"{}\n".format(data["poet"]), 0, textbox) scribus.selectText(0, 1, textbox) scribus.setStyle("subline_{}".format(style_suffix), textbox) scribus.deselectAll() scribus.insertText(u"{}\n".format(data["name"]), 0, textbox) scribus.selectText(0, 1, textbox) scribus.setStyle("headline_{}".format(style_suffix), textbox) text = data["text"] text = [t.strip() for t in text if t.strip() != ""] # TODO: exit if text == [] textbox = scribus.createText( margin_left, start_point + eps_height + SPACING_HEADLINE_SONG + SPACING_SONG_TEXT, new_width, 50) scribus.setStyle("text", textbox) # let's see how many digits are in there: num_verses = len([l for l in text if l.isdigit()]) num_chars = 0 num_line_total = len(text) num_line_actually = 0 no_new_line = False verse_counter = 0 text_columns_height = 0 # TODO: should be None for num_line, line in enumerate(text): if line.strip == "": continue num_line_actually += 1 if line.isdigit(): print "#", verse_counter, math.ceil( num_verses * 0.5), num_verses, data["filename"] if verse_counter == math.ceil( num_verses * 0.5 ): # this is the first verse that should be in the new column, so let's see what's the height print text_columns_height, num_line_actually text_columns_height = BASELINE_GRID * (num_line_actually - 1) first_char = "\n" if num_line == 0: first_char = "" no_new_line = True line = u"{}{}.\t".format(first_char, line) scribus.insertText(line, -1, textbox) scribus.deselectAll() scribus.selectText(num_chars, len(line), textbox) #scribus.setStyle("num", textbox) # no character styles available #scribus.setFontSize(5, textbox) # TODO: testing only # BUG? scribus.setFont("Linux Libertine O Bold", textbox) num_chars += len(line) verse_counter += 1 else: if no_new_line: first_char = "" else: first_char = chr(28) no_new_line = False line = u"{}{}".format(first_char, line) scribus.insertText(line, -1, textbox) #scribus.deselectAll() #scribus.selectText(num_chars, len(line), textbox) #scribus.setStyle("text", textbox) num_chars += len(line) scribus.setColumnGap(5, textbox) columns = settings.get("columns", 2) scribus.setColumns(columns, textbox) if columns != 2: fit_height(textbox) else: scribus.sizeObject(new_width, text_columns_height, textbox) l, t = scribus.getPosition(textbox) scribus.moveObjectAbs(l, round(t / BASELINE_GRID) * BASELINE_GRID, textbox) if scribus.textOverflows(textbox): fit_height(textbox) # there are some cases,.. text_width, text_height = scribus.getSize(textbox) text_left, text_top = scribus.getPosition(textbox) return text_top + text_height - start_point + SPACING_SONGS, page_num
textFrame.append(item[0]) elif (item[1] == 2): imageFrame.append(item[0]) else: for i in range(scribus.selectionCount()): item = scribus.getSelectedObject(i) selectedFrame.append(item) if scribus.getObjectType(item) == "TextFrame": textFrame.append(item) if scribus.getObjectType(item) == "ImageFrame": imageFrame.append(item[0]) # print textFrame # print imageFrame scribus.deselectAll() chars = [] for item in textFrame: scribus.deselectAll() scribus.selectObject(item) n = scribus.getTextLength() for i in range(n): scribus.selectText(i, 1) char = scribus.getText() if (char not in charsIgnore and len(char) > 0): chars.append(char.lower()) random.shuffle(chars) for item in textFrame: scribus.messagebarText("Processing text frame " + item)
def frontPage(LogoPath, ChurchPath, ChurchImage, Citation, CitationLocation): #scribus.setText('Gemeindebrief DIGITAL Buxtehude',"Oben") #Line upper left corner l_line = scribus.createLine(10,10,10,33,"l_Line") scribus.setLineWidth(0.75, l_line) scribus.setLineColor("NAK-blau 100%", l_line) scribus.setLineShade("NAK-blau 100%", l_line) #Headline t_headline = scribus.createText(10,22,128,20,"t_Headline") scribus.setText("Gemeindebrief", t_headline) scribus.selectText(1, 100, t_headline) scribus.setCharacterStyle( "Erste Seite - Gemeindebrief - gross", t_headline) scribus.deselectAll() # Digital - Text t_digitalText = scribus.createText(107,27,30,7, "t_Digital") scribus.selectText(1, 100, t_digitalText) scribus.setCharacterStyle( "Erste Seite - Gemeindebrief - gross", t_digitalText) scribus.deselectAll() # Congregation - Text t_congregationText = scribus.createText(10,35.250, 70, 6, "t_Congregation") scribus.selectText(1, 100, t_congregationText) scribus.setCharacterStyle( "Erste Seite - Gemeindebrief - klein", t_congregationText) scribus.deselectAll() # Month Year t_monthYear = scribus.createText(56, 46.500, 82, 10, "t_MonthYear") scribus.selectText(1, 100, t_monthYear) scribus.setCharacterStyle( "Erste Seite - Gemeindebrief - Monat", t_monthYear) scribus.deselectAll() # Logo charitable i_charitable = scribus.createImage(10, 46, 35.5, 9, "i_NAC_charitable") scribus.loadImage(LogoPath + "Logo_NAK_karitativ_HQ.tiff", i_charitable) scribus.setImageScale(0.0613, 0.0613, i_charitable) # Church image i_churchImage = scribus.createImage(10,57,128,100,"i_Church") scribus.loadImage(ChurchPath + ChurchImage, i_churchImage) scribus.setImageScale(1, 1, i_churchImage) scribus.setImageOffset(-18.244, -0.342, i_churchImage) # Citation t_citation = scribus.createText(42.500, 162.500,95.500,4.500, "t_Citation") # OverflowCheck scribus.setText(Citation, t_citation) scribus.selectText(1, 100, t_citation) scribus.setCharacterStyle("Erste Seite - Bibelzitat - Text", t_citation) scribus.deselectAll() # Citation Location t_citationLocation = scribus.createText(42.500, 170, 95.500, 3, "t_CitationLocation") scribus.setText(CitationLocation, t_citationLocation) scribus.selectText(1, 100, t_citationLocation) scribus.setCharacterStyle( "Erste Seite - Bibelzitat - Ort", t_citationLocation) scribus.deselectAll() # NAC t_nac = scribus.createText(52.500,195,66,5,"t_NAC") scribus.setText("Neuapostolische Kirche", t_nac) scribus.selectText(1, 100, t_nac) scribus.setCharacterStyle("Erste Seite - NAK", t_nac) scribus.deselectAll() # North and east germany t_northEastGermany = scribus.createText(52.500, 195, 66, 5, "t_NorthEastGermany") scribus.setText("Nord- und Ostdeutschland", t_northEastGermany) scribus.selectText(1, 100, t_northEastGermany) scribus.setCharacterStyle( "Erste Seite - Nord- und Ostdeutschland", t_northEastGermany) scribus.deselectAll() # NAC Logo i_nacLogo = scribus.createImage(122, 184, 16, 16,"i_Logo") scribus.loadImage("L:\\GB\\Bilder\\Logos\\Logo_NAK_HQ.tif", i_nacLogo) scribus.setImageScale(0.0384, 0.0384, i_nacLogo) scribus.saveDocAs()
def raiseFrames(self, framelist): scribus.deselectAll() for i in scribus.getAllObjects(): if i in framelist: scribus.selectObject(i) scribus.moveSelectionToFront()
# check opened document if not scribus.haveDoc(): scribus.messageBox('Scribus - Script Error', "No document open", scribus.ICON_WARNING, scribus.BUTTON_OK) sys.exit(1) scribus.setRedraw(False) selectionCount = scribus.selectionCount() # str('Selected: ' + str(selectionCount)) selected = [] # remember all selected objects for index in range(0, selectionCount): # str(index) selectedObject = scribus.getSelectedObject(index) # str(selectedObject) selected.append(selectedObject) scribus.deselectAll() # change style for each selected object for obj in selected: # str(obj) scribus.selectObject(obj) scribus.selectText(0, scribus.getTextLength(obj), obj) scribus.setStyle(style, obj) scribus.deselectAll() scribus.setRedraw(True) scribus.docChanged(True)