เอามาจาก ThaiLinuxCafe - tip1 : สร้างปรินเตอร์เทียม สำหรับงานพิมพ์ลงไฟล์ (tiff)
โครงร่าง
ที่เซิร์ฟเวอร์
สร้างพาธให้ไฟล์ข้อมูล
# mkdir -p /samba/data/PrintToTiff/tif
# mkdir -p /samba/data/PrintToTiff/log
เปลี่ยนสิทธิ์ให้พาธ PrintToTiff
# chown -R user1:smbgroup /samba/data/PrintToTiff
# chmod -R 0777 /samba/data/PrintToTiff
คิดตั้ง ghostscript เพื่อใช้สำหรับแปลงไฟล์ postscript เป็น tiff
# aptitude install gs
แก้ไขไฟล์คอนฟิกของ samba โดยเพิ่มส่วนของพรินเตอร์ PrintToTiff
# vi /etc/samba/smb.conf
เพิ่มเข้าไปต่อท้ายไฟล์
... [PrintToTiff] path = /samba/data/PrintToTiff/tif create mask = 0777 printing = bsd printable= yes Print command = DATE=`date +%F`;LOG="/samba/data/PrintToTiff/log";gs -dBATCH -sDEVICE=tiffg3 -sOutputFile=/samba/data/PrintToTiff/tif/$DATE-%s.tif %s > $LOG/smb-PrintToTiff.log;rm %s valid users = @smbgroup public = yes
เริ่ม samba ใหม่
# /etc/init.d/samba restart
เสร็จแล้วครับ
เครื่องลูกข่ายที่เป็น Windows 98/Me
เพิ่มเครื่องพิมพ์ โดยเลือกเป็นเครื่องพิมพ์อะไรก็ได้ ขอให้ใช้ไดร์ฟเวอร์เป็น postscript ก็ใช้ได้
นิยมใช้เป็น Apple LaserWriter
โดยเลือกให้พิมพ์ไปที่ \\smbserver\PrintToTiff
เครื่องลูกข่ายที่เป็นลินุกส์
ติดตั้ง cups
$ sudo aptitude install cupsys-client cupsys-driver-gimpprint cupsys-driver-gimpprint-data
ถ้าเป็นบรรทัดคำสั่งก็ใช้
$ sudo lpadmin -p PrintToTiff -u allow:all -E -v smb://$USER:$PASSWORD@smbserver/PrintToTiff -m ImageWriter.ppd
หรือถ้าเป็น Ubuntu/Gnome ก็ใช้
System -> Administation -> Printing -> New Printer
1.Printer Connection
NetWork Printer -> Windows Printer (SMB)
!!!! Authentication Required
<<<--- Username : user1
<<<--- Password : YOUR-user1-PASSWORD
<<<--- Host : smbserver
<<<--- Printer : PrintToTiff
2.Printer Driver
Apple - Laser Writer IIg
การประยุกต์ใช้งาน
อาจสร้างเป็น FaxIn ไว้เก็บแฟกซ์เข้า
และ FaxOut ไว้เก็บแฟกซ์ที่ส่งออก
หรืออาจเปลี่ยนเอนจินเป็น pdf เพื่อเอาไว้ใช้แปลงเป็น pdf
update
ตัวอย่าง ทำเป็น FaxOut แบบกระจายไปเป็น ปีพ.ศ./เดือน แบบอัตโนมัติ
... [PrintToTiff] path = /samba/data/FaxOut create mask = 0777 printing = bsd printable= yes Print command = ROOT="/samba/data/FaxOut";MONTH=`date +%m`;let "YEAR=`date +%G` + 543";FAXDIR="$ROOT/$YEAR/$MONTH";mkdir -p $FAXDIR;gs -dBATCH -sDEVICE=tiffg3 -sOutputFile="$FAXDIR/%s.tif %s > $ROOT/lastlog.log;rm %s valid users = @smbgroup public = yes
จากคราวก่อนเรื่อง สร้างปรินเตอร์เทียมพิมพ์ลงไฟล์ Tiff
หลังจากเริ่มเอา lenny มาใช้กับเซิร์ฟเวอร์ ผ่านการอัปเกรด/ดาวน์เกรดแพกเกจ samba หลายครั้ง พบว่าปรินเตอร์เริ่มทำงานรวนเร
สุดท้ายกลายเป็นเขียนสคริปต์แยกออกมาดีกว่า สรุปดังนี้คือ
มีปรินเตอร์ 3 ตัว
ในการพิมพ์แต่ละตัว จะแยกโฟลเดอร์ไปเป็นรายปีและรายเดือนตามลำดับ โดยตั้งชื่อเป็นวันที่วันที่พิมพ์
ส่วนของ samba
$ sudo vi /etc/samba/smb.conf
... [FaxOut] path = /samba/data/smbprn/tif create mask = 0777 printing = bsd printable= yes Print command = "/usr/local/bin/d.faxout %s" [FaxIn] path = /samba/data/smbprn/tif create mask = 0777 printing = bsd printable= yes Print command = "/usr/local/bin/d.faxin %s" [PrintToPDF] path = /samba/data/smbprn/tif create mask = 0777 printing = bsd printable= yes Print command = "/usr/local/bin/d.printtopdf %s" ...
$ sudo /etc/init.d/samba restart
ส่วนของสคริปต์
$ cd /usr/local/bin
$ sudo vi d.faxout
#!/bin/bash ROOT="/samba/data" FAXROOT="$ROOT/FaxOut" LOG="$ROOT/smbprn/tif" DATE=`date +%F` MONTH=`date +%m` let "YEAR=`date +%G` + 543" TARGET="$FAXROOT/$YEAR/$MONTH" mkdir -p $TARGET chmod 777 $TARGET gs -dBATCH -sDEVICE=tiffg3 -sOutputFile="$TARGET/$DATE-%s.tif" %s > $LOG/smb-FaxOut.log rm %s
$ sudo vi d.faxin
#!/bin/bash ROOT="/samba/data" FAXROOT="$ROOT/FaxIn" LOG="$ROOT/smbprn/tif" DATE=`date +%F` MONTH=`date +%m` let "YEAR=`date +%G` + 543" TARGET="$FAXROOT/$YEAR/$MONTH" mkdir -p $TARGET chmod 777 $TARGET gs -dBATCH -sDEVICE=tiffg3 -sOutputFile="$TARGET/$DATE-%s.tif" %s > $LOG/smb-FaxIn.log rm %s
$ sudo vi d.printtopdf
#!/bin/bash ROOT="/samba/data" FAXROOT="$ROOT/PrintToPDF" LOG="$ROOT/smbprn/tif" DATE=`date +%F` MONTH=`date +%m` let "YEAR=`date +%G` + 543" TARGET="$FAXROOT/$YEAR/$MONTH" mkdir -p $TARGET chmod 777 $TARGET gs -dBATCH -sDEVICE=pdfwrite -sOutputFile="$TARGET/$DATE-%s.pdf" %s > $LOG/smb-PrintToPDF.log rm %s
$ sudo chmod 755 d.faxout d.faxin d.printtopdf
ส่วนของการแมปเครื่องพิมพ์
$ sudo lpadmin -p FaxOut -u allow:all -E -v smb://$USER:$PASSWORD@server/FaxOut
$ sudo lpadmin -p FaxIn -u allow:all -E -v smb://$USER:$PASSWORD@server/FaxIn
$ sudo lpadmin -p PrintToPDF -u allow:all -E -v smb://$USER:$PASSWORD@server/PrintToPDF
เสร็จแล้ว
(ลองกับเซิร์ฟเวอร์ lenny ลูกข่าย sid)