ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilPdfGenerator.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
8 {
13 
17  private $logger;
18 
22  private $rpcHelper;
23 
28 
36  public function __construct(
37  ilUserCertificateRepository $userCertificateRepository,
40  ilCertificatePdfFileNameFactory $pdfFileNameFactory = null,
41  ilLanguage $lng = null
42  ) {
43  global $DIC;
44 
45  $this->certificateRepository = $userCertificateRepository;
46  $this->logger = $logger;
47 
48  if (null === $rpcHelper) {
50  }
51  $this->rpcHelper = $rpcHelper;
52 
53  if (null === $lng) {
54  $lng = $DIC->language();
55  }
56 
57  if (null === $pdfFileNameFactory) {
58  $pdfFileNameFactory = new ilCertificatePdfFileNameFactory($lng);
59  }
60  $this->pdfFilenameFactory = $pdfFileNameFactory;
61  }
62 
68  public function generate(int $userCertificateId)
69  {
70  $certificate = $this->certificateRepository->fetchCertificate($userCertificateId);
71 
72  return $this->createPDFScalar($certificate);
73  }
74 
81  public function generateCurrentActiveCertificate(int $userId, int $objId) : string
82  {
83  $certificate = $this->certificateRepository->fetchActiveCertificate($userId, $objId);
84 
85  return $this->createPDFScalar($certificate);
86  }
87 
88  public function generateFileName(int $userId, int $objId) : string
89  {
90  $certificate = $this->certificateRepository->fetchActiveCertificateForPresentation($userId, $objId);
91 
92  $user = ilObjectFactory::getInstanceByObjId($userId);
93  if (!$user instanceof ilObjUser) {
94  throw new ilException(sprintf('The user_id "%s" does NOT reference a user', $userId));
95  }
96 
97  $pdfFileName = $this->pdfFilenameFactory->create($certificate);
98 
99  return $pdfFileName;
100  }
101 
106  private function createPDFScalar(ilUserCertificate $certificate) : string
107  {
108  $certificateContent = $certificate->getCertificateContent();
109 
110  $certificateContent = str_replace(
111  '[BACKGROUND_IMAGE]',
112  '[CLIENT_WEB_DIR]' . $certificate->getBackgroundImagePath(),
113  $certificateContent
114  );
115  $certificateContent = str_replace(
116  '[CLIENT_WEB_DIR]',
117  'file://' . CLIENT_WEB_DIR,
118  $certificateContent
119  );
120 
121  $pdf_base64 = $this->rpcHelper->ilFO2PDF('RPCTransformationHandler', $certificateContent);
122 
123  return $pdf_base64->scalar;
124  }
125 }
Class ilPdfGeneratorConstantsTest.
__construct(ilUserCertificateRepository $userCertificateRepository, ilLogger $logger, ilCertificateRpcClientFactoryHelper $rpcHelper=null, ilCertificatePdfFileNameFactory $pdfFileNameFactory=null, ilLanguage $lng=null)
$objId
Definition: xapitoken.php:39
generateFileName(int $userId, int $objId)
generateCurrentActiveCertificate(int $userId, int $objId)
$lng
global $DIC
Definition: goto.php:24
const CLIENT_WEB_DIR
Definition: constants.php:45
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Component logger with individual log levels by component id.
generate(int $userCertificateId)
createPDFScalar(ilUserCertificate $certificate)