Não é possível imprimir em PDF usando cups-pdf; costumava trabalhar, agora "falha ao definir o modo de arquivo" impressão como não raiz

5

Aqui está algo realmente estranho: algo que costumava funcionar bem no Debian, e depois quebrou, mesmo sem um dist-upgrade.

Eu costumava usar a impressora virtual CUPS PDF para imprimir qualquer coisa em um arquivo PDF. Agora, isso não funciona: nada aparece em ~ / PDF quando imprimo como um usuário comum. Se eu fizer login na interface de administração do CUPS e usá-la para imprimir uma página de teste na impressora, ela funcionará; o PDF aparece bem em ~ root / PDF. Mas quero poder imprimir em PDF como um usuário não raiz ...

/ var / log / cups / cups-pdf_log tem isto a dizer:

Fri Feb  7 18:31:57 2014  [STATUS] ***Experimental Option: DecodeHexStrings
Fri Feb  7 18:31:57 2014  [ERROR] failed to set file mode for PDF file (non fatal) (/michael/home/PDF/PDF_-_CUPS_1_5.pdf)
Fri Feb  7 18:31:57 2014  [STATUS] PDF creation successfully finished (michael)

OK, então há failed to set file mode for PDF file . Procurar por isso, no entanto, não ajuda muito. Eu encontrei uma página web que sugeria mudar o diretório Out em /etc/cups/cups-pdf.conf, então eu fiz ( Out /tmp/${USER}.cups-pdf ) e reiniciei o CUPS, e quando eu tento imprimir em PDF ele pega mudar porque criou um diretório, mas depois se queixou do mesmo erro no novo local.

Apesar de aparentemente estar na versão mais recente (CUPS 1.5.3-5 + deb7u1, CUPS-PDF 2.6.1-6, Debian Wheezy), decidi reinstalar o CUPS para o caso de ter quebrado de alguma forma.

sudo apt-get --reinstall -u install cups cups-pdf cups-bsd cups-client cups-common cups-driver-gutenprint cups-filters cups-pk-helper cups-ppdc

No entanto, ainda estou recebendo o mesmo erro.

A configuração de LogType 7 em /etc/cups/cups-pdf.conf produz isso:

Fri Feb  7 19:01:29 2014  [DEBUG] switching to new gid (lpadmin)
Fri Feb  7 19:01:29 2014  [DEBUG] initialization finished (v2.6.1)
Fri Feb  7 19:01:29 2014  [DEBUG] user identified (michael)
Fri Feb  7 19:01:29 2014  [DEBUG] output directory name generated (/tmp/michael.cups-pdf)
Fri Feb  7 19:01:29 2014  [DEBUG] user information prepared
Fri Feb  7 19:01:29 2014  [DEBUG] spoolfile name created (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:29 2014  [DEBUG] source stream ready
Fri Feb  7 19:01:29 2014  [DEBUG] destination stream ready (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:29 2014  [DEBUG] owner set for spoolfile (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:29 2014  [DEBUG] using traditional fgets
Fri Feb  7 19:01:30 2014  [DEBUG] found beginning of postscript code (%!PS-Adobe-3.0)
Fri Feb  7 19:01:30 2014  [DEBUG] now extracting postscript code
Fri Feb  7 19:01:30 2014  [DEBUG] found title in ps code ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] found end of postscript code (%%EOF)
Fri Feb  7 19:01:30 2014  [DEBUG] all data written to spoolfile (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:30 2014  [DEBUG] trying to use PS title ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] removing trailing newlines from title ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [STATUS] ***Experimental Option: DecodeHexStrings
Fri Feb  7 19:01:30 2014  [DEBUG] checking for hex strings ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] not a hex string, has no start marker ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] removing enclosing parentheses () from full title ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] calling alternate_replace_string
Fri Feb  7 19:01:30 2014  [DEBUG] removing alternate special characters from title (What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange)
Fri Feb  7 19:01:30 2014  [DEBUG] truncating title (What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_)
Fri Feb  7 19:01:30 2014  [DEBUG] title successfully retrieved (What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_)
Fri Feb  7 19:01:30 2014  [DEBUG] input data read from stdin
Fri Feb  7 19:01:30 2014  [DEBUG] output filename created (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)
Fri Feb  7 19:01:30 2014  [DEBUG] ghostscript commandline built (/usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f /var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:30 2014  [DEBUG] output file unlinked (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)
Fri Feb  7 19:01:30 2014  [DEBUG] TMPDIR set for GhostScript (/var/tmp)
Fri Feb  7 19:01:30 2014  [DEBUG] waiting for child to exit
Fri Feb  7 19:01:30 2014  [DEBUG] entering child process
Fri Feb  7 19:01:30 2014  [DEBUG] GID set for current user
Fri Feb  7 19:01:30 2014  [DEBUG] supplementary groups set for current user
Fri Feb  7 19:01:30 2014  [DEBUG] UID set for current user (michael)
Fri Feb  7 19:01:30 2014  [DEBUG] ghostscript has finished (256)
Fri Feb  7 19:01:30 2014  [ERROR] failed to set file mode for PDF file (non fatal) (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)
Fri Feb  7 19:01:30 2014  [DEBUG] ERRNO: 2
Fri Feb  7 19:01:30 2014  [DEBUG] no postprocessing
Fri Feb  7 19:01:30 2014  [DEBUG] spoolfile unlinked (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:30 2014  [DEBUG] all memory has been freed
Fri Feb  7 19:01:30 2014  [STATUS] PDF creation successfully finished (michael)

Eu noto que parece que o Ghostscript está saindo com o status 256 ( [DEBUG] ghostscript has finished (256) ), mas não consigo encontrar nada que me diga por que exatamente ele sairia com esse código de erro.

Minha conta de usuário não é membro dos grupos lp ou lpadmin , mas isso não mudou.

Imprimir para a impressora física na minha mesa funciona bem; Eu fiz isso recentemente, muito depois de a impressão em PDF começar a agir assim.

Qual pode ser o meu problema?

    
por a CVn 07.02.2014 / 19:19

4 respostas

1

Como você pode ver neste post: link

RESOLVIDO pela maneira mais fácil (desabilitando o perfil do apparmor dos copos)

Execute estes comandos ...

sudo mv /etc/apparmor.d/usr.sbin.cupsd /etc/apparmor.d/disable
sudo /etc/init.d/apparmor restart
    
por 19.12.2014 / 01:13
1

Os diretórios pessoais dos meus usuários estão em / local / home, então tive que mudar a linha

@{HOMEDIRS}=/home/ /local/home/

em /etc/apparmor.d/tunables/home . Então reinicie o apparmor com

sudo service apparmor restart
    
por 14.10.2017 / 01:00
0

Olhando seus registros, parece que há um problema ao definir as permissões no arquivo em /tmp .

Fri Feb 7 19:01:30 2014 [ERROR] failed to set file mode for PDF file (non fatal) (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)

Eu confirmo que você é capaz de fazer isso. Talvez as permissões no diretório pai, /tmp , tenham sido alteradas.

    
por 07.02.2014 / 19:48
0

Eu tive o mesmo problema e consertei mudando 2 linhas em /etc/apparmor.d/usr.sbin.cupsd (em torno da linha 156) para /PDF/ rw e /PDF/* rw , para o diretório de saída desejado, depois reiniciando apparmor & copos.

    
por 02.05.2014 / 16:35