|   |   | 
| 
 | Подписать 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.Записать(Поток); | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |