#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import division import sys try: import scribus except ImportError,err: print "This Python script is written for the Scribus scripting interface." print "It can only be run from within Scribus." sys.exit(1) ################################################ # Scribusで左右ページのノンブルを逆に振るスクリプト # ############################################### from scribus import * page = 1 pagenum = scribus.pageCount() content = [] draft = "1" L = len(draft) al = getActiveLayer() # 現在アクティブなレイヤーを退避させ、「pagenum」というレイヤー追加 createLayer("pagenum") setActiveLayer("pagenum") ###### 逆ノンブル設定(必須)###### # 1ページ目が左から開始なら left_first=1 右(ずれる)なら left_first=0 left_first = 1 # 全ページの任意の位置に逆にノンブルを入れる。 # 応用すれば、普通の順番でノンブルを入れたり、章ごとに対応するハシラを入れたりできそう。 while (page <= pagenum): scribus.gotoPage(page) u = getUnit() # ドキュメントの単位設定を退避 setUnit(UNIT_MILLIMETERS) # ドキュメントの単位をmmに変更 (w,h) = getPageSize() # ドキュメントのサイズを取得、幅と高さ # 逆ノンブル処理(不要なら削除) if left_first == 1: # 右ページから開始する場合 if page % 2 == 0: draft = str(page-1) #偶数 else: draft = str(page+1) #奇数 if left_first == 0 and page > 1: # 左ページから開始する場合 if page % 2 == 0: draft = str(page+1) #偶数 else: draft = str(page-1) #奇数 if left_first == 0 and page == pagenum: draft = str(page) draft = draft+'Page' # 通常ノンブルにするならこの行を draft = str(page) T = createText(0, 0 + h-12, w , 20) # テキストボックスTを作成(xpos,ypos, width, height) setText(draft, T) # そこへ文字列を設定 setFontSize(20, T) # フォントサイズを指定(setTextの後で行う) # setFont("DejaVu Sans Book", T) # フォント名の指定 setTextAlignment(ALIGN_CENTERED, T) # 段落揃え(中央) setUnit(u) # ドキュメントの単位設定を元に戻す。 scribus.setRedraw(1) scribus.redrawAll() page += 1 setActiveLayer(al) # アクティブなレイヤーを戻す。 sys.exit(1)