Каталог решений - Правильная установка шрифта средствами 1С

Правильная установка шрифта средствами 1С

Правильная установка шрифта средствами 1С

В наличии

Как правильно установить шрифт средствами 1С, а не просто копированием.

Категория:

Описание

Если просто копировать файл шрифта в системную папку windows, то потом его нельзя использовать. Есть способ из 1С установить шрифт штатным образом. Источник https://www.cloudtec.ch/blog/tech/install-font-command-line-script-windows-7.html и http://www.cyberforum.ru/assembler/thread455807.html.

Ниже приведен код для обработки, где в макете сохранён шрифт code128.ttf в виде двоичных данных. Но метод подойдет для любых шрифтов, которые должны устанавливаться штатными средствами.

 

СистемнаяИнформация = Новый СистемнаяИнформация; 
ВерсияОС = СистемнаяИнформация.ВерсияОС;
ИмяФайла = "code128.ttf";
Макет = ПолучитьМакет("Макет");
Если Найти(ВерсияОС, "Microsoft Windows XP") = 0 Тогда
	objShell = Новый COMОбъект("Shell.Application");
	Каталог = КаталогВременныхФайлов();
	ПолноеИмяФайла = Каталог + ИмяФайла;
	Макет.Записать(ПолноеИмяФайла);
	objNameSpace = objShell.Namespace(Каталог);
	objFont 	 = objNameSpace.ParseName(ИмяФайла);
	objFont.InvokeVerb("Install");
	objFont = Неопределено;
	УдалитьФайлы(ПолноеИмяФайла);
Иначе
	WshShell 	= Новый COMОбъект("WScript.Shell");
	FSO 	 	= Новый COMОбъект("Scripting.FileSystemObject");
	ПутьШрифты 	= wshShell.SpecialFolders.Item("Fonts");
	ПолноеИмяФайла = ПутьШрифты + "\" + ИмяФайла;
	Макет.Записать(ПолноеИмяФайла);
	WshShell.Run("RunDll32.exe gdi32.dll,AddFontResourceA " + FSO.GetBaseName(ПолноеИмяФайла));
КонецЕсли;
has been added to your cart:
Оформление заказа