ILIAS  release_8 Revision v8.24
class.ilPdfGenerator.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
25{
30
31 public function __construct(
32 ilUserCertificateRepository $userCertificateRepository,
35 ?ilCertificatePdfFileNameFactory $pdfFileNameFactory = null,
36 ?ilLanguage $lng = null
37 ) {
38 global $DIC;
39
40 $this->certificateRepository = $userCertificateRepository;
41 $this->logger = $logger;
42
43 if (null === $rpcHelper) {
45 }
46 $this->rpcHelper = $rpcHelper;
47
48 if (null === $lng) {
49 $lng = $DIC->language();
50 }
51
52 if (null === $pdfFileNameFactory) {
53 $pdfFileNameFactory = new ilCertificatePdfFileNameFactory($lng);
54 }
55 $this->pdfFilenameFactory = $pdfFileNameFactory;
56 }
57
63 public function generate(int $userCertificateId): string
64 {
65 $certificate = $this->certificateRepository->fetchCertificate($userCertificateId);
66
67 return $this->createPDFScalar($certificate);
68 }
69
76 public function generateCurrentActiveCertificate(int $userId, int $objId): string
77 {
78 $certificate = $this->certificateRepository->fetchActiveCertificate($userId, $objId);
79
80 return $this->createPDFScalar($certificate);
81 }
82
91 public function generateFileName(int $userId, int $objId): string
92 {
93 $certificate = $this->certificateRepository->fetchActiveCertificateForPresentation($userId, $objId);
94
96 if (!$user instanceof ilObjUser) {
97 throw new ilException(sprintf('The usr_id "%s" does NOT reference a user', $userId));
98 }
99
100 return $this->pdfFilenameFactory->create($certificate);
101 }
102
103 private function createPDFScalar(ilUserCertificate $certificate): string
104 {
105 $certificateContent = $certificate->getCertificateContent();
106
107 $certificateContent = str_replace(
108 ['[BACKGROUND_IMAGE]', '[CLIENT_WEB_DIR]'],
109 ['[CLIENT_WEB_DIR]' . $certificate->getBackgroundImagePath(), 'file://' . CLIENT_WEB_DIR],
110 $certificateContent
111 );
112
113 $pdf_base64 = $this->rpcHelper->ilFO2PDF('RPCTransformationHandler', $certificateContent);
114
115 return $pdf_base64->scalar;
116 }
117}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
language handling
Component logger with individual log levels by component id.
User class.
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
createPDFScalar(ilUserCertificate $certificate)
generate(int $userCertificateId)
__construct(ilUserCertificateRepository $userCertificateRepository, ilLogger $logger, ?ilCertificateRpcClientFactoryHelper $rpcHelper=null, ?ilCertificatePdfFileNameFactory $pdfFileNameFactory=null, ?ilLanguage $lng=null)
ilUserCertificateRepository $certificateRepository
generateCurrentActiveCertificate(int $userId, int $objId)
ilCertificateRpcClientFactoryHelper $rpcHelper
generateFileName(int $userId, int $objId)
ilCertificatePdfFileNameFactory $pdfFilenameFactory
const CLIENT_WEB_DIR
Definition: constants.php:47
global $DIC
Definition: feed.php:28
Class ilPdfGeneratorConstantsTest.
$lng
$objId
Definition: xapitoken.php:57