logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • О нас
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Подпись файлов цифровой подписью с помощью FastReport VCL
  • Как создать интерактивную форму в PDF на Delphi и Lazarus

    14 декабря 2020 г.

    Возможно кто-то не знает, но стандарт PDF позволяет создавать заполняемые формы. То есть готовый документ

    Подробнее
  • Как создать PDF из Delphi / C++Builder / Lazarus

    14 мая 2020 г.

    Довольно часто надо получить PDF-документ из приложения на Pascal - будь то Delphi или Lazarus.

    Подробнее
  • Как сделать квитанцию с QR-кодом по спецификации СБЕРа на Delphi и Lazarus

    14 декабря 2020 г.

    Штриховой код, как технология автоматической идентификации и сбора данных, широко используется при осуществлении платежей физическими

    Подробнее
  • Как в Delphi / Lazarus / С++ Builder работать с картами в формате SHP

    28 сентября 2020 г.

    ShapeFile, они же «Шейпы» (англ. Shape — Фигура) представляют собой фигуру или набор фигур (возможно

    Подробнее
  • Установка FastReport в Lazarus

    17 марта 2021 г.

    Эта статья устарела. Обновлённая информация доступна по следующей ссылке. В рамках образовательной программы Академик, мы решили

    Подробнее

Подпись файлов цифровой подписью с помощью FastReport VCL

12 декабря 2022 г.

Без электронного документооборота уже сложно представить нашу жизнь. Удобство таких документов это конечно же они не портятся с течением времени, их сложнее потерять, легко хранить и быстро передавать на любые расстояния. Но как мы все знаем, в силу вступает лишь тот документ, что был подписан.

Электронные подписи – шифры, гарантирующие уникальность и неповторимость, позволяющие однозначно установить авторство и защитить от изменения документа.

Но если подписывать каждый сгенерированный файл PDF, то это может занять много времени. А что делать если у вас генерируется тысяча и более файлов, подписывать их вручную? Конечно же нет. FastReport VCL умеет сам подписывать сгенерированные файлы вашей подписью. Далее мы разберём пример реализации цифровой подписи.

Для наглядности используем маленькое приложение, которое экспортирует файл в PDF, а после подписывает его.

Delphi
procedure TForm1.Button1Click(Sender: TObject);
const
 FR3FileName = 'Signatures.fr3';
var
 PDFExport: TfrxPDFExport;
 Report: TfrxReport;
begin
 Report := TfrxReport.Create(nil);
 try
 Report.LoadFromFile(FR3FileName);
 Report.PrepareReport; 
// загружаем и готовим отчет
 PDFExport := TfrxPDFExport.Create(nil);
 try
 PDFExport.Report := Report;
 PDFExport.ShowDialog := False;
 PDFExport.FileName := ExtractFileName(FR3FileName) + '.pdf';
 Report.Export(PDFExport); 
// экспортируем отчет
 SetInfo(PDFExport); 
// подписываем сгенерированный PDF файл
 finally
 PDFExport.Free;
 end;
 finally
 Report.Free;
 end;
end;
 
procedure TForm1.SetInfo(PDFExport: TfrxPDFExport);
var
 Lookup: TCertificateStoreLookup;
 FS: TfrxFileSignature;
 FSO: Integer;
begin
 Lookup := TCertificateStoreLookup.Create;
 Lookup.IgnoreCase := true;
 Lookup.Subject := 'test'; 
// имя сертификата
 FSO := FileSignatureOptions(
 true, // Detached = true подпись в отдельном файле
 false, // Chain = false цепочка сертификата
 true, // OnlyGOST= true сертификат ГОСТ
 true, // DebugLog = true информация при отладке
 false); // PFX = false включается, если задан не ГОСТ сертификат
 
 FS := TfrxFileSignature.Create(
 Lookup,
 PDFExport.FileName, // Название PDF файла
 PDFExport.FileName + '.sig', // название сгенерированной подписи
 '',
 FSO);
 
 FS.Sign;
 FS.Free;
 Lookup.Free;
end;

После написания программы перейдем к ее запуску.

Окно тестовой программы

После запуска нажимаем на кнопку, если КриптоПро потребует ввести пароль, то вводим его. Затем получаем подписанный PDF файл с файлом подписи:

Полученные файлы после успешного подписания документа

Стоит проверить корректность подписания файла. Для этого переходим на сайт https://crypto.kontur.ru/verify.

Следующим шагом добавляем наш сгенерированный pdf файл и его подпись.

Проверка подписи документа

Этот скриншот означает, что PDF файл прошел проверку на подпись.

Таким простым и незамысловатым способом мы получили корректно экспортированный и подписанный PDF файл с помощью FastReport VCL.

О продукте Купить
avatar
Marat Alaev
Поддержка и тестирование
Fast Reports Team: Marat Alaev - Quality Assurance at Fast Reports
VCL Lazarus FastReport PDF Delphi

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • FAQ
  • Видео уроки
  • Форум
  • Условия оказания поддержки
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2023 ООО «Быстрые отчеты»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой