PHPWord
PHPWord copied to clipboard
Invalid Image Appears in Codeigniter 4
I'm trying to take an image from a folder with a function in Codeigniter 4 and want to export it to word using PHPWord assisted by a tutorial at https://github.com/PHPOffice/PHPWord/issues/1895, but the results I get are Invalid Image when when I try to copy it to the url of the image it appears according to the directory. please help, any kind of help would be very valuable.
I also embed the code as study material. Thanks very much
` public function exportBA() { $user_login = $this->AuthModel->getUserId();
if (!isset($user_login['lp_sekretariat']) && !isset($user_login['user_lembaga_id'])) {
$str = ' <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script>
<script type="text/javascript">
setTimeout(function() {
BootstrapDialog.alert(\'Silahkan isi profil Anda dan Lembaga terlebih dahulu!!\')
window.location.href = \'/profil_user\';
},10000);
</script>';
echo $str;
} else {
$this->WilayahModel = new WilayahModel();
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor(FCPATH . 'data/templates/ba_pdtt.docx');
$filter1 = session()->get('kode_desa');
$filter5 = '1';
$jmlVerval = $this->VerivaliGeoModel->getJmlVerval($filter1);
$jmlVerval = $jmlVerval['jml'];
$jmlVervalFix = $this->VerivaliGeoModel->getJmlVervalFix($filter1, $filter5);
$jmlVervalFix = $jmlVervalFix['jml'];
$jmlNonVerval = $jmlVerval - $jmlVervalFix;
$vervalPdtt = $this->VerivaliGeoModel->getVerivaliFix($filter1, $filter5);
$coba = [];
foreach ($vervalPdtt as $i => $value) {
$coba[] = [
'vg_no' => $i + 1,
'vg_nik' => $value['vg_nik'],
'vg_nama_lengkap' => $value['vg_nama_lengkap'],
'vg_alamat' => $value['vg_alamat'],
'vg_rt' => $value['vg_rt'],
'vg_rw' => $value['vg_rw'],
'vg_desa' => $value['namaDesa'],
'dbj_nama_bansos' => $value['dbj_nama_bansos'],
'vg_lat' => $value['vg_lat'],
'vg_lang' => $value['vg_lang'],
'vg_fp_name' => $value['vg_fp'],
'vg_fp' => $value['vg_fp'],
'vg_fr_name' => $value['vg_fr'],
'vg_fr' => $value['vg_fr'],
];
$i++;
}
$templateProcessor->cloneRowAndSetValues('vg_no', $coba);
foreach ($coba as $i => $item) {
// path php to folder
$path = base_url('data/foto_pm/' . $item['vg_fp']);
$templateProcessor->setImageValue(sprintf('gambar#%d', $i + 1), array('path' => $path, 'width' => 10, 'height' => 10, 'ratio' => false));
}
$filename = 'BA VERVAL PDTT.docx';
header("Content-Description: File Transfer");
header('Content-Disposition: attachment;filename="' . $filename . '"'); //tell browser what's the file name
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
// Saving the document as OOXML file...
$templateProcessor->saveAs('php://output');
}
}
`