python

เป็นโปรแกรมเล็ก ๆ ในการช่วยแปลงไฟล์ HTML เป็น EPUB ทำงานได้ในไฟล์เดียว แต่ยังทำงานได้จำกัด ไม่ได้รองรับข้อกำหนดทุกอย่างของ EPUB โดยเฉพาะ HTML5

Topic: 

งานต้นฉบับสำหรับส่งโรงพิมพ์ สำหรับหน้าที่มีภาพชิดขอบ เราจำเป็นต้องเผื่อขอบให้มากกว่าขนาดกระดาษจริงด้านละ 3 มม. เพื่อกันตัดขอบพลาด ดังนั้นเวลาเตรียมต้นฉบับ ต้องเผื่อขนาดหน้าไว้ +6 มม.เสมอ

เราจะทำ Inkscape Script Extensions ด้วยไพธอน เพื่อใช้ในการนี้ในการรันแปลงไฟล์ภาพทีละหลาย ๆ ไฟล์ได้

มีงานต้องแปลงบทสวดมนต์จากไทยไปอังกฤษ แต่ยาวมากถึงเกือบ ๓๐๐ บท ทำเสร็จแล้วจึงเขียนโปรแกรมเพื่อตรวจทานและเพื่อกันไม่ให้ลืม ต่อด้วยขยายความสามารถให้แปลได้หลาย ๆ ภาษา คิดว่าคงจะมีโอกาสใช้งานภายหลัง

ใครมีโอกาสใช้งาน รบกวนช่วยทดสอบให้ด้วยครับ

Topic: 

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

แต่เนื่องจากขนาดกระดาษของงานเป็นขนาด A5 จึงต้องเลือกพิมพ์เป็น A4 แทน

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

ค้นไปค้นมา พบมอดูลไพธอนที่จะทำงานนี้ได้ คือมอดูล pyPdf

เริ่มเลยแล้วกัน

ติดตั้งมอดูล pyPdf

$ sudo aptitude install python-pypdf

เขียนสคริปต์ ตั้งชื่อว่า croppdf.py

Taxonomy upgrade extras: 

ทำห้องแสดงภาพผ่านเว็บด้วยไพธอนอย่างง่าย
ความต้องการคือ

  • โยนภาพใส่ไดเรกทอรี่ (ด้วยมือ คือใช้เชลล์คัดลอกเอาเอง) แล้วให้โปรแกรมจัดการลดขนาดและสร้างภาพเล็กสำหรับแสดง
  • เก็บไฟล์ภาพเหมือนระบบไฟล์ปกติ เพื่อไม่ให้ระบบไฟล์ซับซ้อนเกินไป
  • ไม่แตะต้องไฟล์ภาพต้นฉบับ และต้องสามารถเข้าถึงได้
  • หมุนภาพอัตโนมัติ และให้มีหน้า admin สำหรับหมุนภาพในภายหลัง ในกรณีที่เป็นภาพที่ไม่มีข้อมูล Exif

ใช้มอดูล wsgi, Image และเรียกใช้โปรแกรมภายนอกคือ imagemagick

เริ่มด้วยติดตั้งแพกเกจ และเปิดใช้มอดูล wsgi

# aptitude install apache2 libapache2-mod-wsgi python-imaging imagemagick
# a2enmod wsgi

สมมุติว่ารากของ apache2 อยู่ที่ /var/www
เราจะให้ url ของห้องแสดงภาพเป็น http://www.example.com/pythongal

Taxonomy upgrade extras: 

หมายเหตุจาก webmaster: คุณ wd เขียนบทความชุดนี้ไว้ได้เกือบแปดเดือนแล้วครับ แต่ webmaster ตรวจไม่เสร็จสักที ตอนนี้ก็ยังไม่เสร็จ แต่เห็นว่าดองไว้นานก็น่าเสียดาย จึงเผยแพร่ทั้งที่ยังตรวจไม่เสร็จไปก่อน

เอามาจาก Python Tutorial

ตั้งใจเขียนให้อ่านสนุก ๆ นะครับ อย่าจริงจัง

ยังเรียบเรียงไม่หมด ยังขาดอีก 4 เรื่อง ที่ยังไง ๆ ก็ไม่แปลเด็ดขาด เพราะท่านที่อ่านจนมาถึงตรงนี้ได้ก็คงเก่งภาษาอังกฤษกว่าผมแล้ว :D
คือ

Taxonomy upgrade extras: 
เอกสารหลักของไพธอนเอง
ข้อมูลจากแห่งอื่น
  • http://www.python.org/ เว็บหลักของไพธอน
  • http://docs.python.org/ ทางเข้าเอกสารหลักของไพธอน
  • http://cheeseshop.python.org รายชื่อแพกเกจใหม่ ๆ รายวัน ถ้าเราอยากจะแจกจ่ายแพกเกจของเรา ก็ต้องมาที่นี่
Taxonomy upgrade extras: 

11.1 การแสดงผล (Output Formatting)
11.2 เทมเพลต (Templating)
11.3 ข้อมูลไบนารี (Working with Binary Data Record Layouts)
11.4 เธรด (Multi-threading)
11.5 ปูม (Logging)
11.6 กำจัดจุดอ่อน (Weak References)
11.7 ใช้ลิสต์ให้สะดวก (Tools for Working with Lists)
11.8 เลขทศนิยมลอย (Decimal Floating Point Arithmetic)


11.1 การแสดงผล (Output Formatting)

repr
มอดูล repr มีไว้สำหรับปรับฟังก์ชัน repr() ให้เป็นแบบที่เราต้องการ
>>> import repr   
>>> repr.repr(set('supercalifragilisticexpialidocious'))
"set(['a', 'c', 'd', 'e', 'f', 'g', ...])"
pprint
ช่วยจัดรูปแบบให้เหมาะกับงานที่ไปออกเครื่องพิมพ์
>>> import pprint
>>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',
...     'yellow'], 'blue']]]
...

>>> pprint.pprint(t, width=30)
[[[['black', 'cyan'],
   'white',
   ['green', 'red']],
  [['magenta', 'yellow'],
Taxonomy upgrade extras: 

Pages

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้