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


PHP pdf::combine_pdfs方法代码示例

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


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

示例1: generate_combined_pdf_for_attempt

 /**
  * This function will take all of the compatible files for a submission
  * and combine them into one PDF.
  * @param int|\assign $assignment
  * @param int $userid
  * @param int $attemptnumber (-1 means latest attempt)
  * @return stored_file
  */
 public static function generate_combined_pdf_for_attempt($assignment, $userid, $attemptnumber)
 {
     global $CFG;
     require_once $CFG->libdir . '/pdflib.php';
     $assignment = self::get_assignment_from_param($assignment);
     if (!$assignment->can_view_submission($userid)) {
         \print_error('nopermission');
     }
     $files = self::list_compatible_submission_files_for_attempt($assignment, $userid, $attemptnumber);
     $pdf = new pdf();
     if (!$files) {
         // No valid submission files - create an empty pdf.
         $pdf->AddPage();
     } else {
         // Create a mega joined PDF.
         $compatiblepdfs = array();
         foreach ($files as $file) {
             $compatiblepdf = pdf::ensure_pdf_compatible($file);
             if ($compatiblepdf) {
                 array_push($compatiblepdfs, $compatiblepdf);
             }
         }
         $tmpdir = \make_temp_directory('assignfeedback_editpdf/combined/' . self::hash($assignment, $userid, $attemptnumber));
         $tmpfile = $tmpdir . '/' . self::COMBINED_PDF_FILENAME;
         @unlink($tmpfile);
         $pagecount = $pdf->combine_pdfs($compatiblepdfs, $tmpfile);
         if ($pagecount == 0) {
             // We at least want a single blank page.
             $pdf->AddPage();
             @unlink($tmpfile);
             $files = false;
         }
     }
     $grade = $assignment->get_user_grade($userid, true, $attemptnumber);
     $record = new \stdClass();
     $record->contextid = $assignment->get_context()->id;
     $record->component = 'assignfeedback_editpdf';
     $record->filearea = self::COMBINED_PDF_FILEAREA;
     $record->itemid = $grade->id;
     $record->filepath = '/';
     $record->filename = self::COMBINED_PDF_FILENAME;
     $fs = \get_file_storage();
     $fs->delete_area_files($record->contextid, $record->component, $record->filearea, $record->itemid);
     if (!$files) {
         // This was a blank pdf.
         $content = $pdf->Output(self::COMBINED_PDF_FILENAME, 'S');
         $file = $fs->create_file_from_string($record, $content);
     } else {
         // This was a combined pdf.
         $file = $fs->create_file_from_pathname($record, $tmpfile);
         @unlink($tmpfile);
     }
     return $file;
 }
开发者ID:covex-nn,项目名称:moodle,代码行数:62,代码来源:document_services.php

示例2: generate_combined_pdf_for_attempt

 /**
  * This function will take all of the compatible files for a submission
  * and combine them into one PDF.
  * @param int|\assign $assignment
  * @param int $userid
  * @param int $attemptnumber (-1 means latest attempt)
  * @return stored_file
  */
 public static function generate_combined_pdf_for_attempt($assignment, $userid, $attemptnumber)
 {
     global $CFG;
     require_once $CFG->libdir . '/pdflib.php';
     $assignment = self::get_assignment_from_param($assignment);
     if (!$assignment->can_view_submission($userid)) {
         \print_error('nopermission');
     }
     $files = self::list_compatible_submission_files_for_attempt($assignment, $userid, $attemptnumber);
     $pdf = new pdf();
     if (!$files) {
         // No valid submission files - create an empty pdf.
         $pdf->AddPage();
     } else {
         // Create a mega joined PDF.
         $compatiblepdfs = array();
         foreach ($files as $file) {
             $compatiblepdf = pdf::ensure_pdf_compatible($file);
             if ($compatiblepdf) {
                 array_push($compatiblepdfs, $compatiblepdf);
             }
         }
         $tmpdir = \make_temp_directory('assignfeedback_editpdf/combined/' . self::hash($assignment, $userid, $attemptnumber));
         $tmpfile = $tmpdir . '/' . self::COMBINED_PDF_FILENAME;
         @unlink($tmpfile);
         try {
             $pagecount = $pdf->combine_pdfs($compatiblepdfs, $tmpfile);
         } catch (\Exception $e) {
             debugging('TCPDF could not process the pdf files:' . $e->getMessage(), DEBUG_DEVELOPER);
             // TCPDF does not recover from errors so we need to re-initialise the class.
             $pagecount = 0;
         }
         if ($pagecount == 0) {
             // We at least want a single blank page.
             debugging('TCPDF did not produce a valid pdf:' . $tmpfile . '. Replacing with a blank pdf.', DEBUG_DEVELOPER);
             $pdf = new pdf();
             $pdf->AddPage();
             @unlink($tmpfile);
             $files = false;
         }
     }
     $grade = $assignment->get_user_grade($userid, true, $attemptnumber);
     $record = new \stdClass();
     $record->contextid = $assignment->get_context()->id;
     $record->component = 'assignfeedback_editpdf';
     $record->filearea = self::COMBINED_PDF_FILEAREA;
     $record->itemid = $grade->id;
     $record->filepath = '/';
     $record->filename = self::COMBINED_PDF_FILENAME;
     $fs = \get_file_storage();
     $fs->delete_area_files($record->contextid, $record->component, $record->filearea, $record->itemid);
     // Detect corrupt generated pdfs and replace with a blank one.
     if ($files) {
         $pagecount = $pdf->load_pdf($tmpfile);
         if ($pagecount <= 0) {
             $files = false;
         }
     }
     if (!$files) {
         // This was a blank pdf.
         unset($pdf);
         $pdf = new pdf();
         $content = $pdf->Output(self::COMBINED_PDF_FILENAME, 'S');
         $file = $fs->create_file_from_string($record, $content);
     } else {
         // This was a combined pdf.
         $file = $fs->create_file_from_pathname($record, $tmpfile);
         @unlink($tmpfile);
         // Test the generated file for correctness.
         $compatiblepdf = pdf::ensure_pdf_compatible($file);
     }
     return $file;
 }
开发者ID:tyleung,项目名称:CMPUT401MoodleExams,代码行数:81,代码来源:document_services.php


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