Перейти к публикации

SolidWorks API конвертация чертежей SLDDRV в PDF при помощи виртуального принтера


Рекомендованные сообщения

Здравствуйте! Возникла проблема при попытке конвертнуть SLDDRW чертеж в PDF c помощью  печати на виртуальный принтер  bullzip

1) Проблема заключается в том что данный код нормально работает при печати  А3, но не применяется изменения к А4 (Линии чертежа жирные, ориентация не меняется).

2) Любопытно узнать как поменять толщину линий. 

3) Что лучше применять swPageSetupInUse_e.swPageSetupInUse_DrawingSheet или swPageSetupInUse_e.swPageSetupInUse_Application если настройки задаются каждому листу отдельно.

 

 

В теме привожу ключевые участки кода, остальной код в аттаче

 

static public void Main(string[] args)
        {
            swApp = System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application") as SldWorks;
            swModel = swApp.ActiveDoc;


            swModelDocExt = swModel.Extension;
            // Применять к: чертежу, приложению, документу...
            swModelDocExt.UsePageSetup = (int)swPageSetupInUse_e.swPageSetupInUse_DrawingSheet;// (int)swPageSetupInUse_e.swPageSetupInUse_Application


            IDrawingDoc drawingDoc = swModel as IDrawingDoc;


            PageSetup pageSetup;
            string[] sheetNames = drawingDoc.GetSheetNames();
            
           // Перембераем листы...
            foreach (var sheetName in sheetNames)
            {
                drawingDoc.ActivateSheet(sheetName);  
                sheet = drawingDoc.GetCurrentSheet(); 
                // PageSetup позволяет задавать настройки принтера. если установлено swPageSetupInUse_e.swPageSetupInUse_Application/document - то 
                // для всех четрежей, если  swPageSetupInUse_e.swPageSetupInUse_DrawingSheet - для активного. 
                pageSetup = sheet.PageSetup;  
                 // Массив параметров листа...
                var sheetPropertis = (double[])sheet.GetProperties2();  
                Orientation(pageSetup, sheetPropertis);
                printSpec = (PrintSpecification)swModelDocExt.GetPrintSpecification(); 
               // Печатаем каждую итерацию выбраный лист, а потом соеденим все файлы (Сделано было так что бы применить настройки к каждому чертежу по
               // отдельности)
                printSpec.ScaleMethod = (int)swPrintSelectionScaleFactor_e.swPrintCurrentSheet;
                printSpec.PrintToFile = false;
                swModelDocExt.PrintOut4("", "", printSpec);
            }


            printSpec.RestoreDefaults();
            printSpec.ResetPrintRange();
            printSpec.PrinterQueue = ""; 
            Console.ReadLine();
        }

.

Program.txt

Изменено пользователем tenomo
Ссылка на сообщение
Поделиться на других сайтах


Возникла проблема при попытке конвертнуть SLDDRW чертеж в PDF c помощью печати на виртуальный принтер bullzip
Как вариант использовать макрос конвертации через PDFCreator: http://cccp3d.ru/topic/82176-как-конвертировать-формат-файла/?p=770132
Ссылка на сообщение
Поделиться на других сайтах

Мне нужно печатать программно для того что бы кидать таски в PDM, разве что снова таки программно запустить макрос.

Но именно его я брал пример для реализации выше описного кода. 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...