Virtual PDF Printer with CUPS Back End for Windows Clients without roaming user profile: Difference between revisions

From SambaWiki
No edit summary
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 15: Line 15:
= Setup =
= Setup =


* Install a new cups-pdf printer on CUPS (I consider that there is already a cups-pdf printer dedicated to linux clients with PPD linux driver, so we will create a second one with RAW driver for windows clients)
* Install a new cups-pdf printer on CUPS (We consider that there is already a cups-pdf printer dedicated to linux clients with PPD linux driver, so we will create a second cups-pdf printer with RAW driver for windows clients)


* Add a new printer in the CUPS web interface (Warning : Only cups-pdf v3.0 and later can create multiple pdf printer)
* Add a new printer in the CUPS web interface (Warning: Only cups-pdf v3.0 and later can create multiple pdf printers)
Choose "CUPS-PDF (Virtual PDF Printer)"
Choose "CUPS-PDF (Virtual PDF Printer)"
Name : Virtual_PDF_Printer_raw
Name : Virtual_PDF_Printer_raw
Line 25: Line 25:
Brand : "Raw"
Brand : "Raw"
Model : "Raw queue"
Model : "Raw queue"
* Change the URI of the new pdf printer created
* Change the URI of the new cups-pdf printer created
# systemctl stop cups
# systemctl stop cups
edit /etc/cups/printers.conf
Edit /etc/cups/printers.conf
in the section <Printer Virtual_PDF_Printer_raw> change "DeviceURI cups-pdf:/" to "DeviceURI cups-pdf:/raw"
In the section <Printer Virtual_PDF_Printer_raw> change "DeviceURI cups-pdf:/" to "DeviceURI cups-pdf:/raw"
# systemctl start cups
# systemctl start cups
* Create a config file for the new pdf printer created
* Create a config file for the new cups-pdf printer created
in /etc/cups/ make "cp cups-pdf.conf cups-pdf-raw.conf"
In /etc/cups/ make "cp cups-pdf.conf cups-pdf-raw.conf"
edit /etc/cups/cups-pdf-raw.conf
Edit /etc/cups/cups-pdf-raw.conf
change to "Out /srv/samba/pdf_output"
Change to "Out /srv/samba/pdf_output"
Uncomment "Label 2" (to avoid pdf files with the same name)
Uncomment "Label 2" (to avoid pdf files with the same name)


Line 48: Line 48:
comment = Virtual PDF Printer raw (or something else)
comment = Virtual PDF Printer raw (or something else)
printable = yes
printable = yes

The above section is not necessary if you use "load printers = yes" in your smb.conf
The above section is not necessary if you use "load printers = yes" in your smb.conf


Line 69: Line 70:
= Using the virtual PDF printer =
= Using the virtual PDF printer =


* Connect the printer on your client.
* Connect the printer "PDFprinter" on your client.
* Connect the share "pdf" on your client.
* Connect the share "pdf" on your client.

* Simply send a print job to the PDFprinter and the PDF is stored in the shared directory "pdf" with the domain user permissions.
* Simply send a print job to the PDFprinter and the PDF is stored in the shared directory "pdf" with the domain user permissions.




= Solving problems =
= Solving problems =


* apparmor prevents reading cups-pdf-raw.conf and writing to /srv/samba/pdf_output.
* Apparmor prevents reading cups-pdf-raw.conf and writing to /srv/samba/pdf_output.
edit /etc/apparmor.d/usr.sbin.cupsd
Edit /etc/apparmor.d/usr.sbin.cupsd
add below before }
Add below before "}" the next two lines:
/etc/cups/cups-pdf-raw.conf r,
/etc/cups/cups-pdf-raw.conf r,
/srv/samba/pdf_output/* rw,
/srv/samba/pdf_output/* rw,


* Restart apparmor
* Restart apparmor

Latest revision as of 08:14, 5 March 2023

Beside the various PDF printer programs, which require an installation on clients, it might be useful, to have a virtual Samba printer. This enables users to create and automatically store PDF files on the server, as simple as printing. No additional software installation is required on the clients, if your Samba Print Server provides Point'n'Print support.



Requirements


Setup

  • Install a new cups-pdf printer on CUPS (We consider that there is already a cups-pdf printer dedicated to linux clients with PPD linux driver, so we will create a second cups-pdf printer with RAW driver for windows clients)
  • Add a new printer in the CUPS web interface (Warning: Only cups-pdf v3.0 and later can create multiple pdf printers)
 Choose "CUPS-PDF (Virtual PDF Printer)"
 Name : Virtual_PDF_Printer_raw
 Description : Virtual PDF Printer Raw (or something else)
 Location : CUPS (or something else)
 Do not select "Share this printer"
 Brand : "Raw"
 Model : "Raw queue"
  • Change the URI of the new cups-pdf printer created
 # systemctl stop cups
 Edit /etc/cups/printers.conf
 In the section <Printer Virtual_PDF_Printer_raw> change "DeviceURI cups-pdf:/" to "DeviceURI cups-pdf:/raw"
 # systemctl start cups
  • Create a config file for the new cups-pdf printer created
 In /etc/cups/ make "cp cups-pdf.conf cups-pdf-raw.conf"
 Edit /etc/cups/cups-pdf-raw.conf
 Change to "Out /srv/samba/pdf_output"
 Uncomment "Label 2" (to avoid pdf files with the same name)
  • Create directory for pdf output on the print server
# mkdir /srv/samba/pdf_output
# chgrp -R "SAMDOM\Domain Users" /srv/samba/pdf_output/
# chmod -R 775 /srv/samba/pdf_output/
  • Add the following configuration to your smb.conf (adjust the spool path if necessary):
 [PDFprinter]
       path = /var/tmp
       printer = Virtual_PDF_Printer_raw
       comment = Virtual PDF Printer raw (or something else)
       printable = yes

The above section is not necessary if you use "load printers = yes" in your smb.conf

 [pdf]
       path = /srv/samba/pdf_output
       read only = no
       hide unreadable = yes
  • Reload Samba
 # smbcontrol all reload-config
  • If you don't want to use Point'n'Print driver installation, add the following line to the printer configuration:
use client driver = yes


Using the virtual PDF printer

  • Connect the printer "PDFprinter" on your client.
  • Connect the share "pdf" on your client.
  • Simply send a print job to the PDFprinter and the PDF is stored in the shared directory "pdf" with the domain user permissions.

Solving problems

  • Apparmor prevents reading cups-pdf-raw.conf and writing to /srv/samba/pdf_output.
 Edit /etc/apparmor.d/usr.sbin.cupsd
 Add below before "}" the next two lines:
   /etc/cups/cups-pdf-raw.conf r,
   /srv/samba/pdf_output/* rw,
  • Restart apparmor
 # systemctl restart apparmor