PDF, TIFF nyomtató CUPS és CUPS-PDF nélkül Samba-val
Felmerült egy olyan probléma, hogy egyszerre két virtuális nyomtatót is be kellett állítanom: az egyik PDF kimenettel, a másik TIFF kimenettel.
Beállítottam egy CUPS + CUPS-PDF kombinációt, de rögtön több problémába is ütköztem:
A Samba bejegyzés:
A Ruby script:
Hasonló mintára a tiff nyomtató:
A scriptek letölthetőek: pdf, tiff
Beállítottam egy CUPS + CUPS-PDF kombinációt, de rögtön több problémába is ütköztem:
- a CUPS-PDF csak PDF kimenetet tud, a TIFF nem választható
- egyszerre csak egy virtuális nyomtató lehet
- a CUPS-PDF nem tudja kezeli az ékezetes karaktereket (no comment…)
A Samba bejegyzés:
[pdf_printer]
#itt fogja ideiglenesen tárolni a ps fájlt
path = /tmp
browseable = yes
printable = yes
guest ok = yes
printing = BSD
# %s-ben adja át a ps fájl nevét
print command = /script/konyvtara/pdf_printer.rb %s /ahova/akarod/a/kimenetet/pdf
A Ruby script:
#!/usr/bin/env ruby
require 'iconv'
input = ARGV[0]
outdir = ARGV[1]
#fájl tartalmának beolvasása
ps = File.open(input).read
#a doksi nevének kinyerés a ps-ből
title = /%%Title: (.+)\s+/.match(ps)[1]
#ha hexa kódolt, akkor visszaalakítás
if title[0] == 60 # '<' char
chars = title.gsub(/[<>]/, '').scan(/../)
title = chars.pack("H2" * chars.size)
end
#esetleg karakterkódolás váltás
title = Iconv.conv("UTF-8", "ISO-8859-2", title.strip).strip
outfile = "#{outdir}/#{title}.pdf"
options = ""
#átalakítás ps2pdf-fel
system("ps2pdf #{options} #{input} '#{outfile}' > /dev/null")
system("chmod 777 '#{outfile}'")
system("rm #{input}")
Hasonló mintára a tiff nyomtató:
outfile = "#{outdir}/#{title}.tiff"
options = "-q -dNOPAUSE -dBATCH -sDEVICE=tiffg3 "
system("gs #{options} -sOutputFile='#{outfile}' #{input} > /dev/null")
A scriptek letölthetőek: pdf, tiff



Recent Comments