
PDF اسناد از جمله فرمتهای فایلی هستند که به طور گسترده برای اشتراکگذاری اطلاعات استفاده میشوند. آنها معمولاً دارای ارزش محرمانه و قانونی مانند قرارداد هستند. به منظور اطمینان از یکپارچگی فایل ها و جلوگیری از هرگونه جعلی، امضای دیجیتال را اضافه می کنیم. همچنین تضمین می کند که سندی توسط شخص دیگری غیر از نویسنده آن اصلاح نشده است و تأیید می کند که نویسنده همان کسی است که ما انتظار داریم و نه شخص دیگری.
امضای دیجیتال در PDF معادل امضای جوهر روی یک سند کاغذی است، اما بسیار ایمن تر است. این بخش از اطلاعات در داخل یک سند قرار می گیرد و خوانندگان محبوب PDF می توانند بررسی کنند که سند توسط شخص ناشناس تغییر نیافته است. در این مقاله قصد داریم جزئیات نحوه امضای دیجیتالی اسناد PDF به صورت آنلاین در PHP را مورد بحث قرار دهیم.
- با استفاده از دستور cURL به API دسترسی پیدا کنید
- دسترسی به API از طریق PHP SDK
- فیلد امضا را بخوانید
- فیلدهای امضا را با استفاده از PHP اضافه کنید
با استفاده از دستور cURL به API دسترسی پیدا کنید
API های ما بر اساس اصول معماری REST ساخته شده اند، بنابراین می توان از طریق دستورات cURL نیز به آنها دسترسی داشت. لطفاً توجه داشته باشید که APIهای ما فقط برای افراد مجاز قابل دسترسی است، بنابراین قبل از دسترسی به APIها، ابتدا باید از Aspose.Cloud dashboard بازدید کنید و اگر حساب GitHub یا Google دارید، به سادگی ثبت نام کنید. در غیر این صورت، روی دکمه Create a new Account کلیک کنید و اطلاعات مورد نیاز را ارائه دهید. اکنون با استفاده از اعتبارنامه وارد داشبورد شوید و بخش Applications را از داشبورد گسترش دهید و به سمت پایین به سمت قسمت Client Credentials حرکت کنید تا Client ID و Client Secret جزئیات را ببینید.
اکنون مرحله بعدی تولید JSON Web Token (JWT) است تا APIها از طریق خط فرمان قابل دسترسی باشند. از همان توکن JWT برای دسترسی به API ها از طریق دستورات cURL استفاده می شود.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
دسترسی به API از طریق PHP SDK
به منظور تسهیل مشتریان PHP خود که مایلند فایلهای PDF را به صورت برنامهنویسی از طریق کد PHP پردازش کنند، Aspose.PDF Cloud SDK را برای PHP توسعه دادهایم که در اطراف Aspose.PDF Cloud API است. ما می توانیم از همان SDK برای پردازش امضای دیجیتال و انجام عملیات مرتبط استفاده کنیم. SDK برای دانلود از Composer و GitHub در دسترس است.
اکنون میخواهیم مراحل نصب Aspose.PDF Cloud SDK برای PHP را از طریق composer مورد بحث قرار دهیم. ما قبلاً می دانیم که Composer برای استفاده با SDK و برای مدیریت وابستگی های پروژه شما توصیه می شود. بنابراین هنگامی که composer را روی سیستم شما پیکربندی کردیم، سعی کنید از دستور زیر برای نصب Aspose.PDF Cloud SDK برای PHP استفاده کنید.
composer require aspose/pdf-sdk-php
فیلدهای امضا را بخوانید
API به شما امکان میدهد ویژگیهای مرتبط با فیلدهای امضا را که قبلاً در اسناد PDF موجود است بخوانید. برای خواندن قسمت امضا، دو گزینه پیش روی شماست.
- با استفاده از API GetPageSignatureFields، قسمت های امضا را از صفحه خاص سند بخوانید.
- با استفاده از API GetSignatureField قسمت امضای سند را بر اساس نام بخوانید
برای خواندن فیلدهای امضا از یک صفحه خاص از سند، لطفاً از دستور cURL زیر استفاده کنید. لطفاً در دستور زیر توجه داشته باشید که BlankWithSignature.pdf منبع فایل PDF است:
curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/page/1/fields/signature" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
اکنون برای خواندن خصوصیات مرتبط با فیلد امضای خاص روی سند، لطفاً از دستور زیر استفاده کنید که در آن نام یک فیلد امضای خاص یک آرگومان است.
curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/fields/signature/Signature1" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
جزئیات و مراحل ارائه شده در زیر توضیح می دهد که چگونه می توانیم جزئیات فیلد امضا را از صفحات خاصی از اسناد PDF با استفاده از کد PHP بازیابی کنیم.
protected $pdfApi;
// کلید برنامه و SID برنامه را از https://dashboard.aspose.cloud/ دریافت کنید
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// شی پیکربندی
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// نمونه PdfApi ایجاد کنید
$this->pdfApi = new PdfApi(null, $this->config);
// نام سند PDF ورودی
$name = 'BlankWithSignature.pdf';
// فایل را در فضای ذخیره سازی ابری آپلود کنید
$this->uploadFile($name);
// شماره صفحه در سند
$pageNumber = 1;
// فراخوانی متد API برای بازیابی فیلدهای امضا از سند
$response = $this->pdfApi->getPageSignatureFields($name, $pageNumber, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
کد داده شده نشان می دهد که چگونه می توان اطلاعات مربوط به فیلدهای امضای خاص در فایل PDF را بازیابی کرد.
protected $pdfApi;
// کلید برنامه و شناسه برنامه را از https://dashboard.aspose.cloud/ دریافت کنید
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// شی پیکربندی
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// نمونه PdfApi ایجاد کنید
$this->pdfApi = new PdfApi(null, $this->config);
// نام سند PDF ورودی
$name = 'BlankWithSignature.pdf';
// PDF را در فضای ذخیره سازی ابری آپلود کنید
$this->uploadFile($name);
// فیلد امضا برای بازیابی اطلاعات
$fieldName = 'Signature1';
// برای بازیابی جزئیات فیلد امضا با API تماس بگیرید
$response = $this->pdfApi->getSignatureField($name, $fieldName, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
فیلدهای امضا را با استفاده از PHP اضافه کنید
Aspose.PDF Cloud SDK برای PHP همچنین قابلیت هایی را برای افزودن فیلدهای امضا به سند PDF ارائه می دهد. قطعه کد زیر به شما امکان می دهد فیلد امضا را به فایل PDF اضافه کنید.

protected $pdfApi;
// کلید برنامه و شناسه برنامه را از https://dashboard.aspose.cloud/ دریافت کنید
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// شی پیکربندی
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// نمونه PdfApi را ایجاد کنید
$this->pdfApi = new PdfApi(null, $this->config);
// نام سند PDF ورودی
$name = 'BlankWithSignature.pdf';
// آپلود فایل در فضای ذخیره سازی ابری
$this->uploadFile($name);
$signatureFileName = '33226.p12';
$this->uploadFile($signatureFileName);
$folder = $this->tempFolder;
$signature = new Aspose\PDF\Model\Signature();
$signature->setAuthority('Nayyer Shahbaz');
$signature->setContact('nayyer.shahbaz@aspose.com');
$signature->setDate('08/01/2012 12:15:00.000 PM');
$signature->setFormFieldName('Signature1');
$signature->setLocation('Australia');
$signature->setPassword('sIikZSmz');
$signature->setRectangle(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 0, 'ury' => 0]));
$signature->setSignaturePath($folder . '/' . $signatureFileName);
$signature->setSignatureType(Aspose\PDF\Model\SignatureType::PKCS7);
$signature->setVisible(true);
$signature->setShowProperties(false);
$field = new Aspose\PDF\Model\SignatureField();
$field->setPartialName('sign1');
// فهرست صفحه که در آن قسمت امضا باید اضافه شود
$field->setPageIndex(1);
$field->setSignature($signature);
// ناحیه مستطیلی را برای فیلد Signature مشخص کنید
$field->setRect(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 160, 'ury' => 140]));
// برای افزودن فیلد امضا با API تماس بگیرید
$response = $this->pdfApi->postSignatureField($name, $field, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
نتیجه گیری
در این وبلاگ به مفاهیم کار با امضای دیجیتال در اسناد PDF پرداخته ایم. ما در مورد نحوه بازیابی اطلاعات مربوط به فیلدهای امضای موجود و همچنین نحوه افزودن فیلدهای امضای جدید در سند یاد گرفته ایم. لطفاً توجه داشته باشید که Aspose.PDF Cloud SDK برای PHP منبع باز است و کد منبع کامل را می توان از مخزن GitHub دانلود کرد.
لطفاً از API های ما استفاده کنید و در صورتی که با مشکلی مواجه شدید، لطفاً از طریق [تالارهای پشتیبانی مشتری12 رایگان تماس بگیرید.