Сохранение отчета в PDF формате

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 5037
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Сохранение отчета в PDF формате

Сообщение kreator »

SergioRaguzini писал(а): 10 Апрель 2022, 20:29 Наверное, этот принтер - лучший вариант.
Хороший вариант. Но есть возможность у пользователя удалить его. И не работает на серверных версиях. Некоторые работают по rdp, а там такого варианта нет.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7499
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Сохранение отчета в PDF формате

Сообщение Игорь Столяров »

kreator писал(а): 11 Апрель 2022, 13:34 Но есть возможность у пользователя удалить его.
Это уже не пользователь - а вредитель какой-то ! :(

На самом деле, как человек спросил - так ему и ответили.
По хорошему, конечно, надо проявить эрудицию и посмотреть всех. Например:

Код: Выделить всё

   Printer{PropPrint:Device} = 'Microsoft Print to PDF'
   If Clip(Upper(Printer{PropPrint:Device})) = Upper('Microsoft Print to PDF') then Loc:OK = True.

   If Loc:OK = False
      Printer{PropPrint:Device} = 'Adobe PDF Printer'
      If Clip(Upper(Printer{PropPrint:Device})) = Upper('Adobe PDF Printer') then Loc:OK = True.
   end

   If Loc:OK = False
      Printer{PropPrint:Device} = 'PDF Printer'
      If Clip(Upper(Printer{PropPrint:Device})) = Upper('PDF Printer') then Loc:OK = True
      else
         Message(' Для экспорта отчёта в PDF установите принтер: Microsoft Print to PDF|' & |
            ' или переименуйте сторонний PDF принтер в: PDF Printer','У нас проблема !',Icon:Exclamation,'&1. Закрыть')      
      end
   end
   
   If Loc:OK = True then И вот тут уже понеслась печать на PDF принтер и т.д. ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 236
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 6 раз

Сохранение отчета в PDF формате

Сообщение SergioRaguzini »

kreator писал(а): 11 Апрель 2022, 13:34 Некоторые работают по rdp, а там такого варианта нет
Да, на старых версиях Windows Server нет такого, но на более новых - есть (смотрел сейчас у пользователя), но ведь можно использовать при RDP локальный ресурс - нужный нам Microsoft Print to PDF
Игорь Столяров писал(а): 11 Апрель 2022, 14:05 ...На самом деле, как человек спросил - так ему и ответили.
Да, вполне достаточно, идея понятна
Игорь Столяров писал(а): 11 Апрель 2022, 14:05 По хорошему, конечно, надо проявить эрудицию и посмотреть всех....
Разумеется, когда привязываешься к определенному имени принтера, нужно проверять существует ли он на момент печати.

Спасибо
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1380
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Сохранение отчета в PDF формате

Сообщение RaFaeL »

Или просто сделать опцию задания наименования PDF принтера, без вот такого хардкода
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7499
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Сохранение отчета в PDF формате

Сообщение Игорь Столяров »

RaFaeL писал(а): 11 Апрель 2022, 14:15 без вот такого хардкода
Сейчас это модно называть Искусственный Интеллект ! :)
А тупо ввести название ума много не надо ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1380
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Сохранение отчета в PDF формате

Сообщение RaFaeL »

"Искусственный интеллект" может проверить типовые имена, а затем, при отсутствии совпадения, предложить выбрать из списка или ввести название. А вот предложению переименовать принтер до искусственного интеллекта очень далеко
kreator
✯ Ветеран ✯
Сообщения: 5037
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Сохранение отчета в PDF формате

Сообщение kreator »

Игорь Столяров писал(а): 11 Апрель 2022, 14:05 По хорошему, конечно, надо проявить эрудицию и посмотреть всех.
Я так и сделал. Некий ИИ. Лезет в реестр и смотрит принтеры со строчкой "PDF".
SergioRaguzini писал(а): 11 Апрель 2022, 14:14 Да, на старых версиях Windows Server нет такого, но на более новых - есть (смотрел сейчас у пользователя),
Можно поподробнее? Совсем относительно недавно искал. Не было такого.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7499
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Сохранение отчета в PDF формате

Сообщение Игорь Столяров »

RaFaeL писал(а): 11 Апрель 2022, 15:47 А вот предложению переименовать принтер до искусственного интеллекта очень далеко
Не судите строго - этому коду уже почти 20 лет. И всё равно эти вопросы спрашивают ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 236
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 6 раз

Сохранение отчета в PDF формате

Сообщение SergioRaguzini »

kreator писал(а): 11 Апрель 2022, 15:53 Совсем относительно недавно искал. Не было такого
У пользователя - Windows Server 2012 и работает он по RDP, вчера заходил в его "Принтеры" и видел Microsoft Print to PDF, как будет оказия уточню - этот принтер "родной" или "локальный ресурс" от его Windows 10
kreator
✯ Ветеран ✯
Сообщения: 5037
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Сохранение отчета в PDF формате

Сообщение kreator »

Попробовал у себя. "Локальный" принтер PDF не перебрасывается по rdp. Хотя аппаратные перебрасываются. И есть у меня подозрение, что от переброски программного принтера нет никакого смысла, работать не будет. Может я и неправ. Не знаю.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7499
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Сохранение отчета в PDF формате

Сообщение Игорь Столяров »

Интересный эффект после перехода на Windows 10 x64.
После экспорта отчёта на принтер "Microsoft Print to PDF" файл с отчётом в PDF не существует какое-то время,
видимо производится его дозапись в фоне. Т.е. низя его сразу открыть на просмотр.
Под Windows 10 x32 ничего подобного не наблюдалось. :(

Пришлось вспомнить былое и сделать вставку:

Код: Выделить всё

  !If Exists(wFile_) then Loc:OKSave = True.
  
   If Exists(wFile_) then Loc:OKSave = True
   else
      Loop 10 times
         Yield; Yield; Yield; Yield; Yield;
         Win::Sleep(500)  ! Ждёмс 0.5 сек.
         If Exists(wFile_) then Loc:OKSave = True; Break.
      end
   end
Проблема решена, но осадок остался ... :(
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 5037
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Сохранение отчета в PDF формате

Сообщение kreator »

Не замечал такого. Сотни пользователей, никто не жаловался. Подозреваю, что проблема конкретной Винды. А чего новой библиотекой не пользуетесь?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7499
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 18 раз
Поблагодарили: 51 раз

Сохранение отчета в PDF формате

Сообщение Игорь Столяров »

Да проверил на нескольких разных компьютерах - везде одно и тоже ... :(
В заявках за крайний год есть несколько жалоб на эту тему от пользователей.

Но у нас сделан переключатель между "Microsoft Print to PDF" и библиотекой I2PDF.
Поэтому видиимо юзеров просто переключали на I2PDF и тема до меня не доходила.
Библиотекой I2PDF пользуемся, но план Б должен быть всегда и здесь он сработал.

Мы используем для удаления WMF листов отчёта функцию для быстрого удаления файлов:
https://gist.github.com/CarlTBarnes/e5d ... ac9c432202

Похоже, что здесь тот случай, когда слишком быстрое завершение печати - тоже не очень хорошо. :)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 5037
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

Сохранение отчета в PDF формате

Сообщение kreator »

Я скорее всего не прав. Мой случай не показатель. Я встроил печать на "Microsoft Print to PDF" в стандартный класс. Видимо там нет проблем. :D
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4742
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 10 раз
Поблагодарили: 38 раз

Сохранение отчета в PDF формате

Сообщение finsoftrz »

Игорь Столяров писал(а): 15 Май 2024, 22:07 Мы используем для удаления WMF листов отчёта функцию для быстрого удаления файлов:
https://gist.github.com/CarlTBarnes/e5d ... ac9c432202
Видал это, костыли для обхода очередной проблемы в рантайме с11. В с6 все норм.
Кстати, поздравляю с переходом на 64 разрядную ОС. Это важный шаг в оптимизации работы.
C6/C11, ШВС, tps/btrieve.
Ответить