From 192aa705585faaf23a0176420db750609dd07e76 Mon Sep 17 00:00:00 2001 From: juanf <juanf@public-docking-bs-0189.ethz.ch> Date: Thu, 26 Apr 2018 15:18:52 +0200 Subject: [PATCH] SSDM-5725 : Images showing but sizing is not always correct, ongoing work. --- .../docxbuilder-source/DOCXBuilder.java | 3 +-- .../exports-api/exports-api.py | 14 ++++++++++++++ .../exports-api/lib/docxbuilder.jar | Bin 5639 -> 2895 bytes 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/docxbuilder-source/DOCXBuilder.java b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/docxbuilder-source/DOCXBuilder.java index 4d1175bd742..91a78b2e77b 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/docxbuilder-source/DOCXBuilder.java +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/docxbuilder-source/DOCXBuilder.java @@ -21,8 +21,7 @@ public class DOCXBuilder docx.addHeader("MetaA"); docx.addProperty("PropertyA", "ValueA"); docx.addProperty("PropertyB", "ValueB"); - docx.addProperty("PropertyC", - "<p>I am normal</p><p style=\"color:red;\">I am red</p><p style=\"color:blue;\">I am blue</p><p style=\"font-size:36px;\">I am big</p>"); + docx.addProperty("PropertyC", "<p>I am normal</p><p style=\"color:red;\">I am red</p><p style=\"color:blue;\">I am blue</p><p style=\"font-size:36px;\">I am big</p>"); FileOutputStream out = new FileOutputStream(new File("wordFromHTML.docx")); out.write(docx.getDocBytes()); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/exports-api.py b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/exports-api.py index 28e199de7ec..967ac293879 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/exports-api.py +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/exports-api.py @@ -72,6 +72,8 @@ from ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions import SampleT from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.search import DataSetTypeSearchCriteria; from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.fetchoptions import DataSetTypeFetchOptions; +from ch.ethz.sis.openbis.generic.asapi.v3.dto.property import DataType + #V3 API - Files from ch.ethz.sis.openbis.generic.dssapi.v3 import IDataStoreServerApi; from ch.ethz.sis.openbis.generic.dssapi.v3.dto.datasetfile.search import DataSetFileSearchCriteria; @@ -103,6 +105,12 @@ from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset import DataSet #DOCX from ch.ethz.sis import DOCXBuilder +#Images export for word +from org.jsoup import Jsoup; +from org.jsoup.nodes import Document; +from org.jsoup.nodes import Element; +from org.jsoup.select import Elements; + class MLStripper(HTMLParser): def __init__(self): self.reset() @@ -489,6 +497,12 @@ def getDOCX(entityObj, v3, sessionToken, isHTML): propertyType = propertyAssigment.getPropertyType(); if propertyType.getCode() in properties: propertyValue = properties[propertyType.getCode()]; + if propertyType.getDataType() is DataType.MULTILINE_VARCHAR: + doc = Jsoup.parse(propertyValue); + imageElements = doc.select("img"); + for imageElement in imageElements: + imageSrc = imageElement.attr("src"); + propertyValue = propertyValue.replace(imageSrc, DataStoreServer.getConfigParameters().getServerURL() + imageSrc + "?sessionID=" + sessionToken); if propertyValue != u"\uFFFD(undefined)": docxBuilder.addProperty(propertyType.getLabel(), propertyValue); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/lib/docxbuilder.jar b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/exports-api/lib/docxbuilder.jar index b266e3fbb5d15969c991e83503fe1f60a39c7198..1415afffeba2afa18eb612141f6610294b005062 100644 GIT binary patch delta 2696 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 Clo>Yw literal 5639 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 -- GitLab