【问题标题】:Ext.Ux.Printer Print Image doesn't workExt.Ux.Printer 打印图像不起作用
【发布时间】:2013-02-17 15:10:34
【问题描述】:

我已经下载了https://github.com/edspencer/Ext.ux.Printer
导入 Printer.js 和 Base.js

在 Base.Js 中我添加了图像渲染代码:

 Ext.ux.Printer.imageRenderer = Ext.extend(Ext.ux.Printer.BaseRenderer, {
 generateBody: function(image) {
   return String.format("<div class='image-print'>{0}</div>", image.body.dom.innerHTML);
 }
});

Ext.ux.Printer.registerRenderer('image', Ext.ux.Printer.imageRenderer);

这里是显示ID为displayimage的图像的地方

items: [Printtoolbar,{
xtype : 'image',
id : 'displayimage',
style: {
'display': 'block',
'margin': 'auto'
},
width: 320,
height: 240,
}]

按下打印按钮时打印图像

var PrintImgBtn = Ext.getCmp('btnPrint');
    PrintImgBtn.on('click', function(){
        printImg = Ext.getCmp('displayimage');  
        Ext.ux.Printer.print(printImg);

不幸的是,当我按下打印按钮时,什么也没有发生。

【问题讨论】:

    标签: javascript ajax extjs printing extjs4


    【解决方案1】:

    您可以打开一个窗口并打印它。在您的按钮处理程序中:

    ...
    handler: function() {
        var img = Ext.getCmp('displayimage');
        if(img) {
            var html = img.container.dom.innerHTML;
            var win = window.open();
            win.document.write(html);
            win.print();
            win.close();
        }
    }
    ...
    

    打印示例:http://jsfiddle.net/wXfFN/3/

    【讨论】:

    • 没有弹出窗口和打印图像的更好方法吗?
    • @C.Y 不,它是一个javascript。 Ext.ux.Printer 做同样的事情(参见 Ext.ux.Printer.BaseRenderer 中的函数 print())。
    【解决方案2】:

    如果您使用的是 Iframe 'Ext.ux.iFrame',那么您可以使用类似的东西

    var iframe = this.down('iframe');
    iframe.getFrame().contentWindow.print(); 
    

    如果你想在 iframe 内容中添加一些额外的内容

     var iframe = this.down('iframe');
     var contentWindow = iframe.getFrame().contentWindow;
     var iFrameNewContent = "<div>This will be helpfull</div>" + contentWindow.document.body.innerHTML;
    
    // set iFrameNewContent to content window
    contentWindow.document.body.innerHTML = iFrameNewContent;
    contentWindow.print();
    

    优点是所有应用于 iframe 内容的样式,可以在打印文档中看到

    还要检查这个链接是否有用 https://druckit.wordpress.com/2014/02/15/ext-js-4-printing-the-contents-of-an-ext-panel/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-12
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多