O navegador Chromium não permite definir o tamanho de papel padrão para "Imprimir para arquivo"

3

No Chromium, como em outros navegadores da Web, há uma função Imprimir, que inclui a impressão em impressoras físicas, bem como uma função "Imprimir para arquivo".

O tamanho padrão do papel para as impressoras físicas parece estar configurado para o mesmo tamanho de papel padrão que as configurações da impressora no próprio CUPS. Então, tudo bem.

No entanto, o tamanho de papel padrão da opção "Imprimir para arquivo" está definido como "Carta dos EUA" e não consigo descobrir como alterá-lo. Isso foi perguntado no SuperUser dois anos e meio atrás, no momento da escrita, mas não havia respostas sensatas dadas. Eu não consegui encontrar nenhum problema óbvio ou bug para isso. Estou faltando alguma coisa?

Minha (possivelmente ingênua) expectativa era de que o Chromium a obteria de uma configuração de sistema padrão. A configuração óbvia é /etc/papersize , que por acaso foi definida como letter . Eu mudei para a4 e reiniciei o navegador, mas não faz nenhuma diferença.

A versão do Chromium que estou usando é 35.0.1916.153-1~deb7u no Debian 7.6 (wheezy), a versão padrão atual para essa versão.

ATUALIZAÇÃO: informei isso ao rastreador de problemas do Chromium como O navegador do Chromium não permite definir o tamanho de papel padrão para "Imprimir para arquivo" , mas Eu não estou segurando minha respiração por uma resposta.

UPDATE 2: @don_crissti apontou que o Chromium tem seu tamanho de papel padrão em "Print to File" do LC_PAPER, ou de qualquer forma, é uma das coisas que ele olha. Eu verifiquei isso. Eu já havia visto algumas coisas na web sobre isso, incluindo este relatório de bug do Mozilla com uma entrada de nosso muito próprio @derobert, mas não tinha levado a sério a sério o suficiente para verificá-lo.

Aqui, claro, também é um Relatório de erros do Debian: Use LC_PAPER .

Pontos extras para quem pode documentar como isso é feito na origem do Chromium.

    
por Faheem Mitha 07.08.2014 / 15:38

2 respostas

1

Acho que Chromium define o tamanho de papel padrão com base nas suas configurações atuais de localidade. Se você iniciá-lo pelo terminal com uma configuração de euro LC_PAPER , por exemplo,

LC_PAPER=fr_FR.utf8 chromium

ou

LC_PAPER=en_GB.utf8 chromium

deve usar como padrão A4 quando Printing to File .

    
por 08.08.2014 / 17:21
2

Na verdade, é um conjunto padrão definido pelo GTK2 (o kit de ferramentas de widget usado pelo Chromium, bem como muitos outros programas).

O padrão é determinado em gtk/gtkpapersize.c , função gtk_paper_size_get_default . Em ordem de preferência, obtém o tamanho do papel de:

  1. nl_langinfo , em sistemas onde isso pode retornar o tamanho do papel. AFAIK, Linux / glibc não é um desses, então esta etapa não é relevante no Linux. Ele terá apenas A4 ou Letter como padrão, ele ignorará todos os outros tamanhos (e continuará com o restante dessas etapas para obter A4 ou Carta).
  2. Em seguida, ele receberá informações sobre o local. Ele usará a categoria LC_PAPER se disponível, caso contrário, usará LC_MESSAGES . Linux / glibc tem LC_PAPER , então essa é a categoria que vai usar. As informações de localidade são retornadas como, de acordo com a Especificação Unix Única, "uma cadeia associada à categoria especificada para a localidade". Em resumo, algo como en_US.UTF-8 .
  3. Se não tiver uma string de localidade, ela assumirá A4 e estará concluída.
  4. Caso contrário, compara a cadeia local em uma lista de códigos de país codificados para locais que usam US Letter. Essas são (pelo menos na minha versão de gtk2) BZ, CA, CL, CO, CR, GT, MX, NI, PA, PH, PR, SV, EUA e VE. Há um comentário dizendo que a lista é proveniente das Informações sobre o idioma do território Unicode , se a localidade está nessa lista, retorna Letter. Caso contrário, retorna A4.

Como nota lateral, a localidade é configurada em vários locais. Para a categoria LC_PAPER , a ordem de pesquisa é (de acordo com man 7 locale ): 1, a variável de ambiente LC_ALL ; 2, a variável de ambiente LC_PAPER ; 3, a variável de ambiente LANG .

    
por 12.08.2014 / 18:42