Браузер хрома не позволяет устанавливать формат бумаги по умолчанию для “Печати в Файл”

Я использовал бы watch как другой ответ предполагает, но только показать Вам, как можно приблизиться к на вид сложной проблеме с помощью стандартных блоков, обеспеченных оболочкой, таких как Unix; некоторое время цикл может быть простым способом выполнить Ваше цикличное выполнение.

$ while [ 1 ]; do clear; date; cat <afile>; sleep 1 ;done

Пример

$ while [ 1 ]; do clear; date; cat sample.txt; sleep 1 ;done
Fri Nov 15 09:17:39 EST 2013
1
2
3
4
5

Экран очищается и затем после секунды, это отображено:

Fri Nov 15 09:17:40 EST 2013
1
2
3
4
5
3
20.03.2017, 12:18
2 ответа

Думаю, Chromium устанавливает размер бумаги по умолчанию на основе ваших текущих настроек локали. Если вы запускаете его с терминала с настройкой в ​​евро LC_PAPER , например

LC_PAPER=fr_FR.utf8 chromium

или

LC_PAPER=en_GB.utf8 chromium

по умолчанию должно быть A4 , когда Печать в файл .

1
27.01.2020, 21:23

На самом деле это значение по умолчанию, установленное GTK2 (набор инструментов виджетов, используемый Chromium, а также многими другими программами).

Значение по умолчанию определяется в gtk / gtkpapersize.c , функция gtk_paper_size_get_default . В порядке предпочтения он получает свой размер бумаги из:

  1. nl_langinfo , в системах, где это может возвращать размер бумаги. AFAIK, Linux / glibc не входит в их число, поэтому этот шаг не актуален для Linux. По умолчанию он принимает только A4 или Letter, он игнорирует любые другие размеры (и продолжит выполнение остальных шагов, чтобы получить A4 или Letter).
  2. Затем он получит информацию о локали. Он будет использовать категорию LC_PAPER , если она доступна, в противном случае будет использоваться LC_MESSAGES . В Linux / glibc есть LC_PAPER , поэтому он будет использовать эту категорию. Информация о языковом стандарте возвращается как, согласно спецификации Single Unix, «строка, связанная с указанной категорией для языкового стандарта». Короче, что-то вроде en_US.UTF-8 .
  3. Если не получена строка локали, предполагается, что A4, и готово.
  4. В противном случае он сравнивает строку локали с жестко запрограммированным списком кодов стран для мест, в которых используется буква США. Это (по крайней мере, в моей версии gtk2) BZ, CA, CL, CO, CR, GT, MX, NI, PA, PH, PR, SV, US и VE. Есть комментарий, в котором говорится, что список взят из Unicode Territory-Language Information . Если языковой стандарт находится в этом списке, он возвращает Letter. В противном случае возвращается A4.

Кстати, локаль настраивается в нескольких местах. Для категории LC_PAPER порядок поиска (в соответствии с локалью man 7 ): 1, переменная среды LC_ALL ; 2, переменная окружения LC_PAPER ; 3, переменная среды LANG .

2
27.01.2020, 21:23

Теги

Похожие вопросы