当前位置: 首页>>代码示例>>PHP>>正文


PHP TCPDF_STATIC::getObjFilename方法代码示例

本文整理汇总了PHP中TCPDF_STATIC::getObjFilename方法的典型用法代码示例。如果您正苦于以下问题:PHP TCPDF_STATIC::getObjFilename方法的具体用法?PHP TCPDF_STATIC::getObjFilename怎么用?PHP TCPDF_STATIC::getObjFilename使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TCPDF_STATIC的用法示例。


在下文中一共展示了TCPDF_STATIC::getObjFilename方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _toJPEG

 /**
  * Convert the loaded image to a JPEG and then return a structure for the PDF creator.
  * This function requires GD library and write access to the directory defined on K_PATH_CACHE constant.
  * @param $image (image) Image object.
  * @param $quality (int) JPEG quality.
  * return image JPEG image object.
  * @public static
  */
 public static function _toJPEG($image, $quality)
 {
     $tempname = TCPDF_STATIC::getObjFilename('img');
     imagejpeg($image, $tempname, $quality);
     imagedestroy($image);
     $retvars = self::_parsejpeg($tempname);
     // tidy up by removing temporary image
     unlink($tempname);
     return $retvars;
 }
开发者ID:amirjuve,项目名称:php,代码行数:18,代码来源:tcpdf_images.php

示例2: setFontBuffer

 /**
  * Set font buffer content.
  * @param $font (string) font key
  * @param $data (array) font data
  * @protected
  * @since 4.5.000 (2009-01-02)
  */
 protected function setFontBuffer($font, $data)
 {
     if ($this->diskcache) {
         if (!isset($this->fonts[$font])) {
             $this->fonts[$font] = TCPDF_STATIC::getObjFilename('font');
         }
         $this->writeDiskCache($this->fonts[$font], serialize($data));
     } else {
         $this->fonts[$font] = $data;
     }
     if (!in_array($font, $this->fontkeys)) {
         $this->fontkeys[] = $font;
         // store object ID for current font
         ++$this->n;
         $this->font_obj_ids[$font] = $this->n;
         $this->setFontSubBuffer($font, 'n', $this->n);
     }
 }
开发者ID:TheTypoMaster,项目名称:myapps,代码行数:25,代码来源:tcpdf.php

示例3: _generateencryptionkey

 /**
  * Compute encryption key
  * @protected
  * @since 2.0.000 (2008-01-02)
  * @author Nicola Asuni
  */
 protected function _generateencryptionkey()
 {
     $keybytelen = $this->encryptdata['Length'] / 8;
     if (!$this->encryptdata['pubkey']) {
         // standard mode
         if ($this->encryptdata['mode'] == 3) {
             // AES-256
             // generate 256 bit random key
             $this->encryptdata['key'] = substr(hash('sha256', TCPDF_STATIC::getRandomSeed(), true), 0, $keybytelen);
             // truncate passwords
             $this->encryptdata['user_password'] = $this->_fixAES256Password($this->encryptdata['user_password']);
             $this->encryptdata['owner_password'] = $this->_fixAES256Password($this->encryptdata['owner_password']);
             // Compute U value
             $this->encryptdata['U'] = $this->_Uvalue();
             // Compute UE value
             $this->encryptdata['UE'] = $this->_UEvalue();
             // Compute O value
             $this->encryptdata['O'] = $this->_Ovalue();
             // Compute OE value
             $this->encryptdata['OE'] = $this->_OEvalue();
             // Compute P value
             $this->encryptdata['P'] = $this->encryptdata['protection'];
             // Computing the encryption dictionary's Perms (permissions) value
             $perms = TCPDF_STATIC::getEncPermissionsString($this->encryptdata['protection']);
             // bytes 0-3
             $perms .= chr(255) . chr(255) . chr(255) . chr(255);
             // bytes 4-7
             if (isset($this->encryptdata['CF']['EncryptMetadata']) and !$this->encryptdata['CF']['EncryptMetadata']) {
                 // byte 8
                 $perms .= 'F';
             } else {
                 $perms .= 'T';
             }
             $perms .= 'adb';
             // bytes 9-11
             $perms .= 'nick';
             // bytes 12-15
             $this->encryptdata['perms'] = TCPDF_STATIC::_AESnopad($this->encryptdata['key'], $perms);
         } else {
             // RC4-40, RC4-128, AES-128
             // Pad passwords
             $this->encryptdata['user_password'] = substr($this->encryptdata['user_password'] . TCPDF_STATIC::$enc_padding, 0, 32);
             $this->encryptdata['owner_password'] = substr($this->encryptdata['owner_password'] . TCPDF_STATIC::$enc_padding, 0, 32);
             // Compute O value
             $this->encryptdata['O'] = $this->_Ovalue();
             // get default permissions (reverse byte order)
             $permissions = TCPDF_STATIC::getEncPermissionsString($this->encryptdata['protection']);
             // Compute encryption key
             $tmp = TCPDF_STATIC::_md5_16($this->encryptdata['user_password'] . $this->encryptdata['O'] . $permissions . $this->encryptdata['fileid']);
             if ($this->encryptdata['mode'] > 0) {
                 for ($i = 0; $i < 50; ++$i) {
                     $tmp = TCPDF_STATIC::_md5_16(substr($tmp, 0, $keybytelen));
                 }
             }
             $this->encryptdata['key'] = substr($tmp, 0, $keybytelen);
             // Compute U value
             $this->encryptdata['U'] = $this->_Uvalue();
             // Compute P value
             $this->encryptdata['P'] = $this->encryptdata['protection'];
         }
     } else {
         // Public-Key mode
         // random 20-byte seed
         $seed = sha1(TCPDF_STATIC::getRandomSeed(), true);
         $recipient_bytes = '';
         foreach ($this->encryptdata['pubkeys'] as $pubkey) {
             // for each public certificate
             if (isset($pubkey['p'])) {
                 $pkprotection = TCPDF_STATIC::getUserPermissionCode($pubkey['p'], $this->encryptdata['mode']);
             } else {
                 $pkprotection = $this->encryptdata['protection'];
             }
             // get default permissions (reverse byte order)
             $pkpermissions = TCPDF_STATIC::getEncPermissionsString($pkprotection);
             // envelope data
             $envelope = $seed . $pkpermissions;
             // write the envelope data to a temporary file
             $tempkeyfile = TCPDF_STATIC::getObjFilename('key', $this->file_id);
             $f = TCPDF_STATIC::fopenLocal($tempkeyfile, 'wb');
             if (!$f) {
                 $this->Error('Unable to create temporary key file: ' . $tempkeyfile);
             }
             $envelope_length = strlen($envelope);
             fwrite($f, $envelope, $envelope_length);
             fclose($f);
             $tempencfile = TCPDF_STATIC::getObjFilename('enc', $this->file_id);
             if (!openssl_pkcs7_encrypt($tempkeyfile, $tempencfile, $pubkey['c'], array(), PKCS7_BINARY | PKCS7_DETACHED)) {
                 $this->Error('Unable to encrypt the file: ' . $tempkeyfile);
             }
             // read encryption signature
             $signature = file_get_contents($tempencfile, false, null, $envelope_length);
             // extract signature
             $signature = substr($signature, strpos($signature, 'Content-Disposition'));
             $tmparr = explode("\n\n", $signature);
//.........这里部分代码省略.........
开发者ID:developmentDM2,项目名称:The-Haute-Mess,代码行数:101,代码来源:tcpdf.php

示例4: Output

 /**
  * Overriden to allow unicode in filenames
  * @see http://sourceforge.net/p/tcpdf/feature-requests/184/
  *
  * Send the document to a given destination: string, local file or browser.
  * In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.<br />
  * The method first calls Close() if necessary to terminate the document.
  * @param $name (string) The name of the file when saved. Note that special characters are removed and blanks characters are replaced with the underscore character.
  * @param $dest (string) Destination where to send the document. It can take one of the following values:<ul><li>I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.</li><li>D: send to the browser and force a file download with the name given by name.</li><li>F: save to a local server file with the name given by name.</li><li>S: return the document as a string (name is ignored).</li><li>FI: equivalent to F + I option</li><li>FD: equivalent to F + D option</li><li>E: return the document as base64 mime multi-part email attachment (RFC 2045)</li></ul>
  * @public
  * @since 1.0
  * @see Close()
  */
 public function Output($name = 'doc.pdf', $dest = 'I')
 {
     //Output PDF to some destination
     //Finish document if necessary
     if ($this->state < 3) {
         $this->Close();
     }
     //Normalize parameters
     if (is_bool($dest)) {
         $dest = $dest ? 'D' : 'F';
     }
     $dest = strtoupper($dest);
     if ($dest[0] != 'F') {
         $name = preg_replace('/[\\s]+/', '_', $name);
         $name = preg_replace('/[^\\p{L}\\p{N}_\\.-]/u', '', $name);
     }
     if ($this->sign) {
         // *** apply digital signature to the document ***
         // get the document content
         $pdfdoc = $this->getBuffer();
         // remove last newline
         $pdfdoc = substr($pdfdoc, 0, -1);
         // Remove the original buffer
         if (isset($this->diskcache) and $this->diskcache) {
             // remove buffer file from cache
             unlink($this->buffer);
         }
         unset($this->buffer);
         // remove filler space
         $byterange_string_len = strlen(TCPDF_STATIC::$byterange_string);
         // define the ByteRange
         $byte_range = array();
         $byte_range[0] = 0;
         $byte_range[1] = strpos($pdfdoc, TCPDF_STATIC::$byterange_string) + $byterange_string_len + 10;
         $byte_range[2] = $byte_range[1] + $this->signature_max_length + 2;
         $byte_range[3] = strlen($pdfdoc) - $byte_range[2];
         $pdfdoc = substr($pdfdoc, 0, $byte_range[1]) . substr($pdfdoc, $byte_range[2]);
         // replace the ByteRange
         $byterange = sprintf('/ByteRange[0 %u %u %u]', $byte_range[1], $byte_range[2], $byte_range[3]);
         $byterange .= str_repeat(' ', $byterange_string_len - strlen($byterange));
         $pdfdoc = str_replace(TCPDF_STATIC::$byterange_string, $byterange, $pdfdoc);
         // write the document to a temporary folder
         $tempdoc = TCPDF_STATIC::getObjFilename('doc');
         $f = fopen($tempdoc, 'wb');
         if (!$f) {
             $this->Error('Unable to create temporary file: ' . $tempdoc);
         }
         $pdfdoc_length = strlen($pdfdoc);
         fwrite($f, $pdfdoc, $pdfdoc_length);
         fclose($f);
         // get digital signature via openssl library
         $tempsign = TCPDF_STATIC::getObjFilename('sig');
         if (empty($this->signature_data['extracerts'])) {
             openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED);
         } else {
             openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED, $this->signature_data['extracerts']);
         }
         unlink($tempdoc);
         // read signature
         $signature = file_get_contents($tempsign);
         unlink($tempsign);
         // extract signature
         $signature = substr($signature, $pdfdoc_length);
         $signature = substr($signature, strpos($signature, "%%EOF\n\n------") + 13);
         $tmparr = explode("\n\n", $signature);
         $signature = $tmparr[1];
         unset($tmparr);
         // decode signature
         $signature = base64_decode(trim($signature));
         // convert signature to hex
         $signature = current(unpack('H*', $signature));
         $signature = str_pad($signature, $this->signature_max_length, '0');
         // disable disk caching
         $this->diskcache = false;
         // Add signature to the document
         $this->buffer = substr($pdfdoc, 0, $byte_range[1]) . '<' . $signature . '>' . substr($pdfdoc, $byte_range[1]);
         $this->bufferlen = strlen($this->buffer);
     }
     switch ($dest) {
         case 'I':
             // Send PDF to the standard output
             if (ob_get_contents()) {
                 $this->Error('Some data has already been output, can\'t send PDF file');
             }
             if (php_sapi_name() != 'cli') {
                 // send output to a browser
                 header('Content-Type: application/pdf');
//.........这里部分代码省略.........
开发者ID:AleksNesh,项目名称:pandora,代码行数:101,代码来源:Mypdf.php


注:本文中的TCPDF_STATIC::getObjFilename方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。