zoukankan      html  css  js  c++  java
  • leaflet打印地图easyPrint

    leaflet-easyPrint

    A simple leaflet plugin which adds an icon to print or export a map.

    Features

    • Supports resizing to predefined sizes (A4 Landscape & Portrait) as well as custom sizes
    • Supports saving to png, as well as printing
    • Compatible with both Leaflet v1+ and 0.7
    • Tested on Chrome, Firefox
      • Incompatible with IE & Edge due to dom-to-image dependency

    Check out the demo.

    Download

    You can either download this repo directly or install via NPM.

    npm install leaflet-easyprint
    

    Options

    You can pass a number of options to the plugin to control various settings.

    OptionTypeDefaultDescription
    title string 'Print map' Sets the text which appears as the tooltip of the print/export button
    position Leaflet control position 'topleft' Positions the print button
    sizeModes array Current Options available include CurrentA4PortraitA4Landscape or a custom size object
    defaultSizeTitles object {Current: 'Current Size', A4Landscape: 'A4 Landscape', A4Portrait: 'A4 Portrait'} button tooltips for the default page sizes
    exportOnly Boolean false If set to true the map is exported to a png file
    tileLayer Leaflet tile layer null A tile layer that you can wait for to draw (helpful when resizing)
    tileWait Integer 500 How long to wait for the tiles to draw (helpful when resizing)
    filename string 'map' Name of the file if export only option set to true
    hidden Boolean false Set to true if you don't want to display the toolbar. Instead you can create your own buttons or fire print events programmatically. You still need to call addTo(map) to set the leaflet map context.
    hideControlContainer Boolean true Hides the leaflet controls like the zoom buttons and the attribution on the print out.
    hideClasses array [] Hides classes on the print out. Use an array of strings as follow : ['div1', 'div2']
    customWindowTitle string Defaults to title of map window. A title for the print window which will get added the printed paper.
    spinnerBgColor string '#0DC5C1' A valid css colour for the spinner background color.
    customSpinnerClass string 'epLoader' A class for a custom css spinner to use while waiting for the print.

    Example

    L.easyPrint({
    	title: 'My awesome print button',
    	position: 'bottomright',
    	sizeModes: ['A4Portrait', 'A4Landscape']
    }).addTo(map);
    

    Methods / Using programmatically

    MethodOptionsDescription
    printMap(size, filename) Print size name, either 'CurrentSize', 'A4Portrait', 'A4Landscape', or the className of a custom size. And a filename Manually trigger a print operation
    var printPlugin = L.easyPrint({
    	hidden: true,
    	sizeModes: ['A4Portrait']
    }).addTo(map); 
    printPlugin.printMap('A4Portrait', 'MyFileName');
    

    Custom Print Sizes

    You can create additional print sizes by passing in some options. Width & Height are defined in pixels at 90DPI. THe css class ought to contain a background base64 encoded svg image.

    var a3Size = {
    	 2339,
    	height: 3308,
    	className: 'a3CssClass',
    	tooltip: 'A custom A3 size'
    }
    
    // in css 
    .easyPrintHolder .a3CssClass { 
      background-image: url(data:image/svg+xml;utf8;base64,PD9...go=);
    }
    

    Acknowledgements

    Huge hats off go to mourner and all the contributors to the leaflet.js project, it's an amazing piece of open source software!

    Also uses dom-to-image and FileSaver under the hood.

    https://github.com/rowanwins/leaflet-easyPrint

  • 相关阅读:
    hdu 1181 (搜索BFS,深搜DFS,并查集)
    [置顶] ZSTACK之OSAL_Nv非易失性存储解读上
    Android中利用Fragment显示为两屏
    WCF也可以做聊天程序
    Myeclipse 连接MSSqlServer
    Mysql和Oracle的卸载
    第 5堂作业
    hdu 3421 Max Sum II
    【求助】一个菜鸟java作业,帮忙看一下错在哪儿,题目是判断回文数
    netcat使用
  • 原文地址:https://www.cnblogs.com/2008nmj/p/14604762.html
Copyright © 2011-2022 走看看