Страница 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-контрол, прямо зомби апокалипсис