Imprimir texto em pdf usando cups-pdf não funciona

0

Instalei o cups-pdf 3.0 beta 2 em um sistema operacional Redhat 7.

Eu compilei o código manualmente (seguindo as instruções no site ) depois de instalar o cups-devel-1.6. 3-17.el7_1.1. Estou executando cups-devel-1.6.3-17.el7_1.1. Eu desabilitei o SELinux temporariamente para ter certeza de que isso não interferiria com isso.

Eu criei uma impressora chamada Cups-PDF usando este comando:

/usr/sbin/lpadmin -p Cups-PDF -v cups-pdf:/ -m CUPS-PDF_opt.ppd -D "PDF Virtual printer" -E

onde o CUPS-PDF_opt.ppd é um arquivo na distribuição arquivo .

Eu tive / tive os seguintes problemas:

  1. A definição da impressora desapareceu depois que reiniciei as xícaras. Não tenho certeza por que e eu tive que recriá-lo toda vez que eu reiniciei xícaras. Mas agora está no printers.conf. Talvez tenha sido porque o SELinux foi ativado em algum momento.
  2. o cups-pdf não parece ler o arquivo cups-pdf.conf que copiei em / etc / cups. Este é o local padrão no arquivo cups-pdf.h para o arquivo de configuração. Os arquivos são gerados em / var / spool / cups em vez de / var / spool / cups-pdf / $ {USER}.
  3. echo "Test" | lpr -P Cups-PDF gera um arquivo de texto que não é um arquivo pdf. Quando imprimo a página link no FireFox, funciona bem, um arquivo é gerado no / var / spool / cups pasta e se eu definir sua extensão para pdf abre quase ok. Quando abri-lo no Windows com o Acrobat Reader, ele mostra um erro: a fonte 'DSXFCQ + NimbusSansL' contém um erro / BBox.

O que estou fazendo de errado? Eu também verifiquei as permissões de segurança nos arquivos e eles parecem ok. Todos os comandos de impressão que eu tentei foram executados usando root.

Obrigado

Apenas uma atualização: verifiquei as mensagens e ainda recebo esta:

Jan  8 18:17:58 computer setroubleshoot: failed to retrieve rpm info for /usr/lib/cups/backend/cups-pdf
Jan  8 18:17:58 computer setroubleshoot: SELinux is preventing /usr/lib/cups/backend/cups-pdf from remove_name access on the directory cups2pdf-3920. For complete SELinux messages. run sealert -l 497551b3-64a7-466e-8f91-1b8b3dff4884
Jan  8 18:17:58 computer python: SELinux is preventing /usr/lib/cups/backend/cups-pdf from remove_name access on the directory cups2pdf-3920.

*****  Plugin catchall (100. confidence) suggests   **************************

If you believe that cups-pdf should be allowed remove_name access on the cups2pdf-3920 directory by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep cups-pdf /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp

Outra atualização: depois de seguir a sugestão desta última mensagem de log, ela começou a funcionar corretamente.

    
por costa 09.01.2016 / 04:19

1 resposta

0

A questão parecia estar relacionada ao SELinux. Depois de conceder o acesso remove_name de acordo com a segunda atualização da minha mensagem, ele começou a funcionar.

No caso de alguém precisar disso aqui, é o arquivo te que eu usei para configurar o SELinux para cups-pdf. É baseado em um dos links fora da página do produto: link .

module cups_pdf 3.0beta2;

require {
    class dir { add_name create getattr remove_name search setattr write };
    class file { create getattr read setattr unlink write open};

    type cupsd_t;
    type home_root_t;
    type user_home_dir_t;
    type user_home_t;
    type print_spool_t;
    type unconfined_home_dir_t;
    type unconfined_home_t;
    type var_spool_t;
}

allow cupsd_t home_root_t:dir { getattr search };

allow cupsd_t user_home_dir_t:dir { getattr search };
allow cupsd_t user_home_t:dir { add_name create getattr remove_name search setattr write };
allow cupsd_t user_home_t:file { create getattr open read setattr unlink write };

allow cupsd_t unconfined_home_dir_t:dir { getattr search };
allow cupsd_t unconfined_home_t:dir { add_name create getattr remove_name search setattr write };
allow cupsd_t unconfined_home_t:file { create getattr open read setattr unlink write };

allow cupsd_t var_spool_t:dir { add_name create getattr remove_name search setattr write  };
allow cupsd_t var_spool_t:file { create getattr open read setattr unlink write };
    
por 09.01.2016 / 22:59

Tags