Atom Лента - Форум КриптоПро - Тема:Взаимодействие Delphi c КриптоПро PDF - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:VzaimodejjstvieDelphicKriptoProPDF-10:1Copyright 2024 Форум КриптоПро2024-03-19T11:26:32Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *Андрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *city-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infocity-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infoАндрей *https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=15008&name=Андрей *city-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infocity-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infocity-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infocity-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infocity-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infocity-med.infohttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=52292&name=city-med.infoYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid130022:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: city-med.info <a href="/forum2/default.aspx?g=posts&m=130020#post130020"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=129890#post129890"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote> сверить исходную версию PDF и подписанную.</div></div><br /><br />так одинаковые же они визуально</div></div><br /><br />А причём тут визуально?<br />т.е. про PAdES читать нет желания ... <br /><br />сверить pdf, pdf1 (gui), pdf2 (утилита)</td></tr></table>2022-01-07T04:14:25+03:002022-01-07T04:14:25+03:00Андрей *<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: city-med.info <a href="/forum2/default.aspx?g=posts&m=130020#post130020"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=129890#post129890"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote> сверить исходную версию PDF и подписанную.</div></div><br /><br />так одинаковые же они визуально</div></div><br /><br />А причём тут визуально?<br />т.е. про PAdES читать нет желания ... <br /><br />сверить pdf, pdf1 (gui), pdf2 (утилита)</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid130021:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer" width="100%"><tr><td>еще возникла проблема с определением запароленности контейнеров КриптоПРО<br />можно конечно для всех подряд сертификатов спрашивать пин-коды, но хотелось бы спрашивать только при необходимости<br /><br />вопрос: как определить, установлен ли пин-код на контейнере средствами CryptoAPI?</td></tr></table>2022-01-07T03:25:05+03:002022-01-07T03:25:05+03:00city-med.info<table class="content postContainer" width="100%"><tr><td>еще возникла проблема с определением запароленности контейнеров КриптоПРО<br />можно конечно для всех подряд сертификатов спрашивать пин-коды, но хотелось бы спрашивать только при необходимости<br /><br />вопрос: как определить, установлен ли пин-код на контейнере средствами CryptoAPI?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid130020:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=129890#post129890"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote> сверить исходную версию PDF и подписанную.</div></div><br /><br />так одинаковые же они визуально</td></tr></table>2022-01-07T03:21:27+03:002022-01-07T03:21:27+03:00city-med.info<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=129890#post129890"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote> сверить исходную версию PDF и подписанную.</div></div><br /><br />так одинаковые же они визуально</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129890:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: city-med.info <a href="/forum2/default.aspx?g=posts&m=129889#post129889"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>еще вопрос возник:<br />подписанный ПДФ с изначальным размером 504кб имеет размер 994кб после подписания с помощью скрипта CPSign<br />но если его же открыть акробатом, и подписать с помощью встроенного инструмента Сертификаты (плагином КриптоПро), то размер 630кб<br /><br />отчего так?</div></div><br /><br />Резервируется байтовый диапазон для подписи с запасом<br />+ сверить исходную версию PDF и подписанную.<br /></td></tr></table>2021-12-26T10:22:00+03:002021-12-26T10:22:00+03:00Андрей *<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: city-med.info <a href="/forum2/default.aspx?g=posts&m=129889#post129889"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>еще вопрос возник:<br />подписанный ПДФ с изначальным размером 504кб имеет размер 994кб после подписания с помощью скрипта CPSign<br />но если его же открыть акробатом, и подписать с помощью встроенного инструмента Сертификаты (плагином КриптоПро), то размер 630кб<br /><br />отчего так?</div></div><br /><br />Резервируется байтовый диапазон для подписи с запасом<br />+ сверить исходную версию PDF и подписанную.<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129889:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer_Alt" width="100%"><tr><td>еще вопрос возник:<br />подписанный ПДФ с изначальным размером 504кб имеет размер 994кб после подписания с помощью скрипта CPSign<br />но если его же открыть акробатом, и подписать с помощью встроенного инструмента Сертификаты (плагином КриптоПро), то размер 630кб<br /><br />отчего так?</td></tr></table>2021-12-26T04:11:22+03:002021-12-26T04:11:22+03:00city-med.info<table class="content postContainer_Alt" width="100%"><tr><td>еще вопрос возник:<br />подписанный ПДФ с изначальным размером 504кб имеет размер 994кб после подписания с помощью скрипта CPSign<br />но если его же открыть акробатом, и подписать с помощью встроенного инструмента Сертификаты (плагином КриптоПро), то размер 630кб<br /><br />отчего так?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129888:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer" width="100%"><tr><td>молчат, как рыба об лёд)))<br /><br />ладно, пока сам расскажу как выяснить размер страницы документа, чтобы верно выставить координаты.<br />Как-то так вышло что вроде у А4 документов чуть-чуть да различаются размеры. У акробата это называется User Space<br /><br />Получить можно так:<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-c">var
.....
gApp: CAcroApp;
PDDoc: CAcroPDDoc;
AVDoc: CAcroAVDoc;
PdfPage, PageSize, jso: Variant;
vert, hor: integer;
.....
begin
.............
gApp := CoAcroApp.Create;
AVDoc := CoAcroAVDoc.Create;
if AVDoc.Open(FName1, FName2)=false then Exit;
PDDoc := AVDoc.GetPDDoc as CAcroPDDoc;
PdfPage:= PDDoc.AcquirePage(PDDoc.GetNumPages-1); // последняя страница
PageSize:= PdfPage.GetSize;
vert:=PageSize.y;
hor:=PageSize.x;
</code></pre>
</div></div></td></tr></table>2021-12-25T11:29:36+03:002021-12-25T11:29:36+03:00city-med.info<table class="content postContainer" width="100%"><tr><td>молчат, как рыба об лёд)))<br /><br />ладно, пока сам расскажу как выяснить размер страницы документа, чтобы верно выставить координаты.<br />Как-то так вышло что вроде у А4 документов чуть-чуть да различаются размеры. У акробата это называется User Space<br /><br />Получить можно так:<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-c">var
.....
gApp: CAcroApp;
PDDoc: CAcroPDDoc;
AVDoc: CAcroAVDoc;
PdfPage, PageSize, jso: Variant;
vert, hor: integer;
.....
begin
.............
gApp := CoAcroApp.Create;
AVDoc := CoAcroAVDoc.Create;
if AVDoc.Open(FName1, FName2)=false then Exit;
PDDoc := AVDoc.GetPDDoc as CAcroPDDoc;
PdfPage:= PDDoc.AcquirePage(PDDoc.GetNumPages-1); // последняя страница
PageSize:= PdfPage.GetSize;
vert:=PageSize.y;
hor:=PageSize.x;
</code></pre>
</div></div></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129696:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer_Alt" width="100%"><tr><td>эгегей, есть кто живой?)<br />ответьте уже что-нибудь про 63ФЗ</td></tr></table>2021-12-20T09:41:59+03:002021-12-20T09:41:59+03:00city-med.info<table class="content postContainer_Alt" width="100%"><tr><td>эгегей, есть кто живой?)<br />ответьте уже что-нибудь про 63ФЗ</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129394:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=129219#post129219"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><br />Про GetCertificateHEX - почему там пробелы выдаются?<br /><br /></div></div><br /><br />доброго времени суток!<br />с сертификатами и передачей параметров разобрались, остался вопрос по оформлению в соответствии с 63ФЗ<br />если делать подпись средствами акробата и КриптоПРО ПДФ, то там просто соответствующая галочка ставится.<br /><br />в функции CPSign возможности такой галочки не описано, стало быть надо руками делать.<br />вопрос, как?<br />и еще вопрос сразу задам, возможно ли появление такой галочки в будущих версиях скрипта CPSign ?</td></tr></table>2021-12-08T02:14:35+03:002021-12-08T02:14:35+03:00city-med.info<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей * <a href="/forum2/default.aspx?g=posts&m=129219#post129219"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><br />Про GetCertificateHEX - почему там пробелы выдаются?<br /><br /></div></div><br /><br />доброго времени суток!<br />с сертификатами и передачей параметров разобрались, остался вопрос по оформлению в соответствии с 63ФЗ<br />если делать подпись средствами акробата и КриптоПРО ПДФ, то там просто соответствующая галочка ставится.<br /><br />в функции CPSign возможности такой галочки не описано, стало быть надо руками делать.<br />вопрос, как?<br />и еще вопрос сразу задам, возможно ли появление такой галочки в будущих версиях скрипта CPSign ?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129364:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer_Alt" width="100%"><tr><td>победил с это с Божьей помощью, ниже рабочий вариант видимой подписи с использованием customAppearance<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-c"> jso.CPSign(GetCertificateHEX(MyCert.Thumbprint, Cert), // certificateHEX
'', // pin
1, // pdfLockMode
'Причина: тест', // signReason
'Местоположение: тестовое', // signLocation
'контакт', // signContactInfo
'http://qs.cryptopro.ru/tsp/tsp.srf', // timeStamp
false, // bShowCertificatesDialog
false, // bShowSignDialogs
'{"pageNumber": 0, '
+'"coords": [400, 110, 600, 10], ' // лев верх прав низ
+'"customAppearance": '
+'{"font": "Arial", '
+'"borderStyle": "beveled", ' // solid dashed beveled inset underline
+'"borderColor": ["RGB", 0, 0, 255], '
+'"borderWidth": 2, '
+'"textFields": [{"text": "ДОКУМЕНТ ПОДПИСАН", "coords": [10, 100, 100, 10]}]}}');
</code></pre>
</div></div><br /><br />ответ был найден в JavaScript for Acrobat API Reference<br />на кой хрен было придумывать вот это вот, непонятно:<br />border.s - сплошная граница;<br />border.b - сплошная граница со скошенными краями,<br />border.d - пунктирная граница,<br />border.i - сплошная граница со скошенными внутрь краями;<br />border.u - граница с подчеркиванием по нижнему краю поля подписи.<br /><br />на данный момент открыт вопрос, как сделать видимый вариант подписи в соотв с законом 63ФЗ<br />там красивая рамочка с круглыми углами, тэгами border такое сделать не получается.</td></tr></table>2021-12-07T09:24:51+03:002021-12-07T09:24:51+03:00city-med.info<table class="content postContainer_Alt" width="100%"><tr><td>победил с это с Божьей помощью, ниже рабочий вариант видимой подписи с использованием customAppearance<br /><br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-c"> jso.CPSign(GetCertificateHEX(MyCert.Thumbprint, Cert), // certificateHEX
'', // pin
1, // pdfLockMode
'Причина: тест', // signReason
'Местоположение: тестовое', // signLocation
'контакт', // signContactInfo
'http://qs.cryptopro.ru/tsp/tsp.srf', // timeStamp
false, // bShowCertificatesDialog
false, // bShowSignDialogs
'{"pageNumber": 0, '
+'"coords": [400, 110, 600, 10], ' // лев верх прав низ
+'"customAppearance": '
+'{"font": "Arial", '
+'"borderStyle": "beveled", ' // solid dashed beveled inset underline
+'"borderColor": ["RGB", 0, 0, 255], '
+'"borderWidth": 2, '
+'"textFields": [{"text": "ДОКУМЕНТ ПОДПИСАН", "coords": [10, 100, 100, 10]}]}}');
</code></pre>
</div></div><br /><br />ответ был найден в JavaScript for Acrobat API Reference<br />на кой хрен было придумывать вот это вот, непонятно:<br />border.s - сплошная граница;<br />border.b - сплошная граница со скошенными краями,<br />border.d - пунктирная граница,<br />border.i - сплошная граница со скошенными внутрь краями;<br />border.u - граница с подчеркиванием по нижнему краю поля подписи.<br /><br />на данный момент открыт вопрос, как сделать видимый вариант подписи в соотв с законом 63ФЗ<br />там красивая рамочка с круглыми углами, тэгами border такое сделать не получается.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129363:1Взаимодействие Delphi c КриптоПро PDF<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Shuraken <a href="/forum2/default.aspx?g=posts&m=129361#post129361"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>В textFields пропущена ещё одна закрывающая квадратная скобка.<br /><br /></div></div><br /><br />ну нет же, посмотри самую последнюю строку, она начинается с квадратной скобки, завершающей массив textFields</td></tr></table>2021-12-07T09:05:11+03:002021-12-07T09:05:11+03:00city-med.info<table class="content postContainer" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Shuraken <a href="/forum2/default.aspx?g=posts&m=129361#post129361"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>В textFields пропущена ещё одна закрывающая квадратная скобка.<br /><br /></div></div><br /><br />ну нет же, посмотри самую последнюю строку, она начинается с квадратной скобки, завершающей массив textFields</td></tr></table>