function document_handler_entity_presave($node) {
if ($node->getEntityType()->id() == 'node' && $node->bundle() == 'documenten') {
require_once('src/Controller/PhpWord/customloader.php');
$file = \Drupal\file\Entity\File::load($node->field_bestand->target_id);
$file_uri = $node->field_bestand->entity->getFileUri();
$url = \Drupal::service('file_system')->realpath($file_uri);
$text = read_docx($url);
$node->set('field_extracted_tekst', $text);
$phpWord = \PhpOffice\PhpWord\IOFactory::load($url);
$dirname = pathinfo($url, PATHINFO_DIRNAME);
$filename = time().'.pdf';
// $xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF');
// $pdf = $wordFile->saveAs($dirname.'/'.$filename, 'HTML');
$pdf = $phpWord->save($dirname.'/'.$filename, 'HTML');
$pdfData = file_get_contents($dirname.'/'.$filename);
// $file = \Drupal::service('file.repository')->writeData($pdfData, 'Public: //'.$filename, FileSystemInterface::EXISTS_RENAME);
$file = file_save_data($pdfData, 'Public: //'.$filename, FileSystemInterface::EXISTS_RENAME);
// var_dump($file);
// die();
$node->set('field_pdf', $file->id());
}
}
Ik haal een geupload word bestand op, en probeer die om te zetten naar pdf. Zoals je kunt zien heb ik al aardig wat geprobeert. $phpWord toont ook gewoon de juiste content uit het word bestand. De pdf word ook aangemaakt. Alleen wil de content niet laden. Heb alleen geen flauw idee waarom.