MatLab Report Generator Word Wrap Issues
26 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Sameer Pujari
2022-11-28
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 个评论
Matthew Penning
2024-11-4,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)};
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!