add pdf export
This commit is contained in:
parent
e1c4dc6ebc
commit
cb1001fa0e
|
@ -7,6 +7,7 @@
|
|||
"prefer-stable": true,
|
||||
"require": {
|
||||
"php": ">=8.0.0",
|
||||
"knplabs/knp-snappy": "^1.4",
|
||||
"murph/murph-core": "^1.13,>=1.13.0",
|
||||
"sabre/dav": "^4.3"
|
||||
},
|
||||
|
|
|
@ -4,11 +4,13 @@ namespace App\Controller;
|
|||
|
||||
use App\Core\Controller\Site\PageController;
|
||||
use App\Entity\Debriefing;
|
||||
use Knp\Snappy\Pdf;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
|
||||
|
||||
class DebriefingController extends PageController
|
||||
{
|
||||
public function debriefing(Debriefing $entity, \DateTime $date): Response
|
||||
public function debriefing(Debriefing $entity, \DateTime $date, string $format): Response
|
||||
{
|
||||
if (!$this->siteRequest->getPage()) {
|
||||
throw $this->createNotFoundException();
|
||||
|
@ -18,8 +20,19 @@ class DebriefingController extends PageController
|
|||
throw $this->createNotFoundException();
|
||||
}
|
||||
|
||||
return $this->defaultRender($this->siteRequest->getPage()->getTemplate(), [
|
||||
$response = $this->defaultRender($this->siteRequest->getPage()->getTemplate(), [
|
||||
'entity' => $entity,
|
||||
]);
|
||||
|
||||
if ('pdf' === $format) {
|
||||
$snappy = new Pdf('/usr/bin/wkhtmltopdf', [
|
||||
'enable-local-file-access' => true,
|
||||
]);
|
||||
|
||||
$response->setContent($snappy->getOutputFromHtml($response->getContent()));
|
||||
$response->headers->set('Content-Type', 'application/pdf');
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,10 +39,24 @@
|
|||
<li class="list-group-item">
|
||||
<span class="font-weight-bold pb-2 d-block">Partager</span>
|
||||
|
||||
{% set url = safe_path('main_fr_menu_debriefing', {entity: entity.id, date: entity.date|date('d-m-Y')}) %}
|
||||
{% set urlHtml = safe_path('main_fr_menu_debriefing', {
|
||||
entity: entity.id,
|
||||
date: entity.date|date('d-m-Y'),
|
||||
format: 'html'
|
||||
}) %}
|
||||
|
||||
<a class="btn btn-success border btn-sm mb-2 d-block" href="{{ url }}">
|
||||
Partager
|
||||
{% set urlPdf = safe_path('main_fr_menu_debriefing', {
|
||||
entity: entity.id,
|
||||
date: entity.date|date('d-m-Y'),
|
||||
format: 'pdf'
|
||||
}) %}
|
||||
|
||||
<a class="btn btn-success border btn-sm mb-2 d-block" href="{{ urlHtml }}" target="_blank">
|
||||
Partager en ligne
|
||||
</a>
|
||||
<a class="btn btn-danger border btn-sm mb-2 d-block" href="{{ urlPdf }}" target="_blank">
|
||||
<span class="fa fa-file-pdf"></span>
|
||||
Voir en PDF
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
{%- endblock -%}
|
||||
|
||||
{%- block stylesheets -%}
|
||||
{{ encore_entry_link_tags('cr') }}
|
||||
{{ encore_entry_link_tags('cr')|replace({'href="/': 'href="' ~ absolute_url('/')})|raw }}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block javascripts -%}
|
||||
{{ encore_entry_script_tags('cr') }}
|
||||
{{ encore_entry_script_tags('cr')|replace({'src="/': 'src="' ~ absolute_url('/')})|raw }}
|
||||
{%- endblock -%}
|
||||
|
||||
{%- block title -%}
|
||||
|
@ -27,7 +27,7 @@
|
|||
<div class="container">
|
||||
<div class="row mt-3 mb-3">
|
||||
<div class="col-md-3 text-center">
|
||||
<img src="{{ asset('build/images/tinternet.png') }}" alt="Tinternet & Cie" width="120">
|
||||
<img src="{{ absolute_url(asset('build/images/tinternet.png')) }}" alt="Tinternet & Cie" width="120">
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<h1 class="h2">{{ entity.topic }}</h1>
|
||||
|
@ -65,7 +65,7 @@
|
|||
</li>
|
||||
{% endif %}
|
||||
{% if entity.files %}
|
||||
<li class="list-group-item">
|
||||
<li class="list-group-item d-print-none">
|
||||
<span class="font-weight-bold pb-2 d-block">Fichiers</span>
|
||||
|
||||
{% for item in entity.files %}
|
||||
|
|
Loading…
Reference in a new issue