मैं एक साधारण पीडीएफ दस्तावेज़ पर हस्ताक्षर करने के दिनचर्या का निर्माण करने, पीएचपी, openssl का उपयोग कर कोशिश कर रहा हूँ, और Zend फ्रेमवर्क (पीडीएफ redering/से निपटने के लिए) का उपयोग कर।डिजिटल एक पीडीएफ पर हस्ताक्षर करने, पीएचपी, Zend, और openssl
मुझे this मिला है, लेकिन यह बस काम नहीं करेगा, ज़ेंड किसी भी पीडीएफ को खोलने में सक्षम नहीं है, यहां तक कि ज़ेंड का अपना परीक्षण पीडीएफ भी नहीं है और ज़ेंड रिपोर्ट नहीं करेगा क्यों, केवल यह 'नहीं कर सकता'।
मुझे पूरा यकीन है कि मैं कुंजीपटल/कर्ट प्रभावी ढंग से दस्तावेज के रूप में प्रभावी ढंग से तैयार करने में सक्षम हूं, लेकिन पीडीएफ में जेनरेट किए गए प्रमाण पत्र को जोड़ने के लिए एक ठोस दृष्टिकोण है क्योंकि उपरोक्त ज़ेंड एक्सटेंशन ने सुझाव दिया है कि यह एक बार किया गया है?
function DigiSignPDF ($pdf_sign_request) {
if (get_magic_quotes_gpc()) {
$new_pdf = stripslashes($pdf_sign_request['raw_pdf']);
} else {
$new_pdf = $pdf_sign_request['raw_pdf'];
}
$test_pdf = stripslashes(file_get_contents('path/Some.pdf'));
$test_pdf2 = ('path/Some.pdf');
$pdf = Zend_Pdf::load($new_pdf2);
//below is the signing code, from another library, it works as long as Zend_Pdf works
$certificate = file_get_contents('path/certificate.p12');
$certificatePassword = 'test123';
if (empty($certificate)) {
throw new Zend_Pdf_Exception('Cannot retrieve/generate the certificate.');
}
$pdf->attachDigitalCertificate($certificate,$certificatePassword);
$eSig_pdf = $pdf->render();
file_put_contents('path/signed_pdf.pdf', $eSig_pdf);
}
संपादित बताया कोड: ऊपर केवल अगर मैं Zend_Pdf के लिए इनपुट के रूप में 'test_pdf2' का उपयोग काम करता है। यह प्रमाण को बाइनरी के रूप में मान्यता नहीं देता है, लेकिन मुझे डिस्क पर कभी भी लिखने के बिना पीडीएफ पास करने में सक्षम होना चाहिए।
ठीक है, तो मैं करीब आ गया होगा। क्या हो रहा है कि PHP फ़ाइल में स्लेश, न्यूलाइन, कैरिज रिटर्न कैरेक्टर डालने पर जोर देता है, इससे कोई फर्क नहीं पड़ता कि मैं इसे अपलोड करता हूं, या इसे file_get_contents का उपयोग करके स्थानीय डिस्क से पढ़ता हूं। मुझे पता है और स्ट्रिप्सप्लेश की कोशिश की है, जादू_क्वाट्स को घोषित कर रहा है, आदि। मैं केवल इसे काम करने के लिए प्राप्त कर सकता हूं यदि मेरे पास Zend_Pdf फ़ाइल को सीधे पढ़ता है, जो मेरे लिए काम नहीं करेगा क्योंकि हम इनमें से किसी भी फाइल को नहीं लिखेंगे डिस्क, कभी। क्या PHP को यह समझाने के लिए वैसे भी है कि इसे उस डेटा से छेड़छाड़ नहीं करना चाहिए जिसे इसे संभालने के लिए कहा जाता है? – jbrain
क्या हम आपका कोड देख सकते हैं जिसका उपयोग आप पीडीएफ को संभालने के लिए कर रहे हैं? इसे अपने प्रश्न में संपादित करें। – halfer
इसे हल किया गया, क्योंकि मैं सामग्री को Zend_Pdf को स्ट्रिंग के रूप में पास कर रहा था, मुझे Zend_Pdf :: parse ($ new_pdf) का उपयोग करना चाहिए था, क्योंकि मैन्युअल रूप से यह संभवतः कहता है। (ओओएस) – jbrain