Având în vedere: Un program sau un serviciu, cu capacitatea de a pregăti documentele pentru tipărire. Un computer cu sistemul de operare instalat Ubuntu (sau Debian) și un mediu grafic. Orice echipament pentru imprimare.
Sarcină: permite imprimarea unui document .pdf finit cu modificări automate înainte de imprimare.
Pe scurt, logica propusă funcționează astfel: vom trimite documentul pentru a imprima „un fișier“ (imprimantă virtuală), atunci când salvați declanșează un script care modifică conținutul documentului și trimite-l pe dispozitivul de imprimare fizic.
1. Să începem cu instalarea unui program care să știe cum să "urmeze" evenimentele din sistemul de fișiere și să răspundă așa cum ne trebuie.
] $ sudo aptitude instala incron
După instalare, configurați programul incron
/etc/incron.conf - fișierul principal de configurare incron
/etc/incron.d/ - Director pentru configurații de locuri de muncă
Să adăugăm o nouă sarcină pentru sarcina noastră. Sintaxa sarcinii:
de exemplu, pentru scriptul nostru, atunci când creați (salvarea) un nou fișier .pdf
/ var / www / html IN_CREATE /user/home/scripts/print_pdf.sh
Lista completă a posibilităților și condițiilor pentru declanșarea incronului, în incronul omului
2. Apoi, instalați programul pentru editare .pdf - pdftk. Pdftk poate lucra cu fișiere .pdf din linia de comandă, este convenabil pentru utilizarea în scripturi. Nu este simplu și funcționalitatea este foarte mare, dar avem nevoie de foarte puțin din ea, și anume posibilitatea de a "lipi" două documente .pdf (opțiune - fundal).
] $ sudo aptitude instalare pdftk
] $ pdftk in.pdf fundal back.pdf output out.pdf
În acest exemplu, programul folosește fișierul inițial in.pdf, apoi folosind opțiunea de fundal și fișierul back.pdf face lipirea, iar pe ieșire obținem fișierul out.pdf
Lista completă a capabilităților de procesare în pdftk, în manuale
3. După ce am reușit să schimbăm fișierul folosind pdftk, trebuie să organizăm imprimarea. Vom imprima prin programul consola standard lp.
Exemplu de utilizare a lp:
/ home / utilizator / tipăriți IN_CREATE /home/user/print/print.sh
Acum când trimitem pentru a imprima "la dosar" (imprimanta virtuală sau doar salva) la imprimarea directoarelor, scriptul print.sh funcționează.
/ usr / bin / lp -P 1 "$" / * pdf
/ usr / bin / pdftk "$" / * .pdf fundal "$" / back output "$" / out
/ usr / bin / lp -P 1 "$" / ieșire
Linia de fund: Dacă vrem să imprimați un document pdf cu modificările necesare în conținutul, vom alege pur și simplu de imprimare (sau a salva) „într-un fișier“ și selectați directorul de imprimare, tot ceea ce va face pentru noi incron, pdftk și lp. Am reușit să tipărim documentul pregătit cu editare automată "în zbor" fără a recurge la manipulări suplimentare, lungi și complexe cu programe de editare în format pdf.