Страница 3 из 8
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 25 Март 2022, 21:23
				 RaFaeL
				Единственная известная мне проблема работы с графикой при использовании image2pdf это отсутствие поддержки прозрачных вложенных картинок, они становятся непрозрачными. Про другие сам послушал бы )
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 25 Март 2022, 21:32
				 finsoftrz
				Ну, фик его знает, у меня эта библиотека в целом работает. Некоторые формы имеют искажения, проверять надо. Надо еще учесть, что используется только для первичных бланков - всяких накладных и т.п. Для отчетов стадартно xls. Про кларионовский репорт именно для отчетов я давно уже писал, что это совсем уж древний подход из 90-х, когда все печаталось на бумаге. Я от него отказался почти 20 лет назад.
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 26 Март 2022, 14:43
				 Губин Игорь
				Игорь Столяров писал(а): 25 Март 2022, 19:54
Можно сохранять из Microsoft Word документ в PDF - см. табличку с доступными форматами в прошлом ответе.
 
Глюк там, СЭР, при обработке вставленных и в текст и отмасштабированных картинках... УВЫ...
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 26 Март 2022, 15:12
				 Игорь Столяров
				Губин Игорь писал(а): 26 Март 2022, 14:43
Глюк там, СЭР, при обработке вставленных и в текст и отмасштабированных картинках
 
Никогда такого не видел ... может быть зависит от версии офисного пакета ?
С другой стороны я экспортирую вставленные 1:1 WMF листы REPORT, без масштабирования ...
C графикой в REPORT проблем нет. 
Если у Вас есть проблемный DOCX для теста - сбросьте, проверю экспорт в PDF.
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 26 Март 2022, 15:22
				 Губин Игорь
				Игорь Столяров писал(а): 26 Март 2022, 15:12
икогда такого не видел ... может быть зависит от версии офисного пакета ?
 
У нас на разных пакетах и компьютерах. При печати, если файл создавался через стандартные драйвера мелкомягких, картинки как-то странно себя ведут - приходится использовать "печатать как изображение", иначе картинки (сплошь png - иконки в описание) начинают вести себя как на испорченном телевизоре. А есть одна картинка, скан офисной печати, которую, вообще, обрезает. 
Простите, долго генерить примеры.
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 26 Март 2022, 15:34
				 Игорь Столяров
				Губин Игорь писал(а): 26 Март 2022, 15:22
Простите, долго генерить примеры.
 
Не проблема, мне оно не надо ...
Я сталкивался с проблемой отображения PNG в REPORT, когда графику делали в шаровом редакторе GIMP.
Его любят почему-то вебдизайнеры, но он работает с какими-то хипстерскими понятиями формата PNG ...
Тупо пересохраняли графику PNG в штатном Windows PaintBrush и проблемы нет. 

 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 11:27
				 mpn2
				SergioRaguzini писал(а): 25 Март 2022, 19:22
Есть еще одна, непонятная для меня ситуация при работе с Word, когда после экспорта отчета в файл MsWord и дальнейшим PROP:Deactivate, в Диспетчере задач Windows остается работающим в фоне процесс winword.exe хотя окно Word закрыто и внешне вроде бы это ничему не мешает.
 
Мешает!
Именно про это и был мой вопрос! Надо 
корректно закрыть WORD, он должен уйти из процессов в Диспетчере задач.
При всем моем уважении к вам (ко всем) как к "продвинутым" программистам - ничего не меняется, а именно: 
как и 20 лет назад слишком далеки вы от народа.... у вас у всех крутые компы с "последними наворотами" и вы думаете что и у всех остальных так же. А оно не так, особенно в органах местной муниципальной власти - там у людей компы 2000-2004 года рождения (и покупать людям что то новое никто не торопиться). И когда тот же WORD висит в процессах по 20-30 раз то виснет все (в самый неподходящий момент).
Это первое!
Второе! Пока никто из вас ничем конкретным мне не помог .... я перепробовал все, что вы тут предложили .... но WORD остается висеть в прцесах в Диспетчере задач.
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 11:39
				 ingasoftplus
				У нас тупо работает схема (на примере екселя, но для ворда тоже пойдет):
Код: Выделить всё
 
            ! Close all Open MS XLS Instances
    
            case message('Are you sure you want to close all Microsoft Excel Instances?','SYSTEM MESSAGE',ICON:Question,'&Yes|&No',2)
            of 1
                run('pskill excel.exe',1)
                message('All Microsoft Excel Instances closed','SYSTEM MESSAGE')
            of 2                                          
    
            end
где pskill = 
https://docs.microsoft.com/en-us/sysint ... ads/pskill 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 12:33
				 Игорь Столяров
				mpn2 писал(а): 28 Март 2022, 11:27
я перепробовал все, что вы тут предложили
 
Не обладая даром телепатии - не могу прокомментировать этот наезд ... 

Попробуйте пожалуйста без самодеятельности выполнить точно вот такой код:
Код: Выделить всё
  WordControl{'Application.ActiveDocument.Close'}  ! У Вас есть код до этого места
  WordControl{'Application.Quit'}
  WordControl{Prop:ReportException} = False
  Loop 5 times
    WordControl{PROP:Deactivate}
  end
  Loop 5 times
     Destroy(WordControl) ! уничтожили OLE-контрол
  end
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 12:47
				 mpn2
				ingasoftplus писал(а): 28 Март 2022, 11:39
run('pskill excel.exe',1)
 
 run('pskill WINWORD.exe',1)
Спасибо! Все отрабатывает как надо!
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 12:51
				 mpn2
				Игорь Столяров писал(а): 28 Март 2022, 12:33
Попробуйте пожалуйста без самодеятельности выполнить точно вот такой код:
 WordControl{'Application.ActiveDocument.Close'} 
..........
 
У меня компелятор не знает что такое: "WordControl"
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 13:00
				 Игорь Столяров
				mpn2 писал(а): 28 Март 2022, 12:51компелятор
 
Это название объекта Microsoft Word. 
В Вашем примере используется красивое и понятное имя объекта: feqOLE
Просто замените пожалуйста "WordControl" на "feqOLE" ...
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 13:10
				 mpn2
				Игорь Столяров писал(а): 28 Март 2022, 13:00
Просто замените пожалуйста "WordControl" на "feqOLE" ...
 
Код: Выделить всё
!==============================================================================================================================
 if CONF:Close_File then                                                      ! Закроем документ если надо
       !feqOLE{'Documents.Close()'}                                              ! Закрываем документ
       !run('pskill WINWORD.exe',1)
    feqOLE{'Application.ActiveDocument.Close'}  ! У Вас есть код до этого места
    feqOLE{'Application.Quit'}
    feqOLE{Prop:ReportException} = False
    Loop 5 times
      feqOLE{PROP:Deactivate}
    end
    Loop 5 times
       Destroy(feqOLE) ! уничтожили OLE-контрол
    end
 end
!==============================================================================================================================
Получаем вот так:
https://wampi.ru/image/RJ6huNy 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 13:35
				 mpn2
				ingasoftplus писал(а): 28 Март 2022, 11:39
У нас тупо работает схема (на примере екселя, но для ворда тоже пойдет):
 
То как вы посоветовали работает нормально спасибо.... вопрос в догонку:
Меня тут упрекнули, что я сохраняю фай как 
*.doc
Код: Выделить всё
Loc:SaveFileName = Clip(CONF:Path_Save_WORD) &'вх.'& Clip(UCH:Number) &'.doc'  ! Каталог для хранения файлов  + имя
согласен!
А как сделать так, чтобы расширение в имени файла корректно сформировалось само?
 
			 
			
					
				Как закрыть WORD после передачи в него данных?
				Добавлено: 28 Март 2022, 13:42
				 Дед Пахом
				mpn2 писал(а): 28 Март 2022, 13:10
Loop 5 times
       Destroy(feqOLE) ! уничтожили OLE-контрол
    end
 
Без цикла тоже можно:
Код: Выделить всё
Destroy(feqOLE) ! уничтожили OLE-контрол
Destroy(feqOLE) ! уничтожили уже уничтоженный OLE-контрол
Destroy(feqOLE) ! уничтожили уже дважды уничтоженный OLE-контрол
Destroy(feqOLE) ! уничтожили уже трижды уничтоженный OLE-контрол
Destroy(feqOLE) ! уничтожили уже четырежды уничтоженный OLE-контрол, прямо зомби апокалипсис