python

python: crop ไฟล์ pdf

มีงานที่จะต้องทำไฟล์เป็น pdf เพื่อส่งโรงพิมพ์
งานนี้ทำจาก Word ในวินโดวส์ พิมพ์ลงไฟล์โดยใช้ไดรฟเวอร์เครื่องพิมพ์ Image Setter แล้วจึงแปลงเป็น pdf ด้วยลินุกซ์ ด้วยคำสั่ง ps2pdf12 โดยเลือกใช้รุ่น 1.2 เพราะต้องการความเข้ากันได้

แต่เนื่องจากขนาดกระดาษของงานเป็นขนาด A5 จึงต้องเลือกพิมพ์เป็น A4 แทน
ปัญหาคือตัวโปรแกรม ps2pdf ซึ่งไปเรียกใช้ ghostscript (gs) อีกทีนึง ไม่สามารถ crop ขนาดจาก A4 เป็น A5 ได้ (จริง ๆ แล้วอาจทำได้ แต่ค้นคำสั่งไม่พบ และโรงพิมพ์ต้องการงานขนาด A5 แบบมีขอบขาวเว้นไว้ด้านละ 3 มม. ซึ่งคงจะใช้คำสั่ง gs ยาก)

python: แปลง Singular/Plural

ใช้แปลงคำนามระหว่าง Singular/Plural รุ่นนี้ใช้ได้กับภาษาอังกฤษและเสปน

ดาวน์โหลดได้ที่ http://www.bermi.org/downloads

$ wget http://www.bermi.org/downloads/python_inflector-0.1.tar.gz
$ tar xfz python_inflector-0.1.tar.gz
$ cd python_inflector-0.1
$ python

Python 2.5.2 (r252:60911, Jul 31 2008, 07:39:27) 
[GCC 4.3.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Inflector
>>> inf = Inflector.English()
>>> inf.singularize('oxen')
'ox'

python: มอดูลน่าสนใจ

รวมมอดูลที่น่าสนใจ

python: โค๊ดฟอนต์ย้อนกลับ

เพื่อให้ครบกระบวน ต่อด้วยโค๊ดย้อนกลับอีกที
ต่อจาก python: เขียนโค๊ดคลี่แสต็กฟอนต์ ที่ผ่านมานะครับ

$ vi dfont.py

...
def stack_format(stacklist):

    def flush(newlist, templist, ind, cur_ind):
        if ind == 0:
            newlist.append('NPUSHB')
        else:
            newlist.append('NPUSHW')
        newlist.append(' %s' % len(templist))
        newlist.extend(templist)
        return newlist, [], cur_ind

    if len(stacklist)==0: return []
    n = 0
    newlist = []
    templist = []

python: เขียนโค๊ดคลี่แสต็กฟอนต์

เหตุมาจากต้องการดูการ instruct ของฟอนต์ DejaVu Sans
แต่โค๊ดอ่านยากเหลือเกิน เพราะเขียนข้อมูลเป็นสแต็กไว้ก่อน แล้วจึงเขียนโค๊ดตามหลัง ทำให้ดูยาก

จึงเขียนสคริปต์แบบหยาบ ๆ มาคลี่ข้อมูลเรียงต่อท้ายคำสั่ง เพื่อให้ดูง่ายขึ้น

Syndicate content