https://bugs.documentfoundation.org/show_bug.cgi?id=97083

--- Comment #11 from [email protected] ---
Hi,

This is Mario Vukelic from think-cell support. Thanks to Brent for bringing
this up.
We are very interested in LibreOffice displaying think-cell charts correctly,
so please let us know if we can help. We have made a note in our tracker as
#11739.
As Brent noted in comment #8, a fully functional think-cell trial version is
available at https://www.think-cell.com/trial or email us at
support(at)think-cell(dot)com.


A few fundamentals before I explain the issue:

* think-cell is a COM add-in for PowerPoint and Excel

* think-cell creates all its charts from native PowerPoint shapes and objects,
using the PowerPoint COM API. This means that PowerPoint users who do not have
think-cell installed can not only view but also edit the charts with plain
PowerPoint. The think-cell elements then appear as regular PowerPoint shapes
such as textboxes, PowerPoint shapes like rectangles or lines, and Microsoft
Graph objects.

* As far as LibreOffice is compatible with PowerPoint files, a chart created
with think-cell should therefore display the same in LibreOffice as a chart
created manually in PowerPoint by using the same objects via the UI. 

* The body of most think-cell charts (all except think-cell's Mekko and Gantt
chart types) is created with a Microsoft Graph object. To insert such a Graph
object with plain PowerPoint 2007 and later, click PowerPoint > Insert > Text >
Object > Microsoft Graph Chart. Graph was Office's standard chart engine up to
Office 2003 and is still included in current Office versions, incl. 2016. When
you doubleclick such a Graph object in plain PowerPoint 2007 and later, it asks
the "Do you want to convert this chart?" question, noted by raal in comment #6.
This is explained in think-cell KB0084 at
https://www.think-cell.com/en/support/kb/0084.shtml.
(The current think-cell v7 still uses Graph because it is the only editable
Office chart object that works in all PowerPoint versions, Office 2003 and
earlier as well as Office 2007 and later.)

* think-cell creates labels inside the Graph object where possible. In the
examples posted in this bug report these are the labels that show the correct
content in LibreOffice (though slightly off position).

* Using VBA, you can check if an object was created by think-cell as explained
in think-cell KB0073, https://www.think-cell.com/en/support/kb/0073.shtml


*** The issue observed by Brent ***

Labels that think-cell cannot create inside Graph (typically due to limitations
in Graph) are created as standalone PowerPoint textboxes containing OOXML <fld>
fields. Plain PowerPoint itself uses <fld> fields, e.g., for auto-updating
dates in the slide footer. To create an <fld> field with PowerPoint:

1. Go to tab Insert, then click Text > Header & Footer.
2. In the Header & Footer dialog window, check "Date and time", choose "Update
automatically". To make the issue easy to spot, choose a format using day and
month names (not numbers).
3. Confirm with "Apply to All".
4. A footer with the date in the chosen format will appear on the slides.

I have attached an example file, created with PowerPoint 2013 (15.0.4787.1000)
and think-cell 7 (curent build 24146): "LibreOffice #97083 - think-cell
example.pptx". It contains:
1. A chart created by think-cell, plus a screenshot of how it looks in
PowerPoint (even if think-cell is not installed). 
2. An <fld> date field as created by PowerPoint for its footer, plus a
screenshot of how it looks in PowerPoint.

In the example file, the date format chosen for the field in PowerPoint uses
day and month names.

It appears that the tested LibreOffice Version 5.0.4.2 (Build ID:
2b9802c1994aa0b7dc6079e128979269cf95bc78), does not correctly display <fld>
fields, as all fields - including the one created by plain PowerPoint - show
the date in numbers, instead of the text that should replace it. 

<fld> fields are described in section 21.1.2.2.4 of the Office Open XML File
Formats specification, Part 1, 4th edition (at ECMA-376 at
http://www.ecma-international.org/publications/standards/Ecma-376.htm), quote:

21.1.2.2.4 fld (Text Field)
----------------------------------------------------------------
This element specifies a text field which contains generated text that the
application should update periodically. Each piece of text when it is generated
is given a unique identification number that is used to refer to a specific
field. At the time of creation the text field indicates the kind of text that
should be used to update this field. This update type is used so that all
applications that did not create this text field can still know what kind of
text it should be updated with. Thus the new application can then attach an
update type to the text field id for continual updating.

[Example: Consider a slide within a presentation that needs to have the slide
number placed on the slide. The following DrawingML can be used to describe
such a situation.

<p:txBody>
            <a:bodyPr/>
                        <a:lstStyle/>
                        <a:p>
                                   <a:fld
id="{424CEEAC-8F67-4238-9622-1B74DC6E8318}" type="slidenum">
                                   <a:rPr lang="en-US" smtClean="0"/>
                                   <a:pPr/>
                                   <a:t>3</a:t>
                        </a:fld>
                        <a:endParaRPr lang="en-US"/>
            </a:p>
</p:txBody>

end example]

Attributes:

id (Field ID):
Specifies the unique to this document, host specified token that is used to
identify the field. This token is generated when the text field is created and
persists in the file as the same token until the text field is removed. Any
application should check the document for conflicting tokens before assigning a
new token to a text field. The possible values for this attribute are defined
by the ST_Guid simple type (ยง22.9.2.4).

type (Field Type):
Specifies the type of text that should be used to update this text field. This
is used to inform the rendering application what text it should use to update
this text field. There are no specific syntax restrictions placed on this
attribute. The generating application can use it to represent any text that
should be updated before rendering the presentation.

Reserved Values: [are given in the OOXML spec, please see there]


------------[ End of quote from 21.1.2.2.4 fld (Text
Field)]--------------------

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to