![]() |
|
Подписать PDF через Поток (на входе ДД) | ☑ | ||
---|---|---|---|---|
0
RomaH
19.06.24
✎
15:43
|
ФайлPDF - двоичные данные
ИмяФайла = ПолучитьИмяВременногоФайла("pdf"); ФайлPDF.Записать(ИмяФайла); Поток = Новый ПотокВПамяти; Запись = Новый ЗаписьДанных(Поток); Запись.Записать(ФайлPDF); Запись.Закрыть(); Поток.Перейти(0, ПозицияВПотоке.Начало); ДокументPDF = Новый ДокументPDF(); //ДокументPDF.Прочитать(Поток); ДокументPDF.Прочитать(ИмяФайла); КоличествоСтраниц = ДокументPDF.КоличествоСтраниц(); ДанныеСертификата = ДанныеСертификата(СертификатМО); Штамп = Штамп(ДанныеСертификата.Наименование, ДанныеСертификата.ДанныеСертификата); МенеджерКриптографии = Новый МенеджерКриптографии(ДанныеСертификата.ИмяПрограммы, "", ДанныеСертификата.ТипПрограммы); МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = ""; Сертификат = Новый СертификатКриптографии(ДанныеСертификата.ДанныеСертификата); //МенеджерКриптографииВрача.Подписать(Новый ДвоичныеДанные(ПутьКФайлу),СтрЗаменить(ПутьКФайлу, ".pdf", "2.sig"),Сертификат); ПодписьPDF = Новый ОписаниеПодписиPDF; ПодписьPDF.Имя = "ПодписьОрганизации"; ПодписьPDF.Сертификат = Сертификат; ПодписьPDF.ТипПодписи = ТипПодписиPDF.Утверждающая; ПодписьPDF.БлокировкаДокумента = Истина; ПодписьPDF.Верх = 297-18; ПодписьPDF.Лево = 100; ПодписьPDF.НомерСтраницы = КоличествоСтраниц; ДокументPDF.ДобавитьПодпись(МенеджерКриптографии, ПодписьPDF, Штамп); //ДокументPDF.Записать(Поток); ДокументPDF.Записать(ИмяФайла); ФайлPDF = Поток.ЗакрытьИПолучитьДвоичныеДанные(); Если делаю через поток, то на ДокументPDF.Записать(Поток); получаю ошибку "Неверный формат", а через файл все красиво |
|||
1
Garykom
19.06.24
✎
15:59
|
Куски говнокода, надерганные хз откуда
|
|||
2
spiller26
19.06.24
✎
16:38
|
(0) Зачем ты используешь Поток?
Поток — этот объект представляет собой поток данных из которого можно читать и/или записывать в него данные. Данный объект не имеет конструктора, а получить экземпляр объекта можно при помощи различных методов других объектов. |
|||
3
Мультук
19.06.24
✎
17:14
|
(0)
//ФайлPDF === Двоичные данные Поток = Новый ПотокВПамяти; Запись = Новый ЗаписьДанных(Поток); Запись.Записать(ФайлPDF); Запись.Закрыть(); Поток.Перейти(0, ПозицияВПотоке.Начало); ДокументPDF = Новый ДокументPDF(); ДокументPDF.Прочитать(Поток); //А прочитать то работает ?? //Здесь всякое про подпись //Разве не нужно снова вернуть позицию на начало ??????? Поток.Перейти(0, ПозицияВПотоке.Начало); ДокументPDF.Записать(Поток); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |