I am trying to run PHPWord’s basic example in here on my Mac.
I am using XAMPP as app server.
I only changed the require_once
part and added sys_get_temp_dir() in front of the file name because of the “ZipArchive::close(): Failure to create temporary file: Permission denied
” error as same as in this question.
My index.php
file is as follows:
<?php require_once 'vendor/autoload.php'; // Creating the new document... $phpWord = new PhpOfficePhpWordPhpWord(); /* Note: any element you append to a document must reside inside of a Section. */ // Adding an empty Section to the document... $section = $phpWord->addSection(); // Adding Text element to the Section having font styled by default... $section->addText( '"Learn from yesterday, live for today, hope for tomorrow. ' . 'The important thing is not to stop questioning." ' . '(Albert Einstein)' ); /* * Note: it's possible to customize font style of the Text element you add in three ways: * - inline; * - using named font style (new font style object will be implicitly created); * - using explicitly created font style object. */ // Adding Text element with font customized inline... $section->addText( '"Great achievement is usually born of great sacrifice, ' . 'and is never the result of selfishness." ' . '(Napoleon Hill)', array('name' => 'Tahoma', 'size' => 10) ); // Adding Text element with font customized using named font style... $fontStyleName = 'oneUserDefinedStyle'; $phpWord->addFontStyle( $fontStyleName, array('name' => 'Tahoma', 'size' => 10, 'color' => '1B2232', 'bold' => true) ); $section->addText( '"The greatest accomplishment is not in never falling, ' . 'but in rising again after you fall." ' . '(Vince Lombardi)', $fontStyleName ); // Adding Text element with font customized using explicitly created font style object... $fontStyle = new PhpOfficePhpWordStyleFont(); $fontStyle->setBold(true); $fontStyle->setName('Tahoma'); $fontStyle->setSize(13); $myTextElement = $section->addText('"Believe you can and you're halfway there." (Theodor Roosevelt)'); $myTextElement->setFontStyle($fontStyle); echo(sys_get_temp_dir() . '/helloWorld.docx'); // Saving the document as OOXML file... $objWriter = PhpOfficePhpWordIOFactory::createWriter($phpWord, 'Word2007'); $objWriter->save(sys_get_temp_dir() . '/helloWorld.docx'); /* Note: we skip RTF, because it's not XML-based and requires a different example. */ /* Note: we skip PDF, because "HTML-to-PDF" approach is used to create PDF documents. */
However it gives no error and also not created the helloWorld.docx
file.
What is the reason and how can I solve that problem?
Advertisement
Answer
(1) Please try changing
$objWriter->save(sys_get_temp_dir() . '/helloWorld.docx');
to
$objWriter->save('./helloWorld.docx');
(2) Make sure you have write permission to your current folder.
(3) Run the program and see whether the helloWorld.docx is created in your current folder