报表根据浏览器窗体自动缩放显示

背景需求

润乾报表可以在发布报表的JSP中通过scale这个标签属性控制报表的缩放显示比例,其属性取值为实数,该方式只能通过指定的具体缩放的比例值进行缩放,不能满足根据浏览器的窗体大小进行缩放的需求。

实现思路

在页面初次加载报表和改变窗体大小时,通过JS获取浏览器窗体的大小设定为报表所在区域的宽度大小。

 

实现方法:.在showReport.jsp中加上

<scriptlanguage="javascript">

function myResize() {

            var tab1 = document.getElementById("report1");

           tab1.style.width=document.body.clientWidth;

           }

window.οnlοad=myResize;

window.οnresize=myResize;

   </script>

 

先获取到报表所在区域的页面元素,再通过document.body.clientWidth获得到浏览器的宽度,将该宽度值用于改变报表所在区域的样式宽度。

有的时候会将我们的报表通过iframe嵌套到自己的应用里面。按照浏览器的宽度展现会显示不全,  将里面的tab1.style.width= document.body.clientWidth;

改为 tab1.style.width="100%"; 即可。

 

发布报表显示的效果:

缩小浏览器窗口显示的效果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要根据窗体大小自动缩放显示图像,你可以使用 `PIL` 库来加载图像,并使用 `tkinter` 中的 `Label` 组件来显示图像。然后,你可以使用 `bind` 方法来绑定窗体大小变化事件,以更新图像的大小和位置。 下面是一个示例程序,它可以在窗体大小变化时自动缩放显示图像: ```python import tkinter as tk from PIL import Image, ImageTk class App: def __init__(self, master): self.master = master self.master.title("自动缩放图像") self.master.geometry("400x400") self.image = Image.open("image.jpg") self.photo = ImageTk.PhotoImage(self.image) self.label = tk.Label(self.master, image=self.photo) self.label.pack(fill=tk.BOTH, expand=True) self.master.bind("<Configure>", self.on_resize) def on_resize(self, event): w, h = event.width, event.height self.image = self.image.resize((w, h)) self.photo = ImageTk.PhotoImage(self.image) self.label.config(image=self.photo) if __name__ == "__main__": root = tk.Tk() app = App(root) root.mainloop() ``` 在上面的程序中,我们首先创建了一个 `Image` 对象,然后使用它创建了一个 `PhotoImage` 对象,这个对象可以被 `Label` 组件用来显示图像。接着,我们创建了一个 `Label` 组件,并将 `PhotoImage` 对象作为参数传递给它。我们还使用了 `pack` 方法来将 `Label` 组件放置在窗口中心,并设置了 `fill` 和 `expand` 参数,以使其自动填充和扩展窗口。 最后,我们使用 `bind` 方法来绑定 `<Configure>` 事件,这个事件会在窗口大小变化时触发。我们在事件处理程序中,获取窗口的新大小,然后使用 `resize` 方法来缩放图像,使其适应新的窗口大小。接着,我们使用 `PhotoImage` 对象来创建一个新的 `Label` 对象,并将其作为参数传递给 `config` 方法,以更新图像的大小和位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值