
PDF 문서는 정보 공유에 널리 사용되는 파일 형식 중 하나입니다. 일반적으로 계약서와 같이 기밀 및 법적 가치가 있습니다. 파일의 무결성을 보장하고 위조를 방지하기 위해 디지털 서명을 추가합니다. 또한 문서가 작성자 외의 다른 사람에 의해 수정되지 않았는지 확인하고 작성자가 다른 사람이 아니라 우리가 기대하는 사람인지 확인합니다.
PDF의 디지털 서명은 종이 문서의 잉크 서명과 동일하지만 훨씬 더 안전합니다. 이 정보는 문서 내부에 배치되며 인기 있는 PDF 독자는 문서가 알 수 없는 사람에 의해 수정되지 않았는지 확인할 수 있습니다. 이 문서에서는 PHP에서 PDF 문서를 온라인으로 디지털 서명하는 방법에 대한 세부 정보를 논의합니다.
cURL 명령을 사용하여 API에 액세스
저희 API는 REST 아키텍처 원칙에 따라 구축되었으므로 cURL 명령을 통해서도 액세스할 수 있습니다. 저희 API는 권한이 있는 사람만 액세스할 수 있으므로 API에 액세스하기 전에 먼저 Aspose.Cloud 대시보드를 방문해야 하며 GitHub 또는 Google 계정이 있는 경우 간단히 가입하세요. 그렇지 않은 경우 새 계정 만들기 버튼을 클릭하고 필요한 정보를 제공하세요. 이제 자격 증명을 사용하여 대시보드에 로그인하고 대시보드에서 애플리케이션 섹션을 확장하고 클라이언트 자격 증명 섹션으로 스크롤하여 클라이언트 ID 및 클라이언트 비밀 세부 정보를 확인하세요.
이제 다음 단계는 명령 프롬프트를 통해 API에 액세스할 수 있도록 JSON 웹 토큰(JWT)을 생성하는 것입니다. 동일한 JWT 토큰이 cURL 명령을 통해 API에 액세스하는 데 사용됩니다.
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를 통한 API 접근
PHP 코드를 통해 PDF 파일을 프로그래밍 방식으로 처리하고자 하는 PHP 고객을 지원하기 위해 Aspose.PDF Cloud API를 래퍼로 사용하는 Aspose.PDF Cloud SDK for PHP를 개발했습니다. 동일한 SDK를 사용하여 디지털 서명을 처리하고 관련 작업을 수행할 수 있습니다. SDK는 Composer 및 GitHub에서 다운로드할 수 있습니다.
이제 composer를 통해 Aspose.PDF Cloud SDK for PHP를 설치하는 단계에 대해 논의해 보겠습니다. 우리는 이미 Composer가 SDK와 함께 사용되고 프로젝트 종속성을 관리하는 데 권장된다는 것을 알고 있습니다. 따라서 시스템에서 composer를 구성한 후 다음 명령을 사용하여 Aspose.PDF Cloud SDK for PHP를 설치해 보세요.
composer require aspose/pdf-sdk-php
서명 필드 읽기
API를 사용하면 PDF 문서에서 이미 사용 가능한 서명 필드와 관련된 속성을 읽을 수 있습니다. 서명 필드를 읽으려면 두 가지 옵션이 있습니다.
- GetPageSignatureFields API를 사용하여 문서의 특정 페이지에서 서명 필드를 읽습니다.
- GetSignatureField API를 사용하여 이름으로 문서 서명 필드 읽기
문서의 특정 페이지에서 서명 필드를 읽으려면 다음 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>"
아래에 나와 있는 세부 정보와 단계는 PHP 코드를 사용하여 PDF 문서의 특정 페이지에서 서명 필드 세부 정보를 검색하는 방법을 설명합니다.
protected $pdfApi;
// https://dashboard.aspose.cloud/에서 앱 키와 앱 SID를 가져옵니다.
$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/에서 앱 키와 앱 SID를 가져옵니다.
$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 for PHP는 PDF 문서에 서명 필드를 추가하는 기능도 제공합니다. 아래 코드 조각을 사용하면 PDF 파일에 서명 필드를 추가할 수 있습니다.

protected $pdfApi;
// https://dashboard.aspose.cloud/에서 앱 키와 앱 SID를 가져옵니다.
$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);
// 서명 필드에 직사각형 영역을 지정하세요
$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 for PHP는 오픈 소스이며 전체 소스 코드는 GitHub 저장소에서 다운로드할 수 있습니다.
저희 API를 사용해 보시고 문제가 발생할 경우 무료 고객 지원 포럼을 통해 문의해 주시기 바랍니다.