Forums / Developer / Text wrapping at a specific width in texttoimage

Text wrapping at a specific width in texttoimage

Author Message

Frode Marton Meling

Wednesday 15 October 2003 6:42:45 am

eZp v3.2
It would be nice to be able to specify a max width in pixels when using texttoimage. Then the text is wrapped automatically.

Is this possible?
Should this be an enhancement bug?

Frode

Jan Borsodi

Thursday 16 October 2003 3:48:20 am

This is quite hard to do, we use the PHP extension Image to do the text to image conversion. Unfortunately the extension is quite limited with what you can do with the text.

The only way to get this is done is to fix the ImageGD library AND the Image extension, something which is outside of the scope of eZ publish.

The function that we use in eZ publish is.
http://no.php.net/manual/en/function.imagettftext.php

--
Amos

Documentation: http://ez.no/ez_publish/documentation
FAQ: http://ez.no/ez_publish/documentation/faq

Frode Marton Meling

Thursday 16 October 2003 11:44:53 am

Thanks.
What I need is a way to determin the pictures width and if it is over a given width, return it as two images (i don't know if I need a <br/> inbetween the pictures.)
My problem is that if editors enter a too large heading, it destroys my design (table based)...

Is this possible from tpl programming?

Frode

Marco Zinn

Thursday 16 October 2003 2:09:56 pm

I think, you can limit your header text to "n" characters, before sending it to "texttoimage".
There is an operator in ez for that (shorten, see http://ez.no/developer/ez_publish_3/documentation/development/libraries/ez_template/operators/string_handling#shorten)
See, your template would be something like
{$header|shorten(20)|texttoimage('arial')}

Maybe you could even "wrap" your header (will insert \n ) and then send it to imagetotext. I don't know, if imagetotext is able to create multi-line-images.
(see http://ez.no/developer/ez_publish_3/documentation/development/libraries/ez_template/operators/string_handling#wrap )

Marco
http://www.hyperroad-design.com

Ronan Guilloux

Wednesday 27 August 2008 3:29:08 am

You can use wrap operator on texttoimage :

{$node.name|wrap(20)|texttoimage( 'arial',,20,,,'#064D95',,,,5 )}

or use a special character (like '$') to introduce a word wrap at a specific place in the string :

{if $node.name.content|contains('$')}
{def $wrappedTitleArr = $node.name.content|explode( '$' )}
<h2>
{for 0 to $wrappedTitleArr|count|dec as $counter}
{$wrappedTitleArr[$counter]|texttoimage( 'arial',,20,,,'#064D95',,,,5 )}
{delimiter}<br />{/delimiter}
{/for}
</h2>
{undef $wrappedTitleArr}
{/if}

--
Ronan Guilloux
www.mazedia.fr
www.coolforest.net

eZ debug

Timing: Jan 30 2025 00:54:30
Script start
Timing: Jan 30 2025 00:54:30
Module start 'content'
Timing: Jan 30 2025 00:54:30
Module end 'content'
Timing: Jan 30 2025 00:54:30
Script end

Main resources:

Total runtime0.1568 sec
Peak memory usage2,048.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0055 588.0625180.8125
Module start 'content' 0.00550.0077 768.875097.9297
Module end 'content' 0.01320.1435 866.8047526.2500
Script end 0.1567  1,393.0547 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00352.2096200.0002
Check MTime0.00140.9126200.0001
Mysql Total
Database connection0.00060.373710.0006
Mysqli_queries0.106968.16451410.0008
Looping result0.00120.77801390.0000
Template Total0.143191.310.1431
Template load0.00080.540810.0008
Template processing0.142390.720710.1423
Override
Cache load0.00060.365510.0006
Sytem overhead
Fetch class attribute can translate value0.00100.642910.0010
XML
Image XML parsing0.00030.174110.0003
General
dbfile0.01046.6565200.0005
String conversion0.00000.003230.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0002 secs