Hello,
I would like to download an image of my diagram.
It works so far but by adding a background to my image, this one doesnt have the same size as my diagram
I tried to use different size, scale ect using makeImageData
Hello,
I would like to download an image of my diagram.
It works so far but by adding a background to my image, this one doesnt have the same size as my diagram
I tried to use different size, scale ect using makeImageData
Is the background image something that you are showing to the user in the diagram? If so, how are you doing that?
Hi, no it is not. The diagram has no background (transparency)
Here is the part where I add the background
let img = diagram.makeImageData({
background: '#ede0dd'
});
Which version of GoJS are you actually using? I thought we had fixed a bug like that, but it was a while ago.
I am using 2.0.8 version, should I update it ?
Yes, see if it is already fixed.
Well, it is still not working.
Should I add something as scale, size ?
Are you sure you are using version 2.1.20? Or another recent version? Evaluate “go.Diagram.version” in the debugger.
I just tried this in the Minimal sample app:
function test() {
var img = myDiagram.makeImage({
background: '#ede0dd'
});
document.body.appendChild(img);
}
and it did exactly as I think you would expect.
Yes I am sure I am using the version 2.1.20.
This is the result
If I change the zoom i have something like this
It seems to work correctly with size only if the zoom > 80%
That call is only supposed to return an image of what is in the viewport.
Specify other options such as scale to get the whole diagram.
Please read GoJS Making Images -- Northwoods Software, or if you can use SVG, GoJS Making SVG -- Northwoods Software
I still don’t know exactly what you want, and I know it’s hard to explain. Here’s another example:
var vb = myDiagram.viewportBounds;
var s = myDiagram.scale;
var img = myDiagram.makeImage({
background: '#ede0dd',
scale: s,
position: vb.position,
size: new go.Size(vb.width*s, vb.height*s)
});
document.body.appendChild(img);