Solved

xsl break word

Posted on 2010-08-16
28
562 Views
Last Modified: 2013-11-18
i have 2 columns in a row.  Second column holds text. Text can be sentence or a single long word. IIf it is a single long word it tries to occupy first cell. I want the long word to break up and wrap.
please let me know if you have any suggestions.
0
Comment
Question by:mahalasa
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 16
  • 9
  • 2
  • +1
28 Comments
 
LVL 54

Expert Comment

by:Huseyin KAHRAMAN
ID: 33447007
wrap the second one in "a long text here bla bla bla...."
0
 

Author Comment

by:mahalasa
ID: 33447015
i dint get u..pls elaborat
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447024
There is a multitude of options.
So I have a couple of questions for you:
- XSLT1 or XSLT2
- Which XSLT processor, can that change?
- How do you want to break, every n characters, is n a parameter, how do you intend to tell the size based on the cell width?
- HTML or PDF, or... have you considered CSS wrapping options such as word-wrap (IE only)
0
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 
LVL 11

Expert Comment

by:kmartin7
ID: 33447037
Is this XSL:FO?
0
 

Author Comment

by:mahalasa
ID: 33447040
basically pdf is generated. Yes i have tried word wrap no use.
0
 

Author Comment

by:mahalasa
ID: 33447045
yes xsl;block
0
 

Author Comment

by:mahalasa
ID: 33447071
any expert in xsl?
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447097
If it is xsl:fo, and it is long words and you processor can't deal with hyphenation correctly, then I assume that the best alternative you have is adding a zerowidth space between each letter
easily done in XSLT2, some recursion in XSLT1.
Would that work for you?
I assume you have tried the wrap options of FO
0
 

Author Comment

by:mahalasa
ID: 33447098
i have seen that 24 characters can fit in without issues. i need to wrap text to next line for word greater than 24 characters.
0
 

Author Comment

by:mahalasa
ID: 33447111
wrap option works only for sentence.
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447114
> any expert in xsl?

well, you have two here already?
Not enough?
Don't expect miracles if you ask half questions
0
 

Author Comment

by:mahalasa
ID: 33447123
how do we add zero width space?
0
 

Author Comment

by:mahalasa
ID: 33447136
:-)
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447158
​
0
 

Author Comment

by:mahalasa
ID: 33447170
wat would this zero width space do?
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447193
well, visually you would still have one word, so your FO processor will not show the character.
For the processor however the word is no longer a word, but a sequence of characters with spaces in between, so wrapping will work as you please
0
 

Author Comment

by:mahalasa
ID: 33447218
This seems like resolving my issue. can you give me an example to use it with code snippet.

Thank a lot :-)
0
 
LVL 11

Expert Comment

by:kmartin7
ID: 33447233
Depending on FO processor, have you tried placing the text within each cell within a block, then use the 'wrap-option" attribute set to "wrap"?
0
 

Author Comment

by:mahalasa
ID: 33447241
yes, its already within a block :-(
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447247
Which processor have you used?
Are you sure you have exposed the wrap options in the block?
0
 

Author Comment

by:mahalasa
ID: 33447266
i am not sure abt the processor :-( i am new to xsl . yes i have tried wrap option. my pdf work absolutely fine for long sentence with proper wrapping
0
 

Author Comment

by:mahalasa
ID: 33447273
can u give me a code snippet which uses zero width spacing
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33447294
there are two processors, one for XSLT and one for XSL:FO
It makes sense that you know both of the processor brands and possibilities
Processors have specific implementations, so it can bite you if you don't have a clue

I will assume you have XSLT1 for the zero width stuff
0
 

Author Comment

by:mahalasa
ID: 33447300
Hi Gertone, i need one more help
do u know abt itext?
0
 

Author Comment

by:mahalasa
ID: 33447312
any code snippet using it would be really helpful
0
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 500 total points
ID: 33447355

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
    <xsl:template match="/">
        <xsl:variable name="test-string">
            <xsl:text>thisisaverylongwordandmyhyphenatorchoquesonit</xsl:text>
        </xsl:variable>
        <block>
            <xsl:call-template name="add-zero-width">
                <xsl:with-param name="str" select="$test-string"/>
            </xsl:call-template>
        </block>
    </xsl:template>
    <xsl:template name="add-zero-width">
        <xsl:param name="str"/>
        <xsl:value-of select="substring($str, 1, 1)"/>
        <xsl:text>&#8203;</xsl:text>
        <xsl:if test="string-length($str) > 1">
            <xsl:call-template name="add-zero-width">
                <xsl:with-param name="str" select="substring($str, 2)"/>
            </xsl:call-template>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

Open in new window

0
 

Author Closing Comment

by:mahalasa
ID: 33447373
Great response. I am really thankful.
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 33448254
welcome
0

Featured Post

Secure Your WordPress Site: 5 Essential Approaches

WordPress is the web's most popular CMS, but its dominance also makes it a target for attackers. Our eBook will show you how to:

Prevent costly exploits of core and plugin vulnerabilities
Repel automated attacks
Lock down your dashboard, secure your code, and protect your users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is Node.js? Node.js is a server side scripting language much like PHP or ASP but is used to implement the complete package of HTTP webserver and application framework. The difference is that Node.js’s execution engine is asynchronous and event…
Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question