Byte Array image with JSON or XML - LINQ

Hello,
we are using LINQ report engine, to produce reports. We are currently passing Java objects. For new projects we would like to use a JSON or XML object. With a JSON or XML object is it possible to insert a byteArray (base 64), or pass the colors in hexadecimal?

@Blegork Sure, you can use base64 byte array. For example see the attached input and output documents and the code that uses JSON data source with base64 image representation:

String json = "{ \"Photo\": \"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\" }";
ByteArrayInputStream jsonStream = new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8));

Document doc = new Document("C:\\Temp\\in.docx");

ReportingEngine engine = new ReportingEngine();
JsonDataSource jsonDataSource = new JsonDataSource(jsonStream);

engine.buildReport(doc, jsonDataSource, "mydata");

doc.save("C:\\Temp\\out.docx");

in.docx (20.3 KB)
out.docx (35.3 KB)

in JSON data source you can pass collow either by color name, like black, red etc, or by passing integer ARGB color value.

@alexey.noskov

Thanks for the reply.
Could you give me an example of json with ARGB? color1 works, but color2 doesn’t work

{
	color1:"red",
	color2: "#FFD2691E"
}

@Blegork For red argb intejet value should be -65536, your json should look like the following:

{
	color1:"red",
	color2: -65536
}

To get this value from java.awt.Color, you can use one of the following approaches:

Color color = Color.red;

// Calculate
int argb = (color.getAlpha() & 0xff) << 24 | (color.getRed() & 0xff)<< 16 | (color.getGreen() & 0xff)<< 8 | (color.getBlue() & 0xff);
System.out.println(argb);
        
// Use built-in method.
System.out.println(color.getRGB());

@alexey.noskov

Thanks but it still doesn’t work
Thanks but it still doesn’t work. It gives me an error

Exception in thread "main" java.lang.IllegalStateException: Tag 'backColor' is not well-formed. An expression providing color data should return an integer, a string, or an instance of type 'class java.awt.Color'.
at com.aspose.words.internal.zzZhc.zzWuo (Unknown Source)
at com.aspose.words.internal.zzZhc.zzWuo (Unknown Source)
at com.aspose.words.internal.zzWMT.zzWuo (Unknown Source)
at com.aspose.words.internal.zzWMT.zzWuo (Unknown Source)
at com.aspose.words.ReportingEngine.buildReport (Unknown Source)
at com.aspose.words.ReportingEngine.buildReport (Unknown Source)
at com.armundia.report.ReportMain.main (ReportMain.java:23)

TestColor.zip (11.8 KB)

@Blegork I have managed to reproduce the problem. I will consult with the developer responsible for LINQ Reporting engine and provide you more information.

@Blegork The problem occurs because integer from JSON is parsed as nullable long, to work the problem arroun you can add casting in your template. Modify it as:

<<backColor [(int)color1]>>text with red background <</backColor>>

I have created an issue WORDSNET-23141 for this problem, once it is fixed the casting will not be required.
Alsoo I have create a feature request WORDSNET-23142 to allow setting color using color codes like “#FF0000”. We will let you know once these issues are resolved.

The issues you have found earlier (filed as WORDSNET-23142) have been fixed in this Aspose.Words for Java 22.1 update.

The issues you have found earlier (filed as WORDSNET-23141) have been fixed in this Aspose.Words for Java 22.11 update also available on Maven.