JQplot 在 IE 上的打印问题

2023-12-14

我正在尝试打印我的图表,它可以通过 Firefox 和 Chrome 正确打印。

但如果我尝试用 IE 打印它,它会向我显示图表后面的图表画布 HTML 标签。正如你在图片中看到的那样。并且它还将图表轴文本放置在整个图表上..:(

我尝试了下面的解决方案,它说它解决了问题,但它对我来说没有:(

http://blog.muonlab.com/2010/06/02/getting-position-absolute-canvas-elements-to-print- Correctly-in-ie/

下面是问题的截图。

IE issue when jqplot is printed

HTML

    <!doctype html>
    <html lang="en" class="no-js master">
    <head>
    <!-- jQuery Flot Graph Widget.  exCanvas.js needed for IE  -->
 <link class="include" rel="stylesheet" type="text/css" href="/css/jquery.jqplot.css" />
 <!-- End additional plugins --><!--[if lt IE 9]><script language="javascript" type="text/javascript" src="/js/excanvas.min.js"></script><![endif]-->
 <script class="include" type="text/javascript" src="/js/jquery.jqplot.min.js"></script>
 <!-- Additional plugins go here -->
 <script class="include" type="text/javascript" src="/js/jqplot/jqplot.canvasTextRenderer.min.js"></script>
 <script class="include" type="text/javascript" src="/js/jqplot/jqplot.canvasAxisLabelRenderer.min.js"></script>
 <script class="include" type="text/javascript" src="/js/jqplot/jqplot.canvasAxisTickRenderer.min.js"></script>
 <script class="include" type="text/javascript" src="/js/jqplot/jqplot.categoryAxisRenderer.min.js"></script>
 <script class="include" type="text/javascript" src="/js/jqplot/jqplot.barRenderer.min.js"></script>
    </head>
    <body>
    <div id="mainCont"> </div>
    </body>
    </html>

JSON数据

{
"graphData":[["06-2011",20.0],["07-2011",0.0],["09-2011",0.0],["10-2011",0.0],["11-2011",100.0],["12-2011",0.0],["01-2012",0.0],["02-2012",0.0],["03-2012",0.0],["04-2012",0.0],["05-2012",0.0]], "yAxisLabel" : "Data per month", "graphTitle" : "12 month "}

JS code

$('.print', context).live("click", function(e) {
    printGraph(data.graphData, data.yAxisLabel, data.graphTitle);
}

function printGraph(graphData, yAxisLabel, graphTitle){
        var graphWrapper = $(document.createElement('div'));
        graphWrapper.attr('id', 'edd-graph').css('width','490px');
        var graphID = graphWrapper.attr('id');


        $('#mainCont').append(graphWrapper);

        var plot = $.jqplot(graphID, [graphData], {
          series:[{renderer:$.jqplot.BarRenderer}],
          seriesDefaults: {shadow: false, 
                           rendererOptions: {barWidth:20}
                          },
          seriesColors: [ "rgba(255, 81, 82, 1)" ],
          axes: {
            xaxis: {
              renderer: $.jqplot.CategoryAxisRenderer,
              label: '',
              labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
              tickRenderer: $.jqplot.CanvasAxisTickRenderer,
              max:90,
              min:10,
              tickOptions: {
                  angle: -45,
                  fontFamily: 'arial',
                  fontSize: '7.2pt'
              }
            },
            yaxis: {
              label: yAxisLabel,
              labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
              labelOptions: {
                  fontFamily: 'arial',
                  fontSize: '8.5pt'
              },
              tickOptions: {
                  fontFamily: 'arial',
                  fontSize: '7.2pt'
              }
            }
          },
          grid: {
            drawGridLines: true,        // wether to draw lines across the grid or not.
            gridLineColor: '#efefef',    // *Color of the grid lines.
            background: '#ffffff',      // CSS color spec for background color of grid.
            borderColor: '#999999',     // CSS color spec for border around grid.
            borderWidth: 0.2,           // pixel width of border around grid.
            shadow: false
            }

        });
    }

我找到了解决这个恼人问题的方法。原来是链接到 StackOverflow 上类似问题的另一个答案.

解决方案的直接链接在这里。

我已经验证过并且效果很好。以下是我构建的示例,用于展示实际的黑客行为。在适当的版本中打开示例IE(浏览器模式设置为 IE7 或 IE8 时为 7、8 或 9)然后尝试打印预览,您将看到差异:

  • 一个带有 hack 的示例。
  • 没有破解的示例。

PS:请毫不犹豫地给@user1065335 +1,我找到了它,干得好,伙计:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQplot 在 IE 上的打印问题 的相关文章

随机推荐

  • 如何将多个提交合并到另一个分支作为单个压缩提交?

    我有一个远程 Git 服务器 这是我想要执行的场景 对于每个错误 功能 我创建一个不同的 Git 分支 我继续使用非官方 Git 消息在该 Git 分支中提交代码 在顶级存储库中 我们必须使用官方 Git 消息针对一个错误进行一次提交 那么
  • 为什么 try except 块在 python 3.7 的 Visual Studio 代码中不起作用?

    实现 try except 块时 VS Code 无法识别指定的异常或与此相关的任何异常 前任 try x 1 0 except ZeroDivisionError print You cannot divide by zero 通过终端执
  • 从 contenteditable 填充并保存文本

    我正要开始写自己的富文本编辑器但需要知道是否可以填充文本区域以及如何保存 使用其中的数据 我目前正在使用 CKEditor 但它对于我想要的东西来说太笨重和太大 我将以此为基础 http jsfiddle net Kxmaf 6 我还需要对
  • 如何在自定义验证规则的 pass 函数中发送多个参数

    我正在实现一个自定义验证规则 该规则应该在自定义验证规则的传递函数中采用另一个带有属性和值的参数 当我们在编写自定义验证时实现 Rule 接口时 它不允许我们在 pass 函数中添加第三个参数 但我需要第三个参数 此外 如果有人能够指导我在
  • PLS-00428:此 SELECT 语句中需要 INTO 子句

    我想将 Rownum 存储为变量 而不是使用昂贵的 Join 我需要从 Select 语句中获取此值 因为 Rownum 在不同环境中会有所不同 因此它不能是代码中的文字字符串 对于上下文 此查询在 Oracle Siebel CRM 模式
  • 为什么 不起作用?

    我使用JSF 2 0 hibernate validator4 2 jarvalidation api jar tomcat和Eclipse I put Size min 3 message xxx ManagedBean 中的注释和
  • 构造类对象后执行代码

    我希望通过让每个子类在父类保存的列表中注册自己来创建给定类的所有子类的列表 即如下所示 class Monster object monsters list class Lochness Monster Monster monsters a
  • 如何使用knitr在代码块内的子图之间插入分页符

    我有以下 R arkdown 代码 output pdf document default keep tex yes header includes usepackage subfig r setup include FALSE knitr
  • Lambda 不将消息放入 dlq

    我只是想测试 Lambda 的 DLQ 但我不明白为什么消息没有放在上面 我的代码只做了一件事throw new Exception Test 第一个错误是可以理解的 我试图使用按钮同步执行此操作Test 之后我设置Kinesis并开始在其
  • 具有多个数组的 Foreach 循环[重复]

    这个问题在这里已经有答案了 这就是我要的 foreach POST something as something foreach POST example as example query mysql query INSERT INTO t
  • 如何用php组合两个具有相同索引和值的数组? [复制]

    这个问题在这里已经有答案了 我有 2 个数组 如下所示 array1 0 gt no invoice gt INV0001 product code gt 1111111 1 gt no invoice gt INV0001 product
  • 按父组和子项对父子记录进行排序

    我需要按特定的两个相关列对查询结果进行排序 我的桌子是 Row no Col 1 Col 2 Col 3 Col 4 1 1 X 1 5 2 2 Y 1 6 3 5 Z 2 7 4 6 T 2 0 5 7 T 3 0 6 6 W 2 0 中
  • 寻找 snprintf() 的 C 源代码

    我需要将 snprintf 移植到另一个不完全支持 GLibC 的平台 我正在 Glibc 2 14 源代码中寻找底层声明 我跟踪了许多函数调用 但卡在了 vfprintf 上 然后它似乎调用 IO vfprintf 但我找不到定义 宏可能
  • 具有当前用户 ID 的角色分配

    我使用 Azure AD 应用程序注册原则通过 Azure 资源管理器部署资源 以通过管道进行部署 在部署过程中 我需要为部署用户设置一些权限 以确保它有足够的权限 例如上传文件 由于我使用不同的原则 并且我没有在代码中管理这些原则 因此我
  • Visual Studio 2008 安装程序,自定义操作。断点未触发

    我有一个带有自定义操作项目的安装程序 我希望该操作在安装时触发 当我向事件日志写入内容时 该操作会触发 它运行得很好 但我确实需要调试该文件 因为操作非常复杂 所以我有以下安装程序类 namespace InstallerActions u
  • 使用 xpath 获取节点的第 N 个子节点

    我的示例输入 XML 是
  • 如何用编译时泛型验证替换运行时instanceof检查

    对于真正的 Java 泛型专家来说 有一个小难题 假设我有以下两个接口 interface Processor void process Foo foo interface Foo Processor getProcessor 例如 以下两
  • 对列进行排序并选择每组 pandas 数据框中的前 n 行

    我有一个像这样的数据框 mainid pidx pidy score 1 a b 2 1 a c 5 1 c a 7 1 c b 2 1 a e 8 2 x y 1 2 y z 3 2 z y 5 2 x w 12 2 x v 1 2 y
  • Intent不设置相机参数

    我正在打开相机应用程序作为我的应用程序的外部意图 我使用以下代码来调用相机 以下是我的条件 它应该打开前置摄像头 最高的图像质量 闪光灯必须打开 以下是我的代码 Intent action new Intent android media
  • JQplot 在 IE 上的打印问题

    我正在尝试打印我的图表 它可以通过 Firefox 和 Chrome 正确打印 但如果我尝试用 IE 打印它 它会向我显示图表后面的图表画布 HTML 标签 正如你在图片中看到的那样 并且它还将图表轴文本放置在整个图表上 我尝试了下面的解决