芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/public_html/invoicer.pulsehost.co.uk/vendor/barryvdh/laravel-dompdf/src/PDF.php
dompdf = $dompdf; $this->config = $config; $this->files = $files; $this->view = $view; $this->showWarnings = $this->config->get('dompdf.show_warnings', false); } /** * Get the DomPDF instance */ public function getDomPDF(): Dompdf { return $this->dompdf; } /** * Show or hide warnings */ public function setWarnings(bool $warnings): self { $this->showWarnings = $warnings; return $this; } /** * Load a HTML string * * @param string|null $encoding Not used yet */ public function loadHTML(string $string, ?string $encoding = null): self { $string = $this->convertEntities($string); $this->dompdf->loadHtml($string, $encoding); $this->rendered = false; return $this; } /** * Load a HTML file */ public function loadFile(string $file): self { $this->dompdf->loadHtmlFile($file); $this->rendered = false; return $this; } /** * Add metadata info * @param array
$info */ public function addInfo(array $info): self { foreach ($info as $name => $value) { $this->dompdf->add_info($name, $value); } return $this; } /** * Load a View and convert to HTML * @param array
$data * @param array
$mergeData * @param string|null $encoding Not used yet */ public function loadView(string $view, array $data = [], array $mergeData = [], ?string $encoding = null): self { $html = $this->view->make($view, $data, $mergeData)->render(); return $this->loadHTML($html, $encoding); } /** * Set/Change an option (or array of options) in Dompdf * * @param array
|string $attribute * @param null|mixed $value */ public function setOption($attribute, $value = null): self { $this->dompdf->getOptions()->set($attribute, $value); return $this; } /** * Replace all the Options from DomPDF * * @param array
$options */ public function setOptions(array $options, bool $mergeWithDefaults = false): self { if ($mergeWithDefaults) { $options = array_merge(app()->make('dompdf.options'), $options); } $this->dompdf->setOptions(new Options($options)); return $this; } /** * Output the PDF as a string. * * The options parameter controls the output. Accepted options are: * * 'compress' = > 1 or 0 - apply content stream compression, this is * on (1) by default * * @param array
$options * * @return string The rendered PDF as string */ public function output(array $options = []): string { if (!$this->rendered) { $this->render(); } return (string) $this->dompdf->output($options); } /** * Save the PDF to a file */ public function save(string $filename, string $disk = null): self { $disk = $disk ?: $this->config->get('dompdf.disk'); if (! is_null($disk)) { Storage::disk($disk)->put($filename, $this->output()); return $this; } $this->files->put($filename, $this->output()); return $this; } /** * Make the PDF downloadable by the user */ public function download(string $filename = 'document.pdf'): Response { $output = $this->output(); return new Response($output, 200, [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment; filename="' . $filename . '"', 'Content-Length' => strlen($output), ]); } /** * Return a response with the PDF to show in the browser */ public function stream(string $filename = 'document.pdf'): Response { $output = $this->output(); return new Response($output, 200, [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'inline; filename="' . $filename . '"', ]); } /** * Render the PDF */ public function render(): void { $this->dompdf->render(); if ($this->showWarnings) { global $_dompdf_warnings; if (!empty($_dompdf_warnings) && count($_dompdf_warnings)) { $warnings = ''; foreach ($_dompdf_warnings as $msg) { $warnings .= $msg . "\n"; } // $warnings .= $this->dompdf->get_canvas()->get_cpdf()->messages; if (!empty($warnings)) { throw new Exception($warnings); } } } $this->rendered = true; } /** @param array
$pc */ public function setEncryption(string $password, string $ownerpassword = '', array $pc = []): void { $this->render(); $canvas = $this->dompdf->getCanvas(); if (! $canvas instanceof CPDF) { throw new \RuntimeException('Encryption is only supported when using CPDF'); } $canvas->get_cpdf()->setEncryption($password, $ownerpassword, $pc); } protected function convertEntities(string $subject): string { if (false === $this->config->get('dompdf.convert_entities', true)) { return $subject; } $entities = [ '€' => '€', '£' => '£', ]; foreach ($entities as $search => $replace) { $subject = str_replace($search, $replace, $subject); } return $subject; } /** * Dynamically handle calls into the dompdf instance. * * @param string $method * @param array
$parameters * @return $this|mixed */ public function __call($method, $parameters) { if (method_exists($this, $method)) { return $this->$method(...$parameters); } if (method_exists($this->dompdf, $method)) { $return = $this->dompdf->$method(...$parameters); return $return == $this->dompdf ? $this : $return; } throw new \UnexpectedValueException("Method [{$method}] does not exist on PDF instance."); } }