无法使用jquery打印div中的背景图像

时间:2015-12-09 09:55:59

标签: javascript jquery html svg devexpress

function PrintSVG() {

    var container = $('#MainDesignerPanelContainer');
    var width = parseFloat(svg.getAttribute("width"));
    var height = parseFloat(svg.getAttribute("height"));
    var printWindow = window.open('', 'MainDesignerPanelContainer',
            'width=' + width + ',height=' + height);
    printWindow.document.write($(container).html());
    $(printWindow.document).find('#panningDiv').remove();

    printWindow.document.close();
    printWindow.print();
    printWindow.close();
};

我只能在打印SVG Elements时打印背景图像。 你能告诉我我在这里做的错误吗

2 个答案:

答案 0 :(得分:0)

我认为这是一个浏览器设置是否打印背景图像,在Javascript中你无能为力。

答案 1 :(得分:0)

您可以这样做:

function PrintSVG() {
  var container = $('#MainDesignerPanelContainer');
  var html = container.html();  // <------------cache the html 
  var width = parseFloat(svg.getAttribute("width"));
  var height = parseFloat(svg.getAttribute("height"));
  var printWindow = window.open('', 'MainDesignerPanelContainer',
    'width=' + width + ',height=' + height);
  var imgSrc = container.css('background-image'); // <----get the imgSrc
  html.append($('<img>', {
    src: imgSrc,
    style: "position:absolute; z-index:-1;"
  })); // Add it to the existing html

  printWindow.document.write(html); // <------write the html

  $(printWindow.document).find('#panningDiv').remove();

  printWindow.document.close();
  printWindow.print();
  printWindow.close();
};