Где в LibreOffice Calc галочка “Черно-белая печать”? В Excel так

Автор ForumOOo (бот), 18 июля 2022, 17:43

0 Пользователи и 1 гость просматривают эту тему.

ForumOOo (бот)

Компонент: Calc
Версия продукта: 7.x
Сборка: Version: 7.3.4.2 (x64) / LibreOffice Community Build ID: 728fec16bd5f605073805c3c9e7c4212a0120dc5 CPU threads: 6; OS: Windows 10.0 Build 18363; UI render: Skia/Raster; VCL: win Locale: ru-RU (ru_RU); UI: ru-RU Calc: CL
ОС: Astra Linux

Где в LibreOffice Calc галочка "Черно-белая печать"? В Excel такая есть, она позволяет не выводить на печать заливку ячеек.
Если такой функции нет, то подскажите, как в VBA LibreOffice Calc реализовать это с помощью макроса?

--
Подпись: Василий Курышев
Эл. почта: kuryshev.vasya92@mail.ru

mikekaganski

С уважением,
Михаил Каганский

sokol92

#2
Для справки: в Excel за черно-белую печать отвечает свойство PageSetup.BlackAndWhite.

Метод, предложенный @Lupp (вторая ссылка в ответе Михаила) удалит все форматирование, включая границы ячеек, стили шрифтов и т.п., а не только цветовое оформление.
Для удаления цвета ячеек и цвета шрифтов (прямое, не условное форматирование) можно использовать конструкцию вида:
Sub Test
 Dim oSheet
 oSheet=ThisComponent.Sheets(0)
 oSheet.CellBackColor=-1
 oSheet.CharColor=-1
End Sub


Еще вспомнил: Menu / Options / Print / Defaults. Птичка "Convert colors to grayscale" позволяет печатать в оттенках серого (не то же самое, что черно-белая печать).
В русском интерфейсе: Меню / Сервис / Параметры / Печать / По умолчанию. "Преобразовать цвета в оттенки серого".
Владимир.

Vasiliy Kuryshev

Всем спасибо за ответы  :). Последний макрос работает.
Я думаю переделать его так, чтобы он сначала запоминал форматирование, затем убирал форматирование, печатал активный лист, а потом возвращал форматирование ячеек обратно.
Таким образом я смогу добиться того же, что делает кнопка "Чёрно-белая печать" в Excel.

sokol92

Цитата: Vasiliy Kuryshev от 20 июля 2022, 18:27Я думаю переделать его так, чтобы он сначала запоминал форматирование, затем убирал форматирование, печатал активный лист, а потом возвращал форматирование ячеек обратно.
Альтернатива (макрос): скопировать лист в конец документа, подготовить к печати, отпечатать, удалить.
Владимир.

economist

Можно макросом сохранить документ, снести формат и напечатать, перезагрузить документ (т.е. восстановить). Это позволит не париться по поводу разрыва связей формул и диапазонов.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

mikekaganski

#6
Цитата: economist от 20 июля 2022, 19:31макросом сохранить документ, снести формат и напечатать, перезагрузить документ (т.е. восстановить)

Теоретически правильнее создать контекст отмены, в нём произвести все изменения, распечатать и откатитьочистить стек redo). Правда, практически есть баги с отменой :( - надо смотреть, корректно ли отменяются изменения, производимые макросом.

Но в любом случае - сохранение документа при распечатке крайне опасно, пользователь может быть весьма "благодарен", когда выяснит, что его документ перезаписан временными изменениями, которые он делал только для распечатки.
С уважением,
Михаил Каганский