我一直在尝试获取我们使用 jasperreports 构建并通过可视化.js 呈现的报告,以便在页面上水平居中(无论页面或浏览器尺寸如何)。
我目前的代码是:
<!DOCTYPE html>
<html>
<head>
<script src="https://mobiledemo.jaspersoft.com/jasperserver-pro/client/visualize.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.5.1/mootools-core-full-compat.min.js"></script>
<script type='text/javascript'>
window.addEvent('load', function() {
visualize({
auth: {
name: "joeuser",
password: "joeuser",
organization: "organization_1"
}
}, function(v) {
//render dashboard from provided resource
v("#container").report({
resource: "/public/Samples/Reports/06g.ProfitDetailReport",
scale: "container",
error: handleError
});
//show error
function handleError(err) {
alert(err.message);
}
});
});
</script>
<style>
html,
body {
height: 100%;
width: 100%;
margin: 0 auto;
background-color: #000000;
}
#container {
display: block;
width: 100%;
height: 100%;
border: 0px;
margin: 0 auto;
background: blue;
}
</style>
</head>
<body>
<div id="container"></div>
</body>
</html>
以下小提琴应显示当前问题: https ://jsfiddle.net/g207h68x/
如果您调整结果窗口的大小,您可以看到随着报告的缩放(通过渲染函数中的 scale:"container" 条目,它会粘在屏幕的左侧。
我不能为每个仪表板使用任何特定尺寸,<div>
因为每个仪表板都有自己独特的尺寸,具体取决于报表或仪表板中显示的内容(有些可能是 300x500,其他可能高达 1920x1080)。
我试图包装<div>
似乎没有帮助的内部弹性框..除非我没有正确地做到这一点(完全有可能)。
另一种方法是尝试将 div 嵌套在父 div 中,但这似乎也不起作用(同样,我可能也没有正确完成它)。
我也尝试制作<div>
一个内联块,但这似乎完全放弃了可视化.js的缩放,因为它读取容器尺寸(我认为)。
我查看了可视化.js 文档,但页面上的动态大小和间距实际上并不多。
我什至试图把它<div>
放在一个表格中......但这似乎没有帮助,因为表格单元格只会跨越页面或容器。
我确实在某处读到过 JQuery UI 可用于进一步操作 Visualize.js 正在做什么,但我找不到任何示例或参考资料说明记录的位置。
如果有人知道如何将此类内容居中,我将非常感谢您的意见。
先感谢您。