Просмотр PDF файлов в 1C

Опубликовал Дмитрий Лисицин (lik056) в раздел Обработки - Универсальные обработки

Внешняя обработка для просмотра PDF файлов в 1С. Для чтения файлов используется компонент ActiveX, он идентичен Adobe Reader, но но имеет большее количество управляемых параметров. Компонент включает в себя множество функций для закрытия / выключение панели инструментов, печать, сохранение копий PDF файлов, навигацию по страницам и т.д. Установленные Adobe Reader / Acrobat для работы не требуются.

Появилась необходимость просматривать pdf документы в 1С. Самое простое решение этой задачи конечно же ActiveX Adobe Reader, но что если необходимо дать пользователям возможность только просматривать документы без печати и сохранения копии. У Adobe Reader всегда появляется всплывающая панель, которую никакими судьбами отключить не удается. Поискал в google аналоги, нашел большое количество компонентов, но все они платные. В конце концов мне удалось раздобыть бесплатный компонент, но устанавливается он с кучей рекламных программ и баннеров. Разобравшись с этим компонентом я получил простую читалку pdf файлов в 1С. Установка происходит таким образом, что никакого софта вообще не ставится.

Для начала необходимо сделать следующее:

  1. скопировать 4 файла в системную папку system32 (для x32) или SysWOW64 (для x64);
  2. запустить registrator_32.bat (для x32) или registrator_64.bat (для x64) - для регистрации файлов в системе;
  3. теперь можно открыть обработку и для элемента формы ActivexPDF указать свойство Path - рабочая папка компонента, по умолчанию Path = "C:\Temp\". Конечно физически эта папка должна быть создана на диске!
  4. Все работает и открывается, дальше можете использовать компонент как угодно. В списке элементов управления ActiveX этот компонент появится.

Внешняя обработка и все необходимые файлы в архиве.

Скачать файлы

Наименование Файл Версия Размер
PDFViewer
.rar 1,29Mb
26.02.14
54
.rar 1 1,29Mb 54 Скачать

См. также

Комментарии
1. Ярослав Радкевич (WKBAPKA) 201 26.02.14 15:25 Сейчас в теме
не знаю зачем это, но плюс поставлю за труды
cleaner_it; +1 Ответить
2. Алекс Одинэсник (Alex1Cnic) 122 05.03.14 08:34 Сейчас в теме
За работу плюс... А можно ли редактировать файлы PDF с помощью этой компоненты?
3. Борис (soap) 40 05.03.14 09:13 Сейчас в теме
За идею и работу плюс. Хотелось бы редактор.
4. Александр (altu71) 05.03.14 15:25 Сейчас в теме
Здравствуйте,
а не могли бы вы указать ссылку на домашнюю страницу этой Active-X?
5. Алексей (LelikOFF) 24.12.14 23:30 Сейчас в теме
6. Станислав Новиков (Stas84) 21.08.15 10:30 Сейчас в теме
Где найти описание методов? так бы плюсанул. Открывает бодро pdf - ки
7. dima_gsv (dima_gsv) 8 17.02.17 09:40 Сейчас в теме
(4)
(6)
Компонента разработана SkySof Software. Там же есть инструкция с описанием методов. Не знаю как раньше, но сейчас на сайте разработчика компонента триальная.
В работе не понравилась - смотреть pdf через неё неудобно. Гораздо удобнее в adobe reader.
Задачу автора, не дать скачать pfd решил другим способом - запароливанием pdf и подстановкой пароля автоматически в adobe reader.
// Время в миллисекундах // Источник: http://www.forum.mista.ru/topic.php?id=256400
Процедура Спать(Время)
    Если Время = 0 Тогда
        Возврат
    КонецЕсли;
    Сигнатура = Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
    ПутьСкрипта = КаталогВременныхФайлов()+"SleepScript"+Сигнатура+".vbs";
    СкриптФайл = Новый ТекстовыйДокумент;
    СкриптФайл.ДобавитьСтроку("WScript.Sleep("+Формат(Время, "ЧГ=0")+")");
    СкриптФайл.Записать(ПутьСкрипта, КодировкаТекста.OEM);
    WSHShell = Новый COMОбъект("WScript.Shell");
    WSHShell.Run("wscript.exe """+ПутьСкрипта+"""", 0, Истина);
    УдалитьФайлы(ПутьСкрипта);
КонецПроцедуры

// документация по WSH http://msdn.microsoft.com/library/98591fh7.aspx
Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	ЗапуститьПриложение("D:\booktrade\booktrade.pdf");
	Shell = Новый COMОбъект("WScript.Shell");
	Для ИИ = 1 По 30 Цикл // 3 секунды на всё. Если не успели, то придётся повторить
		Спать(100);
		Если Shell.AppActivate("Adobe Acrobat Reader DC - Лицензионное соглашение о распространении ПО для использования на персональных компьютерах") Тогда
			Shell.SendKeys("{TAB}{ENTER}");  //Нажать эту кнопку
		ИначеЕсли Shell.AppActivate("Пароль") Тогда
			Shell.SendKeys("12345678{ENTER}");  //пароль должен быть цифровой, иначе проблемы с раскладкой клавиатуры
			Прервать;
		КонецЕсли;
	КонецЦикла; 
	
КонецПроцедуры
...Показать Скрыть
8. Сергей Галюк (dj_serega) 241 17.02.17 10:07 Сейчас в теме
Оставьте свое сообщение