Kaydet (Commit) ad628045 authored tarafından Miklos Vajna's avatar Miklos Vajna

sw XHTML export: handle media type for OLE objects

Both native data and replacement graphic.

Change-Id: I2f89493e56e9d22a54aa3e4175d8b750c33d98f0
Reviewed-on: https://gerrit.libreoffice.org/50964Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
Tested-by: 's avatarJenkins <ci@libreoffice.org>
üst c774ad61
...@@ -379,10 +379,6 @@ DECLARE_HTMLEXPORT_ROUNDTRIP_TEST(testReqIfOleImg, "reqif-ole-img.xhtml") ...@@ -379,10 +379,6 @@ DECLARE_HTMLEXPORT_ROUNDTRIP_TEST(testReqIfOleImg, "reqif-ole-img.xhtml")
// This was only 1247, size was not set explicitly. // This was only 1247, size was not set explicitly.
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(aLogic.getWidth()), aSize.Width); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(aLogic.getWidth()), aSize.Width);
if (mbExported)
// The below is not yet working for export.
return;
// Check mime/media types. // Check mime/media types.
CPPUNIT_ASSERT_EQUAL(OUString("image/png"), getProperty<OUString>(xGraphic, "MimeType")); CPPUNIT_ASSERT_EQUAL(OUString("image/png"), getProperty<OUString>(xGraphic, "MimeType"));
...@@ -391,9 +387,13 @@ DECLARE_HTMLEXPORT_ROUNDTRIP_TEST(testReqIfOleImg, "reqif-ole-img.xhtml") ...@@ -391,9 +387,13 @@ DECLARE_HTMLEXPORT_ROUNDTRIP_TEST(testReqIfOleImg, "reqif-ole-img.xhtml")
auto aStreamName = getProperty<OUString>(xObject, "StreamName"); auto aStreamName = getProperty<OUString>(xObject, "StreamName");
uno::Reference<io::XStream> xStream uno::Reference<io::XStream> xStream
= xStorage->openStreamElement(aStreamName, embed::ElementModes::READ); = xStorage->openStreamElement(aStreamName, embed::ElementModes::READ);
// This was empty. // This was empty when either import or export handling was missing.
CPPUNIT_ASSERT_EQUAL(OUString("text/rtf"), getProperty<OUString>(xStream, "MediaType")); CPPUNIT_ASSERT_EQUAL(OUString("text/rtf"), getProperty<OUString>(xStream, "MediaType"));
if (mbExported)
// The below is not yet working for export.
return;
// Check alternate text (it was empty). // Check alternate text (it was empty).
CPPUNIT_ASSERT_EQUAL(OUString("OLE Object"), getProperty<OUString>(xObject, "Title").trim()); CPPUNIT_ASSERT_EQUAL(OUString("OLE Object"), getProperty<OUString>(xObject, "Title").trim());
} }
......
...@@ -1385,6 +1385,18 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrameFormat &rFrameFormat, ...@@ -1385,6 +1385,18 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrameFormat &rFrameFormat,
aHtml.attribute(aAttribute, sBuffer.makeStringAndClear().getStr()); aHtml.attribute(aAttribute, sBuffer.makeStringAndClear().getStr());
} }
if (nFrameOpts & HtmlFrmOpts::Replacement)
{
// Handle XHTML type attribute for OLE replacement images.
uno::Reference<beans::XPropertySet> xGraphic(rGraphic.GetXGraphic(), uno::UNO_QUERY);
if (xGraphic.is())
{
OUString aMimeType;
xGraphic->getPropertyValue("MimeType") >>= aMimeType;
aHtml.attribute(OOO_STRING_SVTOOLS_HTML_O_type, aMimeType.toUtf8());
}
}
// Events // Events
if (SfxItemState::SET == rItemSet.GetItemState(RES_FRMMACRO, true, &pItem)) if (SfxItemState::SET == rItemSet.GetItemState(RES_FRMMACRO, true, &pItem))
{ {
......
...@@ -1424,12 +1424,19 @@ Writer& OutHTML_FrameFormatOLENodeGrf( Writer& rWrt, const SwFrameFormat& rFrame ...@@ -1424,12 +1424,19 @@ Writer& OutHTML_FrameFormatOLENodeGrf( Writer& rWrt, const SwFrameFormat& rFrame
comphelper::OStorageHelper::CopyInputToOutput(xInStream->getInputStream(), comphelper::OStorageHelper::CopyInputToOutput(xInStream->getInputStream(),
xOutStream->getOutputStream()); xOutStream->getOutputStream());
aFileName = URIHelper::simpleNormalizedMakeRelative(rWrt.GetBaseURL(), aFileName); aFileName = URIHelper::simpleNormalizedMakeRelative(rWrt.GetBaseURL(), aFileName);
uno::Reference<beans::XPropertySet> xOutStreamProps(xInStream, uno::UNO_QUERY);
OUString aFileType;
if (xOutStreamProps.is())
xOutStreamProps->getPropertyValue("MediaType") >>= aFileType;
// Refer to this data. // Refer to this data.
if (rHTMLWrt.m_bLFPossible) if (rHTMLWrt.m_bLFPossible)
rHTMLWrt.OutNewLine(); rHTMLWrt.OutNewLine();
rWrt.Strm().WriteOString("<" + rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_object); rWrt.Strm().WriteOString("<" + rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_object);
rWrt.Strm().WriteOString(" data=\"" + aFileName.toUtf8() + "\">"); rWrt.Strm().WriteOString(" data=\"" + aFileName.toUtf8() + "\"");
if (!aFileType.isEmpty())
rWrt.Strm().WriteOString(" type=\"" + aFileType.toUtf8() + "\"");
rWrt.Strm().WriteOString(">");
bObjectOpened = true; bObjectOpened = true;
rHTMLWrt.m_bLFPossible = true; rHTMLWrt.m_bLFPossible = true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment