• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Автоматизация печати документов Компас

Автор Михаил.Болгов, 14.08.16, 09:34:47

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

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

Михаил.Болгов

Добрый день,

Я пишу программу для автоматической печати файлов с помощью АПИ программы Компас. Мой вопрос: как центрировать чертёж на листе бумаги? В настройках печати программы я такие настройки вижу (см вложенный скриншот), но в АПИ я их не нашёл.

Моя функция печати выглядит так:
---
    Function PrintKompasFile(sFile As String, sPrinter As String) As Boolean
        Dim Kompas As KompasAPI7.IApplication = CreateObject("Kompas.Application.7")
        If IsNothing(Kompas) Then
            Return False
        End If

        Dim bResult = False
        Kompas.Visible = False
        Dim pj = Kompas.PrintJob

        Dim op As IPrintJob_OutputParameters = pj
        op.Color = Kompas6Constants.ksOutputColorTypeEnum.ksPJ_OCByView
        op.CollateCopies = True
        op.AutoScale = True
        op.NumberOfCopies = 1
        op.PlotToFile = False

        Const ksAllSheets = 0
        Dim doc As KompasAPI7.IKompasDocument = Kompas.Documents.Open(sFile, True)

        If pj.AddSheets(doc.Name, Nothing, ksAllSheets) Then
            Dim wPage, hPage, wSheet, hSheet As Double

            If pj.GetPageGabarites(wPage, hPage) Then
                For i = 0 To pj.SheetsCount() - 1
                    If pj.Sheet(i).GetGabarites(wSheet, hSheet) Then
                        If (wPage > hPage) <> (wSheet > hSheet) Then
                            pj.Sheet(i).Orientation = Kompas6Constants.ksAngleEnum.ksAngle90
                        Else
                            pj.Sheet(i).Orientation = Kompas6Constants.ksAngleEnum.ksAngle0
                        End If
                    End If
                Next
            End If

            bResult = pj.Execute(sPrinter)
        End If

        doc.Close(Kompas6Constants.DocumentCloseOptions.kdDoNotSaveChanges)
        Kompas.Quit()

        Return bResult
    End Function