Topic closed:
Please note this is an old forum thread. Information in this post may be out-to-date and/or erroneous.
Every phpdocx version includes new features and improvements. Previously unsupported features may have been added to newer releases, or past issues may have been corrected.
If I use $docx->addTableContents(array('autoUpdate' => true)); it puts my table of contents below the declared variables in the template. Is there an option to put my table of content before variables? So on a certain page or in a other variable? I wan't to use the variables in the template, but need an table of content as well.
Regards,
Jordy
Hello,
Please try adding a page break with this method:
http://www.phpdocx.com/api-documentation/word-content/insert-line-column-page-break-Word-document-with-PHP
and adding a new section:
http://www.phpdocx.com/api-documentation/layout-and-general/add-section-Word-document-with-PHP
Regards.
Hello admin,
I don't really understand where I put my page break and section. I've two variables on the first page. And twho on the third page. Between them I want a table of contents, which is updated automatically. My code right now:
$variables = array(
'TITLE' => 'Document',
'SUBTITLE' => 'Description',
);
$docx->replaceVariableByText($variables);
$docx->addBreak(array('type' => 'page'));
$docx->addSection('nextPage', 'A4');
//Add table of contents to the document
$docx->addTableContents(array('autoUpdate' => true));
$docx->addBreak(array('type' => 'page'));
$docx->addSection('nextPage', 'A4');
$variables = array(
'PART1' => 'title',
'PART2' => 'description'
);
//etc.
My template is just as how I want it, on the first page there are 2 variables. Then 1 page blank and then 1 page with 2 variables again. The table of contents has to be on page 2.
Can you help me? Thanks a lot!
Regards
Hello,
What version and license of phpdocx are you using?
Regards.
Edited by jordyboytjuh ·
30-01-2015 - 12:24 I'm using the trial right now. It's version 4.1.
Is it possible to add the table of content before variables in the template?Is it possible in the trial? I don't understand your page break and section. Can you give me an example?
Thanks in advance!
Regards
Hello,
If you're createing a new document the code is simple; for example:
//path to the CreateDocx class within your PHPDocX installation
require_once '../../classes/CreateDocx.inc';
$docx = new CreateDocx();
$docx->addText('Cover');
$docx->addBreak(array('type' => 'page'));
$docx->addText('Another page');
$docx->addBreak(array('type' => 'page'));
$docx->addTableContents(array('autoUpdate' => true), $legend, '../../examples/files/crazyTOC.docx');
//we add now some headings so tehy show up in the TOC
$docx->addText('Chapter 1', array('pStyle' => 'Heading1PHPDOCX'));
$docx->addText('Section', array('pStyle' => 'Heading2PHPDOCX'));
$docx->addText('Another TOC entry', array('pStyle' => 'Heading3PHPDOCX'));
$docx->createDocx('example_addTableContents');
If you're using templates you need to add the TOC with Word in the page you need it. You can't replace a placeholder by a TOC.
Regards.
Allright, with a new document everything works fine. But is it possible to autoupdate an TOC that is allready placed in my template? So that the user get's an notification to update it? Or is that only possible with a new document only?
Hello,
You'd need to add a macro that update it.
Regards.
That's disappointing. So I can't work with a (filled) template and TOC together, with auto-update but without macro's (because of the notification in the beginning in Word). The only way is to put all the data in the php, with an addTOC in it to get the auto-update?
Maybe it's an option to put a TOC where you declared it? So you set a place where you want the TOC, which auto-update works the same as the addTOC right now?
We want a filled template but have a TOC as well (it's no problem if we put it in the template, or make it in PHP), but we want it on the second or third page, without macro's and update it automatically. Can you give the developers an request for this? I think more people are interested in it.
Hello,
The Corporate and Enterprise licenses can do that by doing two or more merges.
But the trial package doesn't include the merging class.
Regards.
Thanks for the information! We've bought the Corporate license so I will look into the merging.
Regards.
Thank you! It works with the merging, my TOC is refreshing when I'm opening the document. Last question, is there something like mergeDocxAndDownload? Like the createDocxAndDownload? So I can download my merged document? Thanks for all the information!
Hello,
There's no method to merge and download. But it's very easy to do with a few headers, for example these are the headers used in the createDocxAndDownload method:
header(
'Content-Type: application/vnd.openxmlformats-officedocument.' .
'wordprocessingml.document'
);
header(
'Content-Disposition: attachment; filename="' . $fileNameDownload .
'.' . $this->_extension . '"'
);
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($fileName . '.' . $this->_extension));
readfile($fileName . '.' . $this->_extension);
You just need to change the file path and add it to your code. Just remember you can't print anything before a PHP header.
Regards.
Deleted by Omnext ·
03-02-2015 - 13:38