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.
I am trying to find a way to keep a block of content on the same page that goes like this:
Text
Image
Text
So I have text, then a new line, then an image, then a new line, then more text. Here is what I currently have:
CSS:
.figure{
text-align: center;
page-break-after: avoid;
}
.figure span{
display: block;
}
HTML:
<p class="figure">
<span>Text 1</span>
<span><img src="path_to_image.jpg"></span>
<span>Text 2</span>
</p>
This is working to keep the block on the same page, but the problem is, if 'Text 1' and the image can fit on the same line, it does that and doesn't cause a line break. I even tried manually putting <br> between Text 1 and the image and it still doesn't work.
Hello,
Is Tidy enabled and running on your server?
Regards.
I think so? This is what shows up in my php info:
tidy
Tidy support enabled
libTidy Release 25 March 2009
Extension Version 2.0 ($Id: 14aff36094bdd63f1d0adee006215e5e553294ea $)
Directive Local Value Master Value
tidy.clean_output 0 0
tidy.default_config no value no value
Hello,
The problem is how images are being added. When you add an image and text in the same paragraph, it set the text wrapping as in line with text.
We recommend you to use a paragraph for each element you want in the same line and take out the image.
Regards.
But I want the block to stay together, ie I don't want the first line of text on one page and the rest of it on the next page. I tried using the page-break-after: avoid in a div with p's inside but the only way it seems to work is by using page-break-after: avoid on a p.
So how can I keep the block together but also keep everything on their own lines?
Hello,
If the image and text go to the next page it's due to the image size that should be bigger than the page.
Adding an image that fits in the same page doesn't create a new page.
We recommend you to use a template with the needed placeholders and replace them with WordFragments or HTML to get the exact needed output. Using the MultiMerge class (http://www.phpdocx.com/api-documentation/docxutilities/merge-Word-documents-with-PHP) or the addExternalFile (http://www.phpdocx.com/api-documentation/templates/replace-variable-external-file-Word-document) you could merge the DOCX if needed.
Regards.
The problem is I'm trying to build a completely dynamic document from custom HTML. So I wanted a way to say 'keep this block of text and images on the same page' when building the HTML.