Как программно установить пароль на имеющийся pdf файл

1. Asya.Ozerova 41 07.07.20 20:43 Сейчас в теме
Доброго времени суток!
На обычных формах, во временный файл записала pdf:
ТабДок.Записать(Имя, ТипФайлаТабличногоДокумента.PDF); 

А, вот как на него поставить пароль (защиту от копирования, чтоб не зависимо от разрядности платформы и без виртуальных принтеров, не могу сообразить(
По теме из базы знаний
Найденные решения
5. Asya.Ozerova 41 13.07.20 07:43 Сейчас в теме
Решила данную проблему с использованием PDFtk Server:
	КаталогУстановки = КаталогВременныхФайлов();
	КаталогУстановки = СтрЗаменить(КаталогУстановки + "\", "\\", "\") + "PDFtk\";
	ДанныеАрхива = ЭтаОбработка.ПолучитьМакет("АрхивПрограммы");
	ИмяФайлаАрхива = КаталогУстановки + "Arc.zip";
	ДанныеАрхива.Записать(ИмяФайлаАрхива);
	ЧтениеZip = Новый ЧтениеZipФайла(ИмяФайлаАрхива);
	ЧтениеZip.ИзвлечьВсе(КаталогУстановки);
	ЧтениеZip.Закрыть();
	
	Скрипт = Новый COMОбъект("WScript.Shell");
	Скрипт.Run("" + КаталогУстановки + "pdftk.exe " + ИмяФайлаИсточник + " output " + ИмяФайлаРезультат + " owner_pw foopass", 0, 1);	
Показать


Может "коряво" но! Работает на х86 и х64
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Asya.Ozerova 41 07.07.20 21:39 Сейчас в теме
(1)Нашла DLL Ёксель, но там как я понимаю только 32 разрядная,
Может есть подобные решения под обе разрядности?
Может кто-то уже сталкивался с подобной проблемой?
3. serg33rus 28 08.07.20 10:00 Сейчас в теме
А какая конфигурация? Если я правильно понял вопрос, то средствами платформы файл можно подписать ЭЦП. Но это не защита от копирования, это защита от изменения. Если нужна именно защита от копирования, то как вариант, заархивировать его с паролем.
Штатными средствами поставить пароль на PDF не получится, насколько я знаю.
4. SerVer1C 750 08.07.20 10:32 Сейчас в теме
Может вам поможет https://infostart.ru/public/1217607/ ?
Только она под 32 бита
6. Asya.Ozerova 41 13.07.20 07:45 Сейчас в теме
(4) Может и помогла бы(
Но нет столько СМ
5. Asya.Ozerova 41 13.07.20 07:43 Сейчас в теме
Решила данную проблему с использованием PDFtk Server:
	КаталогУстановки = КаталогВременныхФайлов();
	КаталогУстановки = СтрЗаменить(КаталогУстановки + "\", "\\", "\") + "PDFtk\";
	ДанныеАрхива = ЭтаОбработка.ПолучитьМакет("АрхивПрограммы");
	ИмяФайлаАрхива = КаталогУстановки + "Arc.zip";
	ДанныеАрхива.Записать(ИмяФайлаАрхива);
	ЧтениеZip = Новый ЧтениеZipФайла(ИмяФайлаАрхива);
	ЧтениеZip.ИзвлечьВсе(КаталогУстановки);
	ЧтениеZip.Закрыть();
	
	Скрипт = Новый COMОбъект("WScript.Shell");
	Скрипт.Run("" + КаталогУстановки + "pdftk.exe " + ИмяФайлаИсточник + " output " + ИмяФайлаРезультат + " owner_pw foopass", 0, 1);	
Показать


Может "коряво" но! Работает на х86 и х64
9. selena72 06.10.21 23:57 Сейчас в теме
(5) Подскажите, пожалуйста, сталкивались ли вы при выполнении указанной команды Скрипт.Run с ошибкой "Произошла исключительная ситуация (0x80070002)" ? Не подскажете, в чем может быть причина такой ошибки?
10. Asya.Ozerova 41 10.10.21 15:06 Сейчас в теме
(9)
Произошла исключительная ситуация (0x80070002)

Скорее всего, у вас слетела регистрация компонента comcntr.dll. или компонент был удален.
7. d.batovskiy 13.07.20 11:42 Сейчас в теме
Попробуйте через
Новый ЗаписьZipФайла(<ИмяФайла>, <Пароль>, <Комментарий>, <МетодСжатия>, <УровеньСжатия>, <МетодШифрования>, <Кодировка>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Имя файла, куда будет записан архив.
<Пароль> (необязательный)
Тип: Строка.
Пароль, который будет назначен архиву.
Если пароль не назначен или является пустой строкой, то шифрование не происходит.
<Комментарий> (необязательный)
Тип: Строка.
Комментарий, описывающий ZIP-файл.
<МетодСжатия> (необязательный)
Тип: МетодСжатияZIP.
Метод сжатия, которым будет сжиматься архив.
Значение по умолчанию: Сжатие.
<УровеньСжатия> (необязательный)
Тип: УровеньСжатияZIP.
Уровень сжатия данных.
Значение по умолчанию: Оптимальный.
<МетодШифрования> (необязательный)
Тип: МетодШифрованияZIP.
Метод шифрования, которым будет зашифрован архив.
Значение по умолчанию: Zip20.
<Кодировка> (необязательный)
Определяет способ кодировки имен файлов внутри ZIP-файла.
Значение по умолчанию: Авто; КодировкаИменФайловВZipФайле.
8. Asya.Ozerova 41 14.07.20 08:56 Сейчас в теме
(7) А при чем тут архив?
Мне нужно было установить пароль на сам (имеющийся) PDF файл, для защиты его содержимого от копирования, чтоб в дальнейшем прикрепить во вложения эл.письма.
Пока выбрала PDFtk Server:
Перед запуском извлекаем из архива (поместила в шаблоны внешней обработки), во временный каталог 1С, "портированная" версию программы.
Выполняем действия.
Далее удаляем из Временного каталога свои файлы.
Пока остановилась на этом варианте
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот