Bug 100926 - PPTX: Table with rotated text rendering wrong
Summary: PPTX: Table with rotated text rendering wrong
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
5.1.4.2 release
Hardware: All All
: medium normal
Assignee: Tamás Zolnai
URL:
Whiteboard: target:5.4.0
Keywords: filter:pptx
Depends on:
Blocks:
 
Reported: 2016-07-15 08:16 UTC by Christian
Modified: 2023-12-06 13:37 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Testcase PPTX (48.57 KB, application/vnd.openxmlformats-officedocument.presentationml.presentation)
2016-07-15 08:16 UTC, Christian
Details
PowerPoint rendering (14.89 KB, image/png)
2016-07-15 08:16 UTC, Christian
Details
LibreOffice rendering (5.62 KB, image/png)
2016-07-15 08:17 UTC, Christian
Details
Testcase compared MSO LO-before_fix LO-fixed_with_commit LO-with_commit_automatic_font_color (49.52 KB, image/jpeg)
2017-04-17 11:09 UTC, Timur
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian 2016-07-15 08:16:21 UTC
Created attachment 126217 [details]
Testcase PPTX

Opening a PPTX with a slide containing a table with 90 degree rotated text renders wrong in LO. See provided screenshots of the testcase.pptx
Comment 1 Christian 2016-07-15 08:16:53 UTC
Created attachment 126218 [details]
PowerPoint rendering
Comment 2 Christian 2016-07-15 08:17:17 UTC
Created attachment 126219 [details]
LibreOffice rendering
Comment 3 Buovjaga 2016-07-18 06:32:13 UTC
Confirmed.

Arch Linux 64-bit, KDE Plasma 5
Version: 5.3.0.0.alpha0+
Build ID: ab1b351840160655a9f0caedbb35e9fdf203c5a0
CPU Threads: 8; OS Version: Linux 4.6; UI Render: default; 
Locale: fi-FI (fi_FI.UTF-8); Calc: group
Built on July 16th 2016
Comment 4 Timur 2017-01-17 16:03:15 UTC
(In reply to Buovjaga from comment #3)
> Confirmed.
Confirmed what? And general "rendering wrong" should not be confirmed until it's clear what exactly is wrong. 
Rotated text support should be Bug 104835. Bug 33278 is related. PPTX is not relevant here. 
This can only be Fileopen row height problem from PPTX.
Comment 5 Buovjaga 2017-01-17 16:34:58 UTC
(In reply to Timur from comment #4)
> (In reply to Buovjaga from comment #3)
> > Confirmed.
> Confirmed what? And general "rendering wrong" should not be confirmed until
> it's clear what exactly is wrong. 
> Rotated text support should be Bug 104835. Bug 33278 is related. PPTX is not
> relevant here. 
> This can only be Fileopen row height problem from PPTX.

Confirmed it is like in the screenshots, what is unclear about that?

If confirming exactly what is wrong becomes the requirement for confirming reports, I'll stop doing QA.

So apparently it was a case of missing feature, let's close as dupe then.

*** This bug has been marked as a duplicate of bug 104835 ***
Comment 6 Christian 2017-02-04 13:08:28 UTC
Well, to my understanding this bug has a dependency on bug 104835, rather than being a duplicate. 
Is that a difference? Yes, even when the vertical rendering is supported (104835), it will not be necessarily imported correctly from the PPTX format, will it ?
Comment 7 Buovjaga 2017-02-04 17:14:59 UTC
(In reply to Christian from comment #6)
> Well, to my understanding this bug has a dependency on bug 104835, rather
> than being a duplicate. 
> Is that a difference? Yes, even when the vertical rendering is supported
> (104835), it will not be necessarily imported correctly from the PPTX
> format, will it ?

Then you could comment to bug 104835 "whoever implements this, please test PPTX import as well".
Comment 8 Volga 2017-02-16 01:16:45 UTC Comment hidden (obsolete)
Comment 9 Volga 2017-02-16 12:54:14 UTC
(In reply to Volga from comment #8)
> This is not related to bug 104835 because this direction is seperate from
> left-to-right (vertical) direction as in MS Office 2010, but this is not
> supported in LibreOffice. Hmere is an example for this:
> http://www.mgzwz.com/post-383.html

As this page you can see MS Office provide seperate option for this in a single button for text direction.
Comment 10 Commit Notification 2017-04-15 14:10:32 UTC
Tamás Zolnai committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=2436cf17304f25c7d34da52a321d6da0e9011d19

tdf#100926: PPTX import of table with rotated text

It will be available in 5.4.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 11 Tamás Zolnai 2017-04-16 14:51:03 UTC
Now text rotation is implemented for Impress cells and LO can import it from PPTX:
https://cgit.freedesktop.org/libreoffice/core/log/?qt=range&q=727bf1bdd516dc826620ea9254de1b0b76805907...15ac3f9f4dc65fc0c6020284064e3725956f5d0a
Comment 12 Timur 2017-04-17 11:09:23 UTC
Created attachment 132633 [details]
Testcase compared MSO LO-before_fix LO-fixed_with_commit LO-with_commit_automatic_font_color

I couldn't verify this. Like test is rotated but there are some other problems. It's not font color, it's set to automatic in last image. 
Can you please explain? 
Also, this could be added in https://wiki.documentfoundation.org/ReleaseNotes/5.4#Impress.
Comment 13 Timur 2017-04-17 11:10:14 UTC
Tested with libo-master~2017-04-16_23.49.21_LibreOfficeDev_5.4.0.0.alpha0_Win_x86.
Comment 14 Buovjaga 2017-04-17 11:16:05 UTC
Tamás: see previous comments
Comment 15 Tamás Zolnai 2017-04-17 11:30:44 UTC
(In reply to Timur from comment #12)
> Created attachment 132633 [details]
> Testcase compared MSO LO-before_fix LO-fixed_with_commit
> LO-with_commit_automatic_font_color
> 
> I couldn't verify this. Like test is rotated but there are some other
> problems. It's not font color, it's set to automatic in last image. 
> Can you please explain? 
> Also, this could be added in
> https://wiki.documentfoundation.org/ReleaseNotes/5.4#Impress.

Hi Timur,

I experienced the same problem on recent master. Before I updated my patches on top of master it was working well. It's a recent regression of font rendering which makes also Impress tabel's rotated text rendering broken.
I created a separate bug report for this regression:
https://bugs.documentfoundation.org/show_bug.cgi?id=107205
As you can see this bug report is about text rotation of Calc cells, because it's a general issue affecting all kind of rotated text. I added a bibisectRequest to this bug. When we get the bad commit, can fix it easily I hope, and this will make Impress table text rotation working.
Comment 16 Timur 2017-04-17 11:56:48 UTC
OK, I thought so. 
Sorry for my ignorance, but how so we use this "text rotation is implemented for Impress cells"? Where is that option? Not so obvious.
Comment 17 Tamás Zolnai 2017-04-17 12:21:21 UTC
(In reply to Timur from comment #16)
> OK, I thought so. 
> Sorry for my ignorance, but how so we use this "text rotation is implemented
> for Impress cells"? Where is that option? Not so obvious.

By now it is not available on the GUI. It is implemented only for MSO compatibility. You can import it from PPTX and resave it to ODP. As the bug report is also about PPTX filter.
I was thinking in adding it to the GUI, but I can't find a good place where to add it to. There is no a tab page on Table Properties dialog which is about the text flow.
Comment 18 Volga 2017-06-23 11:26:03 UTC Comment hidden (obsolete)
Comment 19 Volga 2017-06-23 11:41:27 UTC
(In reply to Tamás Zolnai from comment #11)
> Now text rotation is implemented for Impress cells and LO can import it from
> PPTX:
> https://cgit.freedesktop.org/libreoffice/core/log/
> ?qt=range&q=727bf1bdd516dc826620ea9254de1b0b76805907...
> 15ac3f9f4dc65fc0c6020284064e3725956f5d0a

I think (In reply to Tamás Zolnai from comment #17)
> (In reply to Timur from comment #16)
> > OK, I thought so. 
> > Sorry for my ignorance, but how so we use this "text rotation is implemented
> > for Impress cells"? Where is that option? Not so obvious.
> 
> By now it is not available on the GUI. It is implemented only for MSO
> compatibility. You can import it from PPTX and resave it to ODP. As the bug
> report is also about PPTX filter.
> I was thinking in adding it to the GUI, but I can't find a good place where
> to add it to. There is no a tab page on Table Properties dialog which is
> about the text flow.

I have already made a concept in bug 104912.
Comment 20 Volga 2017-07-08 04:40:11 UTC
Tamás, can you fix bug 104353 in this way?
Comment 21 Tamás Zolnai 2017-07-08 10:16:03 UTC
(In reply to Volga from comment #20)
> Tamás, can you fix bug 104353 in this way?

See:
https://bugs.documentfoundation.org/show_bug.cgi?id=104353#c11
Comment 22 Timur 2023-03-31 07:16:12 UTC
There was also a commit
https://git.libreoffice.org/core/+/653b53287ca09a9ffe3f5ce0242919e719c1086c%5E%21
commit 653b53287ca09a9ffe3f5ce0242919e719c1086c	[log]
author	Tamás Zolnai <tamas.zolnai@collabora.com>	Tue Nov 26 2019
Better handling of text rotation attribute.

We need to have a separate attribute for vertical option and
for rotation option. So rotation won't be lost by setting
the text direction.
So I added a rotation member variable and use that as an orthogonal
variable to the vertical text direction.
A follow-up fix for tdf#100926. The problem was that the rotation
was imported / exported correctly from/in ODP, but the text was not
displayed as rotated.


But it regressed later in 7.3 with:
https://git.libreoffice.org/core/+/eec42f0dbcc79a4c9f456ce97fa1066b8031ea28
commit eec42f0dbcc79a4c9f456ce97fa1066b8031ea28	[log]
author	Noel Grandin <noelgrandin@gmail.com>	Sun Aug 15 17:35:58 2021
pass OutlinerParaObject around by value

since it uses o3tl::cow_wrapper, so it is really just a wrapper
around a pointer, no point in allocating it on the heap

Remove assert in SdrText::SetOutlinerParaObject, which was
bogus anyhow, because it was comparing pointers, not deep equality.
And since we are now being more efficient and avoiding
copying of the internal data in OutlinerParaObject, we hit
this assert.


I'll create a See Also ticket.