Изменение форматки документа

Автор PKEv, 06.12.19, 14:29:02

« назад - далее »

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

PKEv

Подскажите как программно изменить форматку у документа
Пытаюсь вот так:

    iDocPar = api5.GetParamStruct(const7.ko_DocumentParam)
    iSheetPar = iDocPar.GetLayoutParam()
    iSheetOptions = module5.ksSheetOptions(api5.GetParamStruct(const7.ko_SheetOptions));
    iDocOptions = doc5.ksGetDocOptions(4, iSheetOptions)
    ilayoutName = iSheetOptions.layoutName
    ishtType = iSheetOptions.shtType
    iSheetOptions.shtType = 1
    res = doc5.ksSetDocOptions(4, iSheetOptions)

в результате res всегда возвращается = 0, и изменений не происходит

ТрындецЪ

import pythoncom
from win32com.client import Dispatch, gencache

KAPI7 =  gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
iApplication = KAPI7.IKompasAPIObject(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(KAPI7.IKompasAPIObject.CLSID, pythoncom.IID_IDispatch)).Application

iDocument = iApplication.ActiveDocument
if iDocument:
    if iDocument.DocumentType == 1: # если чертёж
        iLayoutSheets = iDocument.LayoutSheets
        iLayoutSheet = iLayoutSheets.Item(0) # первый лист документа
        iLayoutSheet.LayoutStyleNumber = 1  # номер стиля оформления в библиотеке
        ISheetFormat = iLayoutSheet.Format
        ISheetFormat.Format = 4              # формат листа (А4)
        ISheetFormat.VerticalOrientation = 1 # вертикальная ориентация (да - 1, нет -0)
        iLayoutSheet.Update()

PKEv