Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
2013/08/03 @ COSCUP 2013
Automatic Printing System
with Open SourceTools
Mosky
1
This Slide
✤ This slide is available at:
https://speakerdeck.com/mosky/automatic-printing-system-with-
open-source-tools
2
Mosky
3
Mosky
✤ I am working at www.pinkoi.com .
3
Mosky
✤ I am working at www.pinkoi.com .
✤ I've been using Ubuntu everyday since 2009.
3
Mosky
✤ I am working at www.pinkoi.com .
✤ I've been using Ubuntu everyday since 2009.
✤ A speaker at PyCon TW 2013, 2012,...
Mosky
✤ I am working at www.pinkoi.com .
✤ I've been using Ubuntu everyday since 2009.
✤ A speaker at PyCon TW 2013, 2012,...
Outline
4
Outline
✤ The Motivation
4
Outline
✤ The Motivation
✤ Setup Printing System on Linux
4
Outline
✤ The Motivation
✤ Setup Printing System on Linux
✤ Convert Web to PDF
4
Outline
✤ The Motivation
✤ Setup Printing System on Linux
✤ Convert Web to PDF
✤ The Tips
4
The Motivation
5
It's just out of control!
We have to issue more than 1,000 invoices per month.
6
It's just out of control!
We have to issue more than 1,000 invoices per month.
6
We love hand-made stuff.
Pinkoi is the largest online community and marketplace for designers in Asia
7
We love hand-made stuff.
Pinkoi is the largest online community and marketplace for designers in Asia
7
So we build it for ourselves
with many cups of coffee.
8
So we build it for ourselves
with many cups of coffee.
8
Setup Printing System on Linux
9
The Check List
10
The Check List
✤ A computer installed Linux and CUPS
(Common Unix Printing System).
10
The Check List
✤ A computer installed Linux and CUPS
(Common Unix Printing System).
✤ http://www.cups.org/
10
The Check List
✤ A computer installed Linux and CUPS
(Common Unix Printing System).
✤ http://www.cups.org/
✤ http://localh...
The Check List
✤ A computer installed Linux and CUPS
(Common Unix Printing System).
✤ http://www.cups.org/
✤ http://localh...
The Check List
✤ A computer installed Linux and CUPS
(Common Unix Printing System).
✤ http://www.cups.org/
✤ http://localh...
The Check List
✤ A computer installed Linux and CUPS
(Common Unix Printing System).
✤ http://www.cups.org/
✤ http://localh...
Setup Printer with CUPS' Driver
11
Setup Printer with CUPS' Driver
✤ Find the driver for your printer:
11
Setup Printer with CUPS' Driver
✤ Find the driver for your printer:
✤ $ lpinfo --make-and-model 'P1006' -m
11
Setup Printer with CUPS' Driver
✤ Find the driver for your printer:
✤ $ lpinfo --make-and-model 'P1006' -m
✤ drv:///hpijs....
Setup Printer with CUPS' Driver
✤ Find the driver for your printer:
✤ $ lpinfo --make-and-model 'P1006' -m
✤ drv:///hpijs....
Setup Printer with CUPS' Driver
✤ Find the driver for your printer:
✤ $ lpinfo --make-and-model 'P1006' -m
✤ drv:///hpijs....
Setup Printer with CUPS' Driver
✤ Find the driver for your printer:
✤ $ lpinfo --make-and-model 'P1006' -m
✤ drv:///hpijs....
Setup Printer with PPD
12
Setup Printer with PPD
✤ Find the PPD file for your printer:
12
Setup Printer with PPD
✤ Find the PPD file for your printer:
✤ http://www.openprinting.org/drivers
12
Setup Printer with PPD
✤ Find the PPD file for your printer:
✤ http://www.openprinting.org/drivers
✤ Put the PPD file in:
12
Setup Printer with PPD
✤ Find the PPD file for your printer:
✤ http://www.openprinting.org/drivers
✤ Put the PPD file in:
✤ ...
Setup Printer with PPD
✤ Find the PPD file for your printer:
✤ http://www.openprinting.org/drivers
✤ Put the PPD file in:
✤ ...
Setup Printer with PPD
✤ Find the PPD file for your printer:
✤ http://www.openprinting.org/drivers
✤ Put the PPD file in:
✤ ...
Setup Printer with PPD
✤ Find the PPD file for your printer:
✤ http://www.openprinting.org/drivers
✤ Put the PPD file in:
✤ ...
More about lpadmin
13
More about lpadmin
✤ Enable a printer:
13
More about lpadmin
✤ Enable a printer:
✤ $ lpadmin -p <NAME> -E
13
More about lpadmin
✤ Enable a printer:
✤ $ lpadmin -p <NAME> -E
✤ Set a printer as default:
13
More about lpadmin
✤ Enable a printer:
✤ $ lpadmin -p <NAME> -E
✤ Set a printer as default:
✤ $ lpadmin -d <NAME>
13
More about lpadmin
✤ Enable a printer:
✤ $ lpadmin -p <NAME> -E
✤ Set a printer as default:
✤ $ lpadmin -d <NAME>
✤ Remove...
More about lpadmin
✤ Enable a printer:
✤ $ lpadmin -p <NAME> -E
✤ Set a printer as default:
✤ $ lpadmin -d <NAME>
✤ Remove...
Check Printer is Online
14
Check Printer is Online
✤ Just print a test file:
14
Check Printer is Online
✤ Just print a test file:
✤ $ lpr -P <NAME> <FILE>
14
Check Printer is Online
✤ Just print a test file:
✤ $ lpr -P <NAME> <FILE>
✤ Check the status of printer:
14
Check Printer is Online
✤ Just print a test file:
✤ $ lpr -P <NAME> <FILE>
✤ Check the status of printer:
✤
$ lpstat -a / $...
Check Printer is Online
✤ Just print a test file:
✤ $ lpr -P <NAME> <FILE>
✤ Check the status of printer:
✤
$ lpstat -a / $...
Check Printer is Online
✤ Just print a test file:
✤ $ lpr -P <NAME> <FILE>
✤ Check the status of printer:
✤
$ lpstat -a / $...
Check Printer is Online
✤ Just print a test file:
✤ $ lpr -P <NAME> <FILE>
✤ Check the status of printer:
✤
$ lpstat -a / $...
ConvertWeb to PDF
15
The Packages
16
The Packages
✤ Use wkhtmltopdf to convert Web to PDF.
16
The Packages
✤ Use wkhtmltopdf to convert Web to PDF.
✤ $ sudo apt-get install wkhtmltopdf
16
The Packages
✤ Use wkhtmltopdf to convert Web to PDF.
✤ $ sudo apt-get install wkhtmltopdf
✤ https://code.google.com/p/wkh...
The Packages
✤ Use wkhtmltopdf to convert Web to PDF.
✤ $ sudo apt-get install wkhtmltopdf
✤ https://code.google.com/p/wkh...
The Packages
✤ Use wkhtmltopdf to convert Web to PDF.
✤ $ sudo apt-get install wkhtmltopdf
✤ https://code.google.com/p/wkh...
The Usage
17
The Usage
✤ with X Window:
17
The Usage
✤ with X Window:
✤ $ wkhtmltopdf <HTML> <PDF>
17
The Usage
✤ with X Window:
✤ $ wkhtmltopdf <HTML> <PDF>
✤ $ wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 --
encoding utf...
The Usage
✤ with X Window:
✤ $ wkhtmltopdf <HTML> <PDF>
✤ $ wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 --
encoding utf...
The Usage
✤ with X Window:
✤ $ wkhtmltopdf <HTML> <PDF>
✤ $ wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 --
encoding utf...
Send File to Printer
18
Send File to Printer
✤ Print file:
18
Send File to Printer
✤ Print file:
✤ $ lpr -P <NAME> <FILE>...
18
Send File to Printer
✤ Print file:
✤ $ lpr -P <NAME> <FILE>...
✤ Show printer queue:
18
Send File to Printer
✤ Print file:
✤ $ lpr -P <NAME> <FILE>...
✤ Show printer queue:
✤ $ lpq -P <NAME>
18
Send File to Printer
✤ Print file:
✤ $ lpr -P <NAME> <FILE>...
✤ Show printer queue:
✤ $ lpq -P <NAME>
✤ $ lpq -a
18
Send File to Printer
✤ Print file:
✤ $ lpr -P <NAME> <FILE>...
✤ Show printer queue:
✤ $ lpq -P <NAME>
✤ $ lpq -a
✤ Cancel ...
Send File to Printer
✤ Print file:
✤ $ lpr -P <NAME> <FILE>...
✤ Show printer queue:
✤ $ lpq -P <NAME>
✤ $ lpq -a
✤ Cancel ...
PyCUPS
19
PyCUPS
✤ PyPI
19
PyCUPS
✤ PyPI
✤ https://pypi.python.org/pypi/pycups
19
PyCUPS
✤ PyPI
✤ https://pypi.python.org/pypi/pycups
✤ Get connection:
19
PyCUPS
✤ PyPI
✤ https://pypi.python.org/pypi/pycups
✤ Get connection:
✤ import cups
conn = cups.Connection()
19
PyCUPS - Get Printers
20
PyCUPS - Get Printers
✤ Get printers:
20
PyCUPS - Get Printers
✤ Get printers:
✤ conn.getPrinters()
20
PyCUPS - Get Printers
✤ Get printers:
✤ conn.getPrinters()
✤ Example output:
20
PyCUPS - Get Printers
✤ Get printers:
✤ conn.getPrinters()
✤ Example output:
✤ {u'hp': {'device-uri': u'lpd://192.168.0.10...
PyCUPS - Print File
21
PyCUPS - Print File
✤ Print file:
21
PyCUPS - Print File
✤ Print file:
✤ conn.printFile(printer, filename, title, options)
conn.printFiles(printer, filenames, t...
PyCUPS - Print File
✤ Print file:
✤ conn.printFile(printer, filename, title, options)
conn.printFiles(printer, filenames, t...
PyCUPS - Print File
✤ Print file:
✤ conn.printFile(printer, filename, title, options)
conn.printFiles(printer, filenames, t...
PyCUPS - Get Jobs
22
PyCUPS - Get Jobs
✤ Get jobs:
22
PyCUPS - Get Jobs
✤ Get jobs:
✤ conn.getJobs(which_jobs='not-completed', my_jobs=False,
limit=-1, first_job_id=-1, request...
PyCUPS - Get Jobs
✤ Get jobs:
✤ conn.getJobs(which_jobs='not-completed', my_jobs=False,
limit=-1, first_job_id=-1, request...
PyCUPS - Get Jobs
✤ Get jobs:
✤ conn.getJobs(which_jobs='not-completed', my_jobs=False,
limit=-1, first_job_id=-1, request...
TheTips
23
The Error Log
24
The Error Log
✤ $ sudo tail -f /var/log/cups/error_log
24
AboutTemplate (CSS)
25
AboutTemplate (CSS)
✤ Use cm/mm as your unit ...
25
AboutTemplate (CSS)
✤ Use cm/mm as your unit ...
✤ The steps of adjusting output:
25
AboutTemplate (CSS)
✤ Use cm/mm as your unit ...
✤ The steps of adjusting output:
✤ Create 1x1 cm div block.
25
AboutTemplate (CSS)
✤ Use cm/mm as your unit ...
✤ The steps of adjusting output:
✤ Create 1x1 cm div block.
✤ Print it.
25
AboutTemplate (CSS)
✤ Use cm/mm as your unit ...
✤ The steps of adjusting output:
✤ Create 1x1 cm div block.
✤ Print it.
✤...
AboutTemplate (CSS)
✤ Use cm/mm as your unit ...
✤ The steps of adjusting output:
✤ Create 1x1 cm div block.
✤ Print it.
✤...
Live Demo
26
Live Demo
27
Video Demo
28
29
29
The End
30
The End
31
The End
✤ CUPS
31
The End
✤ CUPS
✤
lpadmin, lpstat, lpr, lpq, lprm, ...
31
The End
✤ CUPS
✤
lpadmin, lpstat, lpr, lpq, lprm, ...
✤ wxhtmltopdf
31
The End
✤ CUPS
✤
lpadmin, lpstat, lpr, lpq, lprm, ...
✤ wxhtmltopdf
✤ PyCUPS
31
The End
✤ CUPS
✤
lpadmin, lpstat, lpr, lpq, lprm, ...
✤ wxhtmltopdf
✤ PyCUPS
✤ Some tips
31
The End
✤ CUPS
✤
lpadmin, lpstat, lpr, lpq, lprm, ...
✤ wxhtmltopdf
✤ PyCUPS
✤ Some tips
✤ Any Question?
31
Nächste SlideShare
Wird geladen in …5
×

Automatic Printing System with Open Source Tools

2.161 Aufrufe

Veröffentlicht am

It is the slides for COSCUP[1] 2013 talk, "Automatic Printing System with Open Source Tools".

It explains how to setup automatic printing system on Linux and includes some tips for it.

[1] COSCUP: http://coscup.org/

Veröffentlicht in: Software, Technologie, Business
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Automatic Printing System with Open Source Tools

  1. 1. 2013/08/03 @ COSCUP 2013 Automatic Printing System with Open SourceTools Mosky 1
  2. 2. This Slide ✤ This slide is available at: https://speakerdeck.com/mosky/automatic-printing-system-with- open-source-tools 2
  3. 3. Mosky 3
  4. 4. Mosky ✤ I am working at www.pinkoi.com . 3
  5. 5. Mosky ✤ I am working at www.pinkoi.com . ✤ I've been using Ubuntu everyday since 2009. 3
  6. 6. Mosky ✤ I am working at www.pinkoi.com . ✤ I've been using Ubuntu everyday since 2009. ✤ A speaker at PyCon TW 2013, 2012, PyCon JP 2012, ... 3
  7. 7. Mosky ✤ I am working at www.pinkoi.com . ✤ I've been using Ubuntu everyday since 2009. ✤ A speaker at PyCon TW 2013, 2012, PyCon JP 2012, ... ✤ http://mosky.tw/ 3
  8. 8. Outline 4
  9. 9. Outline ✤ The Motivation 4
  10. 10. Outline ✤ The Motivation ✤ Setup Printing System on Linux 4
  11. 11. Outline ✤ The Motivation ✤ Setup Printing System on Linux ✤ Convert Web to PDF 4
  12. 12. Outline ✤ The Motivation ✤ Setup Printing System on Linux ✤ Convert Web to PDF ✤ The Tips 4
  13. 13. The Motivation 5
  14. 14. It's just out of control! We have to issue more than 1,000 invoices per month. 6
  15. 15. It's just out of control! We have to issue more than 1,000 invoices per month. 6
  16. 16. We love hand-made stuff. Pinkoi is the largest online community and marketplace for designers in Asia 7
  17. 17. We love hand-made stuff. Pinkoi is the largest online community and marketplace for designers in Asia 7
  18. 18. So we build it for ourselves with many cups of coffee. 8
  19. 19. So we build it for ourselves with many cups of coffee. 8
  20. 20. Setup Printing System on Linux 9
  21. 21. The Check List 10
  22. 22. The Check List ✤ A computer installed Linux and CUPS (Common Unix Printing System). 10
  23. 23. The Check List ✤ A computer installed Linux and CUPS (Common Unix Printing System). ✤ http://www.cups.org/ 10
  24. 24. The Check List ✤ A computer installed Linux and CUPS (Common Unix Printing System). ✤ http://www.cups.org/ ✤ http://localhost:631/ 10
  25. 25. The Check List ✤ A computer installed Linux and CUPS (Common Unix Printing System). ✤ http://www.cups.org/ ✤ http://localhost:631/ ✤ A printer which has an IP address. 10
  26. 26. The Check List ✤ A computer installed Linux and CUPS (Common Unix Printing System). ✤ http://www.cups.org/ ✤ http://localhost:631/ ✤ A printer which has an IP address. ✤ http://192.168.2.100/ 10
  27. 27. The Check List ✤ A computer installed Linux and CUPS (Common Unix Printing System). ✤ http://www.cups.org/ ✤ http://localhost:631/ ✤ A printer which has an IP address. ✤ http://192.168.2.100/ ✤ lpd://192.168.2.100/ 10
  28. 28. Setup Printer with CUPS' Driver 11
  29. 29. Setup Printer with CUPS' Driver ✤ Find the driver for your printer: 11
  30. 30. Setup Printer with CUPS' Driver ✤ Find the driver for your printer: ✤ $ lpinfo --make-and-model 'P1006' -m 11
  31. 31. Setup Printer with CUPS' Driver ✤ Find the driver for your printer: ✤ $ lpinfo --make-and-model 'P1006' -m ✤ drv:///hpijs.drv/hp-laserjet_p1006-hpijs.ppd HP LaserJet p1006 hpijs, 3.10.2, requires proprietary plugin 11
  32. 32. Setup Printer with CUPS' Driver ✤ Find the driver for your printer: ✤ $ lpinfo --make-and-model 'P1006' -m ✤ drv:///hpijs.drv/hp-laserjet_p1006-hpijs.ppd HP LaserJet p1006 hpijs, 3.10.2, requires proprietary plugin ✤ Add the printer with the driver we found from the above command: 11
  33. 33. Setup Printer with CUPS' Driver ✤ Find the driver for your printer: ✤ $ lpinfo --make-and-model 'P1006' -m ✤ drv:///hpijs.drv/hp-laserjet_p1006-hpijs.ppd HP LaserJet p1006 hpijs, 3.10.2, requires proprietary plugin ✤ Add the printer with the driver we found from the above command: ✤ $ lpadmin -E -p <NAME> -v socket://<IP> -m <DRIVER> -E 11
  34. 34. Setup Printer with CUPS' Driver ✤ Find the driver for your printer: ✤ $ lpinfo --make-and-model 'P1006' -m ✤ drv:///hpijs.drv/hp-laserjet_p1006-hpijs.ppd HP LaserJet p1006 hpijs, 3.10.2, requires proprietary plugin ✤ Add the printer with the driver we found from the above command: ✤ $ lpadmin -E -p <NAME> -v socket://<IP> -m <DRIVER> -E ✤ $ lpadmin -E -p 'hp-p1006' -v socket://192.168.2.100 -m drv:///hpijs.drv/hp-laserjet_p1006-hpijs.ppd -E 11
  35. 35. Setup Printer with PPD 12
  36. 36. Setup Printer with PPD ✤ Find the PPD file for your printer: 12
  37. 37. Setup Printer with PPD ✤ Find the PPD file for your printer: ✤ http://www.openprinting.org/drivers 12
  38. 38. Setup Printer with PPD ✤ Find the PPD file for your printer: ✤ http://www.openprinting.org/drivers ✤ Put the PPD file in: 12
  39. 39. Setup Printer with PPD ✤ Find the PPD file for your printer: ✤ http://www.openprinting.org/drivers ✤ Put the PPD file in: ✤ /usr/share/cups/model 12
  40. 40. Setup Printer with PPD ✤ Find the PPD file for your printer: ✤ http://www.openprinting.org/drivers ✤ Put the PPD file in: ✤ /usr/share/cups/model ✤ Add the printer with this PPD file: 12
  41. 41. Setup Printer with PPD ✤ Find the PPD file for your printer: ✤ http://www.openprinting.org/drivers ✤ Put the PPD file in: ✤ /usr/share/cups/model ✤ Add the printer with this PPD file: ✤ $ lpadmin -E -p <NAME> -v lpd://<IP>/lp -m <DRIVER> -E 12
  42. 42. Setup Printer with PPD ✤ Find the PPD file for your printer: ✤ http://www.openprinting.org/drivers ✤ Put the PPD file in: ✤ /usr/share/cups/model ✤ Add the printer with this PPD file: ✤ $ lpadmin -E -p <NAME> -v lpd://<IP>/lp -m <DRIVER> -E ✤ $ lpadmin -E -p 'hp-p1006' -v lpd://192.168.2.100/lp -m 12
  43. 43. More about lpadmin 13
  44. 44. More about lpadmin ✤ Enable a printer: 13
  45. 45. More about lpadmin ✤ Enable a printer: ✤ $ lpadmin -p <NAME> -E 13
  46. 46. More about lpadmin ✤ Enable a printer: ✤ $ lpadmin -p <NAME> -E ✤ Set a printer as default: 13
  47. 47. More about lpadmin ✤ Enable a printer: ✤ $ lpadmin -p <NAME> -E ✤ Set a printer as default: ✤ $ lpadmin -d <NAME> 13
  48. 48. More about lpadmin ✤ Enable a printer: ✤ $ lpadmin -p <NAME> -E ✤ Set a printer as default: ✤ $ lpadmin -d <NAME> ✤ Remove a printer: 13
  49. 49. More about lpadmin ✤ Enable a printer: ✤ $ lpadmin -p <NAME> -E ✤ Set a printer as default: ✤ $ lpadmin -d <NAME> ✤ Remove a printer: ✤ $ lpadmin -x <NAME> 13
  50. 50. Check Printer is Online 14
  51. 51. Check Printer is Online ✤ Just print a test file: 14
  52. 52. Check Printer is Online ✤ Just print a test file: ✤ $ lpr -P <NAME> <FILE> 14
  53. 53. Check Printer is Online ✤ Just print a test file: ✤ $ lpr -P <NAME> <FILE> ✤ Check the status of printer: 14
  54. 54. Check Printer is Online ✤ Just print a test file: ✤ $ lpr -P <NAME> <FILE> ✤ Check the status of printer: ✤ $ lpstat -a / $ lpstat -t 14
  55. 55. Check Printer is Online ✤ Just print a test file: ✤ $ lpr -P <NAME> <FILE> ✤ Check the status of printer: ✤ $ lpstat -a / $ lpstat -t ✤ Troubleshooting: 14
  56. 56. Check Printer is Online ✤ Just print a test file: ✤ $ lpr -P <NAME> <FILE> ✤ Check the status of printer: ✤ $ lpstat -a / $ lpstat -t ✤ Troubleshooting: ✤ $ nc -v <IP> <PORT> 14
  57. 57. Check Printer is Online ✤ Just print a test file: ✤ $ lpr -P <NAME> <FILE> ✤ Check the status of printer: ✤ $ lpstat -a / $ lpstat -t ✤ Troubleshooting: ✤ $ nc -v <IP> <PORT> ✤ $ nmap <IP> -p <PORT_RANGE> 14
  58. 58. ConvertWeb to PDF 15
  59. 59. The Packages 16
  60. 60. The Packages ✤ Use wkhtmltopdf to convert Web to PDF. 16
  61. 61. The Packages ✤ Use wkhtmltopdf to convert Web to PDF. ✤ $ sudo apt-get install wkhtmltopdf 16
  62. 62. The Packages ✤ Use wkhtmltopdf to convert Web to PDF. ✤ $ sudo apt-get install wkhtmltopdf ✤ https://code.google.com/p/wkhtmltopdf/ 16
  63. 63. The Packages ✤ Use wkhtmltopdf to convert Web to PDF. ✤ $ sudo apt-get install wkhtmltopdf ✤ https://code.google.com/p/wkhtmltopdf/ ✤ If you don't have X Window, you also need xvfb. 16
  64. 64. The Packages ✤ Use wkhtmltopdf to convert Web to PDF. ✤ $ sudo apt-get install wkhtmltopdf ✤ https://code.google.com/p/wkhtmltopdf/ ✤ If you don't have X Window, you also need xvfb. ✤ $ sudo apt-get install xvfb 16
  65. 65. The Usage 17
  66. 66. The Usage ✤ with X Window: 17
  67. 67. The Usage ✤ with X Window: ✤ $ wkhtmltopdf <HTML> <PDF> 17
  68. 68. The Usage ✤ with X Window: ✤ $ wkhtmltopdf <HTML> <PDF> ✤ $ wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 -- encoding utf-8 <HTML> <PDF> 17
  69. 69. The Usage ✤ with X Window: ✤ $ wkhtmltopdf <HTML> <PDF> ✤ $ wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 -- encoding utf-8 <HTML> <PDF> ✤ without X window: 17
  70. 70. The Usage ✤ with X Window: ✤ $ wkhtmltopdf <HTML> <PDF> ✤ $ wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 -- encoding utf-8 <HTML> <PDF> ✤ without X window: ✤ $ xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf -T 0 -L 0 -R 0 -B 0 --page-size A4 --encoding utf-8 <HTML> <PDF> 17
  71. 71. Send File to Printer 18
  72. 72. Send File to Printer ✤ Print file: 18
  73. 73. Send File to Printer ✤ Print file: ✤ $ lpr -P <NAME> <FILE>... 18
  74. 74. Send File to Printer ✤ Print file: ✤ $ lpr -P <NAME> <FILE>... ✤ Show printer queue: 18
  75. 75. Send File to Printer ✤ Print file: ✤ $ lpr -P <NAME> <FILE>... ✤ Show printer queue: ✤ $ lpq -P <NAME> 18
  76. 76. Send File to Printer ✤ Print file: ✤ $ lpr -P <NAME> <FILE>... ✤ Show printer queue: ✤ $ lpq -P <NAME> ✤ $ lpq -a 18
  77. 77. Send File to Printer ✤ Print file: ✤ $ lpr -P <NAME> <FILE>... ✤ Show printer queue: ✤ $ lpq -P <NAME> ✤ $ lpq -a ✤ Cancel print job: 18
  78. 78. Send File to Printer ✤ Print file: ✤ $ lpr -P <NAME> <FILE>... ✤ Show printer queue: ✤ $ lpq -P <NAME> ✤ $ lpq -a ✤ Cancel print job: ✤ $ lprm -P <NAME> <JOB_ID>... 18
  79. 79. PyCUPS 19
  80. 80. PyCUPS ✤ PyPI 19
  81. 81. PyCUPS ✤ PyPI ✤ https://pypi.python.org/pypi/pycups 19
  82. 82. PyCUPS ✤ PyPI ✤ https://pypi.python.org/pypi/pycups ✤ Get connection: 19
  83. 83. PyCUPS ✤ PyPI ✤ https://pypi.python.org/pypi/pycups ✤ Get connection: ✤ import cups conn = cups.Connection() 19
  84. 84. PyCUPS - Get Printers 20
  85. 85. PyCUPS - Get Printers ✤ Get printers: 20
  86. 86. PyCUPS - Get Printers ✤ Get printers: ✤ conn.getPrinters() 20
  87. 87. PyCUPS - Get Printers ✤ Get printers: ✤ conn.getPrinters() ✤ Example output: 20
  88. 88. PyCUPS - Get Printers ✤ Get printers: ✤ conn.getPrinters() ✤ Example output: ✤ {u'hp': {'device-uri': u'lpd://192.168.0.100/lp', 'printer-info': u'hp', # 3: prepared to print; 4: printing; 5: this device is stop 'printer-state': 3, 'printer-state-message': u'Data file sent successfully', 'printer-state-reasons': [u'none'], ... 'printer-uri-supported': u'ipp://localhost:631/printers/hp'}} 20
  89. 89. PyCUPS - Print File 21
  90. 90. PyCUPS - Print File ✤ Print file: 21
  91. 91. PyCUPS - Print File ✤ Print file: ✤ conn.printFile(printer, filename, title, options) conn.printFiles(printer, filenames, title, options) 21
  92. 92. PyCUPS - Print File ✤ Print file: ✤ conn.printFile(printer, filename, title, options) conn.printFiles(printer, filenames, title, options) ✤ Example: 21
  93. 93. PyCUPS - Print File ✤ Print file: ✤ conn.printFile(printer, filename, title, options) conn.printFiles(printer, filenames, title, options) ✤ Example: ✤ conn.printFile(printer, filepath, os.path.basename(filepath), {}) 21
  94. 94. PyCUPS - Get Jobs 22
  95. 95. PyCUPS - Get Jobs ✤ Get jobs: 22
  96. 96. PyCUPS - Get Jobs ✤ Get jobs: ✤ conn.getJobs(which_jobs='not-completed', my_jobs=False, limit=-1, first_job_id=-1, requested_attributes=None) 22
  97. 97. PyCUPS - Get Jobs ✤ Get jobs: ✤ conn.getJobs(which_jobs='not-completed', my_jobs=False, limit=-1, first_job_id=-1, requested_attributes=None) ✤ The which_jobs can be 'not-completed', 'completed' or 'all'. 22
  98. 98. PyCUPS - Get Jobs ✤ Get jobs: ✤ conn.getJobs(which_jobs='not-completed', my_jobs=False, limit=-1, first_job_id=-1, requested_attributes=None) ✤ The which_jobs can be 'not-completed', 'completed' or 'all'. ✤ It returns a dict, indexed by job id, of dicts representing job attributes. 22
  99. 99. TheTips 23
  100. 100. The Error Log 24
  101. 101. The Error Log ✤ $ sudo tail -f /var/log/cups/error_log 24
  102. 102. AboutTemplate (CSS) 25
  103. 103. AboutTemplate (CSS) ✤ Use cm/mm as your unit ... 25
  104. 104. AboutTemplate (CSS) ✤ Use cm/mm as your unit ... ✤ The steps of adjusting output: 25
  105. 105. AboutTemplate (CSS) ✤ Use cm/mm as your unit ... ✤ The steps of adjusting output: ✤ Create 1x1 cm div block. 25
  106. 106. AboutTemplate (CSS) ✤ Use cm/mm as your unit ... ✤ The steps of adjusting output: ✤ Create 1x1 cm div block. ✤ Print it. 25
  107. 107. AboutTemplate (CSS) ✤ Use cm/mm as your unit ... ✤ The steps of adjusting output: ✤ Create 1x1 cm div block. ✤ Print it. ✤ Use zoom to adjust. 25
  108. 108. AboutTemplate (CSS) ✤ Use cm/mm as your unit ... ✤ The steps of adjusting output: ✤ Create 1x1 cm div block. ✤ Print it. ✤ Use zoom to adjust. ✤ Avoid floating structure. 25
  109. 109. Live Demo 26
  110. 110. Live Demo 27
  111. 111. Video Demo 28
  112. 112. 29
  113. 113. 29
  114. 114. The End 30
  115. 115. The End 31
  116. 116. The End ✤ CUPS 31
  117. 117. The End ✤ CUPS ✤ lpadmin, lpstat, lpr, lpq, lprm, ... 31
  118. 118. The End ✤ CUPS ✤ lpadmin, lpstat, lpr, lpq, lprm, ... ✤ wxhtmltopdf 31
  119. 119. The End ✤ CUPS ✤ lpadmin, lpstat, lpr, lpq, lprm, ... ✤ wxhtmltopdf ✤ PyCUPS 31
  120. 120. The End ✤ CUPS ✤ lpadmin, lpstat, lpr, lpq, lprm, ... ✤ wxhtmltopdf ✤ PyCUPS ✤ Some tips 31
  121. 121. The End ✤ CUPS ✤ lpadmin, lpstat, lpr, lpq, lprm, ... ✤ wxhtmltopdf ✤ PyCUPS ✤ Some tips ✤ Any Question? 31

×