PDF にページ番号を書き込む

Jython で PDF にページ番号を書き込むスクリプト. Jython 2.2.1 + iText 2.1.4 で動作確認.

from sys import argv
from java.io import FileOutputStream
from com.lowagie.text.pdf import BaseFont, PdfReader, PdfStamper, PdfContentByte

def write_nombre(src, dst):
    r = PdfReader(src)
    try:
        s = PdfStamper(r, FileOutputStream(dst))
        for i in range(1, r.getNumberOfPages() + 1):
            cb = s.getOverContent(i)
            cb.beginText()
            cb.setFontAndSize(BaseFont.createFont("Times-Roman", "Cp1252", False), 8)
            cb.showTextAligned(PdfContentByte.ALIGN_CENTER, str(i), r.getPageSize(i).width / 2, 20, 0);
            cb.endText()
    finally:
        s.close()

write_nombre(argv[1], argv[2])