public function WebformEntityPrintWebformExporter::writeSubmission in Webform 6.x
Same name and namespace in other branches
- 8.5 modules/webform_entity_print/src/Plugin/WebformExporter/WebformEntityPrintWebformExporter.php \Drupal\webform_entity_print\Plugin\WebformExporter\WebformEntityPrintWebformExporter::writeSubmission()
Write submission to export.
Parameters
\Drupal\webform\WebformSubmissionInterface $webform_submission: A webform submission.
Overrides WebformExporterBase::writeSubmission
File
- modules/
webform_entity_print/ src/ Plugin/ WebformExporter/ WebformEntityPrintWebformExporter.php, line 100
Class
- WebformEntityPrintWebformExporter
- Defines a Webform Entity Print PDF exporter.
Namespace
Drupal\webform_entity_print\Plugin\WebformExporterCode
public function writeSubmission(WebformSubmissionInterface $webform_submission) {
$configuration = $this
->getConfiguration();
// Make sure Webform Entity Print template is used.
// @see webform_entity_print_entity_view_alter()
$this->request->request
->set('_webform_entity_print', TRUE);
// Set view mode.
// @see \Drupal\webform\WebformSubmissionViewBuilder::view
$this->request->request
->set('_webform_submissions_view_mode', $configuration['view_mode']);
// Get print engine.
$export_type_id = $this
->getExportTypeId();
$print_engine = $this->printEngineManager
->createSelectedInstance($export_type_id);
// Get scheme.
$scheme = 'temporary';
// Get file name.
$file_extension = $this
->getExportTypeFileExtension();
$file_name = $this
->getSubmissionBaseName($webform_submission) . '.' . $file_extension;
// Save printable document.
$temporary_file_path = $this->printBuilder
->savePrintable([
$webform_submission,
], $print_engine, $scheme, $file_name);
if ($temporary_file_path) {
$this
->addToArchive(file_get_contents($temporary_file_path), $file_name);
$this->fileSystem
->delete($temporary_file_path);
}
}