MatLab Report Generator Word Wrap Issues
29 views (last 30 days)
Show older comments
Matt O'Brien
on 25 Nov 2022
Commented: Matthew Penning
on 4 Nov 2024 at 19:15
I have a pdf generated via MatLab Report Generator. I have a few remaining issues. I have spent days trying to resolve via search of this and other forums.
I am posting each issue individually.
This issue. Word Wrap at the end of a line in a table.
I am successfully populating a table with text and the table is placed as I wish on the page. The problem is that words are truncated at the end of a line and then continue on the next. I wish to use the behaviour where words are not split at the end of a line before any combination of cr/lf.
Ps. These settings make no difference.
MyDescrTbl.Style = {Hyphenation(true)};
or
MyDescrTbl.Style = {Hyphenation(false)};
0 Comments
Accepted Answer
Sameer Pujari
on 28 Nov 2022
Hi Matt
To get the text to wrap to the second line by separating at a "space" rather than in the middle of a word when using the MATLAB Report Generator, you need to customize the default PDF template used by performing the following:
1. Create a new PDF template from the default PDF template:
>> mlreportgen.dom.Document.createTemplate('mytemplate','pdf');
2. This creates a new PDF template file, "mytemplate.pdftx". Then unzip the template, to gain access to the "root.css" file which allows you to define PDF styles:
>> unzipTemplate('mytemplate.pdftx')
3. In the new folder that is created go to the "stylesheets" folder and open "root.css" to edit in MATLAB or in a text editor.
4. Add the following style to the "table" entry in the CSS file:
-ah-word-break: keep-all
5. Save the CSS file and now zip the template to create an updated "mytemplate.pdftx" file:
>> zipTemplate('mytemplate.pdftx');
6. Then create a "Report" object, by passing the new template as an input argument:
>> d = Report("mydoc","pdf", "mytemplate.pdftx");
For more information on creating a PDF template please visit the following documentation link:
For more information on the different styles you can modify for a PDF template please visit the following documentation link:
4 Comments
Matthew Penning
on 4 Nov 2024 at 19:15
Hello,
Currently I am not able to get this solution to work for me. Was wondering if maybe when I was setting the column and row styles it would override this? Any suggestions? Below is a snip of the code where I am styling the table - in case there is anything in there that may be conflicting.
reftbl = Table([header;row]); % Create the table
%Style overall table
reftbl.Style = {OuterMargin('0pt', '0pt', '0pt', '10pt'), ... % Set table margins
Width('100%')}; % Set table width
reftbl.TableEntriesStyle = {Border('solid','black','1')};
reftbl.HAlign = 'center'; % Center align the table
%Style columns
groups(1) = TableColSpecGroup();
for ww = 1:8
specs(ww) = TableColSpec();
specs(ww).Style = { HAlign('Center'),FontSize('8pt') };
end
groups(1).ColSpecs = specs;
reftbl.ColSpecGroups = groups;
%style top row
topRow = reftbl.Children(1,1);
topRow.Style = {BackgroundColor('lightgrey'),Bold(true)};
More Answers (0)
See Also
Categories
Find more on Tables in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!