
PDF belgeleri, bilgi paylaşımı için yaygın olarak kullanılan dosya biçimleri arasındadır. Genellikle sözleşme gibi gizli ve yasal değerleri vardır. Dosyaların bütünlüğünü sağlamak ve sahteciliği önlemek için dijital imzalar ekleriz. Ayrıca, bir belgenin yazarından başkası tarafından değiştirilmediğinden emin olur ve yazarın beklediğimiz kişi olduğunu ve başka biri olmadığını doğrular.
PDF‘deki dijital imza, kağıt belgedeki mürekkep imzasına eşdeğerdir, ancak çok daha güvenlidir. Bu bilgi parçası bir belgenin içine yerleştirilir ve popüler PDF okuyucuları belgenin bilinmeyen bir kişi tarafından değiştirilmediğini kontrol edebilir. Bu makalede, PDF belgelerini PHP’de çevrimiçi olarak dijital olarak nasıl imzalayacağınıza dair ayrıntıları tartışacağız.
- cURL komutunu kullanarak API’ye erişim
- PHP SDK aracılığıyla API’ye erişim
- İmza Alanını Oku
- PHP kullanarak İmza Alanları Ekleme
cURL komutunu kullanarak API’ye erişim
API’lerimiz REST mimarisi prensiplerine göre oluşturulmuştur, bu nedenle cURL komutları aracılığıyla da erişilebilirler. API’lerimize yalnızca yetkili kişilerin erişebildiğini lütfen unutmayın, bu nedenle API’lere erişmeden önce önce Aspose.Cloud panosunu ziyaret etmeniz ve GitHub veya Google hesabınız varsa, sadece Kaydolmanız gerekir. Aksi takdirde, Yeni Hesap Oluştur düğmesine tıklayın ve gerekli bilgileri sağlayın. Şimdi kimlik bilgilerini kullanarak panoya giriş yapın ve panodan Uygulamalar bölümünü genişletin ve İstemci Kimliği ve İstemci Gizli Bilgisi ayrıntılarını görmek için İstemci Kimlik Bilgileri bölümüne doğru aşağı kaydırın.
Şimdi bir sonraki adım, API’lere komut istemi aracılığıyla erişilebilmesi için JSON Web Token (JWT) üretmektir. Aynı JWT token, cURL komutları aracılığıyla API’lere erişmek için kullanılır.
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"
PHP SDK aracılığıyla API’ye erişim
PHP kodu aracılığıyla PDF dosyalarını programatik olarak işlemek isteyen PHP müşterilerimizin işini kolaylaştırmak için, Aspose.PDF Cloud API’nin etrafında bir sarmalayıcı olan Aspose.PDF for PHP Cloud SDK’yı geliştirdik. Dijital imzaları işlemek ve ilgili işlemleri gerçekleştirmek için aynı SDK’yı kullanabiliriz. SDK Composer ve GitHub‘dan indirilebilir.
Şimdi Composer aracılığıyla Aspose.PDF for PHP Cloud SDK’yı yükleme adımlarını tartışacağız. Composer‘in SDK ile kullanılması ve proje bağımlılıklarınızı yönetmeniz için önerildiğinin zaten farkındayız. Bu nedenle, Composer’ı sisteminizde yapılandırdıktan sonra, Aspose.PDF for PHP Cloud SDK’yı yüklemek için aşağıdaki komutu kullanmayı deneyin.
composer require aspose/pdf-sdk-php
İmza Alanlarını Oku
API, PDF belgelerinde halihazırda mevcut olan imza alanlarıyla ilişkili özellikleri okumanızı sağlar. İmza alanını okumak için iki seçeneğiniz olur.
- GetPageSignatureFields API’sini kullanarak belgenin belirli sayfasından imza alanlarını okuyun
- GetSignatureField API’sini kullanarak belge imza alanını adına göre okuyun
Belgenin belirli bir sayfasındaki imza alanlarını okumak için lütfen aşağıdaki cURL komutunu kullanmayı deneyin. Lütfen aşağıdaki komutta BlankWithSignature.pdf’nin kaynak PDF dosyası olduğunu unutmayın:
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>"
Şimdi belge üzerinde belirli İmza alanıyla ilişkili özellikleri okumak için, lütfen belirli bir imza alanının adını bir argüman olarak sağladığımız aşağıdaki komutu kullanmayı deneyin.
curl -X GET "https://api.aspose.cloud/v3.0/pdf/BlankWithSignature.pdf/fields/signature/Signature1" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
Aşağıda verilen detaylar ve adımlar, PHP kodu kullanarak PDF belgelerinin belirli sayfalarından imza alanı ayrıntılarının nasıl alınabileceğini açıklamaktadır.
protected $pdfApi;
// Uygulama anahtarını ve Uygulama SID'sini https://dashboard.aspose.cloud/ adresinden alın
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// yapılandırma nesnesi
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// PdfApi örneği oluştur
$this->pdfApi = new PdfApi(null, $this->config);
// giriş PDF belgesinin adı
$name = 'BlankWithSignature.pdf';
// dosyayı bulut depolama alanına yükle
$this->uploadFile($name);
// belgedeki sayfa numarası
$pageNumber = 1;
// belgeden imza alanlarını almak için API yöntemini çağırın
$response = $this->pdfApi->getPageSignatureFields($name, $pageNumber, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
Verilen kod, PDF dosyasındaki belirli imza alanlarına ait bilgilerin nasıl alınabileceğini göstermektedir.
protected $pdfApi;
// Uygulama anahtarını ve Uygulama SID'sini https://dashboard.aspose.cloud/ adresinden alın
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// yapılandırma nesnesi
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// PdfApi örneği oluştur
$this->pdfApi = new PdfApi(null, $this->config);
// giriş PDF belgesinin adı
$name = 'BlankWithSignature.pdf';
// PDF'yi bulut depolama alanına yükle
$this->uploadFile($name);
// bilgi almak için imza alanı
$fieldName = 'Signature1';
// imza alanı ayrıntılarını almak için API'yi çağırın
$response = $this->pdfApi->getSignatureField($name, $fieldName, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
PHP kullanarak İmza Alanları Ekleme
Aspose.PDF for PHP Cloud SDK ayrıca PDF belgesine imza alanları ekleme olanağı da sunar. Aşağıda verilen kod parçacığı, PDF dosyasına imza alanı eklemenizi sağlar.

protected $pdfApi;
// Uygulama anahtarını ve Uygulama SID'sini https://dashboard.aspose.cloud/ adresinden alın
$appSid = '';
$appKey = '';
$host = 'https://api.aspose.cloud/v3.0';
// yapılandırma nesnesi
$this->config = new Configuration();
$this->config->setAppKey($appKey);
$this->config->setAppSid($appSid);
$this->config->setHost($host);
// PdfApi örneği oluştur
$this->pdfApi = new PdfApi(null, $this->config);
// giriş PDF belgesinin adı
$name = 'BlankWithSignature.pdf';
// dosyayı bulut depolama alanına yükle
$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');
// imza alanının eklenmesi gereken sayfa dizini
$field->setPageIndex(1);
$field->setSignature($signature);
// İmza alanı için dikdörtgen bölgeyi belirtin
$field->setRect(new Aspose\PDF\Model\Rectangle(['llx' => 100, 'lly' => 100, 'urx' => 160, 'ury' => 140]));
// imza alanını eklemek için API'yi çağırın
$response = $this->pdfApi->postSignatureField($name, $field, null, $this->tempFolder);
$this->assertEquals(200, $response->getCode());
Çözüm
Bu blogda, PDF belgelerinde dijital imzalarla çalışma kavramlarını ele aldık. Mevcut imza alanlarıyla ilgili bilgilerin nasıl alınacağını ve belgeye yeni imza alanlarının nasıl ekleneceğini öğrendik. Lütfen Aspose.PDF for PHP Cloud SDK’nın açık kaynaklı olduğunu ve tam kaynak kodunun GitHub deposundan indirilebileceğini unutmayın.
Lütfen API’lerimizi kullanmayı deneyin ve herhangi bir sorunla karşılaşırsanız lütfen ücretsiz müşteri destek forumları aracılığıyla bizimle iletişime geçmekten çekinmeyin.