| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Узнать когда закончилась печать документа.

Узнать когда закончилась печать документа.

Ответ
Поиск в этой теме
Непрочитано 12.09.2017, 14:23 #1
Узнать когда закончилась печать документа.
AlexandrGT
 
Регистрация: 12.09.2017
Сообщений: 3

Добрый день.

Печатаю в PDF из модели по списку файлов.

Делаю так:
открываю файл
смотрю границы чертежа
создаю формат для DWG to PDF.pc3 по размерам границ
печатаю в PDF

С одним файлом всё гладко, печатается.

Если взять список файлов
Код:
[Выделить все]
DocumentCollection acDocMgr = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;

for (int i = 0; i < FileList.Items.Count; ++i)
                {
                    if (File.Exists(FileList.Items[i].Text))
                    {
                        acDocMgr.Open(FileList.Items[i].Text, false);                      
                        Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;                       
                        Class1.test.prnt(acDoc);  // там создается формат и печатается  PDF                       
                       // acDoc.CloseAndDiscard();   
                    }
                    else
                    {
                        acDocMgr.MdiActiveDocument.Editor.WriteMessage("Файла " + FileList.Items[i].Text +
                                                                       " не существует.");
                    }             
                }
то проблема возникает если закрывать файл (acDoc.CloseAndDiscard()), если оставлять открытым всё проходит хорошо.

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

Подскажите, как узнать момент окончания печати? Т.е. момент когда уже можно закрыть файл.
Если оставлять открытыми, то быстро память съедает, много не напечатать.
Просмотров: 5996
 
Непрочитано 12.09.2017, 15:20
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Тут в справке ( http://docs.autodesk.com/ACD/2010/EN...umber=d0e51559 )вроде нормально написано
Что по завершению печати дергается метод EndPlot у объекта класса PlotEngine ...вот после него и делайте пометку, что файлик можно закрыть... правда я бы еще до кучи проверил бы существует ли файл pdf и когда его последний раз трогали, ну и его статус доступа...

Последний раз редактировалось Boxa, 12.09.2017 в 15:25.
Boxa вне форума  
 
Автор темы   Непрочитано 12.09.2017, 15:37
#3
AlexandrGT


 
Регистрация: 12.09.2017
Сообщений: 3


Цитата:
Сообщение от Boxa Посмотреть сообщение
EndPlot у объекта класса PlotEngine
Так я и закрываю уже после этого метода (код печати брал тут http://docs.autodesk.com/ACD/2010/EN...umber=d0e51559)
Код:
[Выделить все]
Class1.test.prnt(acDoc);  // там создается формат и печатается  PDF      
заканчивается строками:

//     Finish the plot
                  acPlProgDlg.PlotProgressPos = 100;
                  acPlProgDlg.OnEndPlot();
                  acPlEng.EndPlot(null);
если поставить точку останова на acDoc.CloseAndDiscard();, делать паузу и запускать дальше, то проходит без ошибки.
конечно можно паузу поставить, но это не выход.

Цитата:
Сообщение от Boxa Посмотреть сообщение
правда я бы еще до кучи проверил бы существует ли файл pdf и когда его последний раз трогали
Файл PDF создается сразу после BeginGenerateGraphics, т.е. когда печать еще не закончена, а только начинается.
AlexandrGT вне форума  
 
Непрочитано 13.09.2017, 00:06
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


А я бы посмотрел в сторону системной переменной BACKGROUNDPLOT и установил бы её в 0.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 13.09.2017, 07:43
#5
AlexandrGT


 
Регистрация: 12.09.2017
Сообщений: 3


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
А я бы посмотрел в сторону системной переменной BACKGROUNDPLOT и установил бы её в 0.
А вот это я первым делом сделал. Не помогло.
AlexandrGT вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Узнать когда закончилась печать документа.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Не работает печать в Autocad 2012. Милая AutoCAD 3 30.08.2012 07:08
Как узнать имя документа при сохранении? Glam Troll Программирование 4 26.07.2012 11:17
Помогите узнать номер строки в котрой произошла ошибка в программе на VBA МишаИнженер Программирование 3 27.05.2012 23:27
Печать широкой однолинейной схемы? est412 AutoCAD 12 10.04.2007 10:06