标签: html2canvas

html和Svg到Canvas javascript

<div id="Contents">
<div style="float:left;margin-left:10px;">
<svg></svg>
</div>
<div style="float:left;margin-left:10px;">
<svg></svg>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的HTML代码.我想转换它的画布图像.

html2canvas($("#Contents"), {
  onrendered: function(canvas) {
   window.open(canvas.toDataURL());

  }
});
Run Code Online (Sandbox Code Playgroud)

我使用html2canvas插件将其转换为图像,但它不显示svg.我解决了转换svg tp画布但现在html2canvas无法正常工作

  var $to=$("#MainContents").clone();

            $($to).children(".box").each(function() {
    var svg = ResizeArray[$(this).children(".box-content").children().attr("new-id")-1].svg();
            var Thiscanvas = document.createElement("canvas");
            Thiscanvas.setAttribute("style", "height:" + 100 + "px;width:" + 100+ "px;");

            canvg(Thiscanvas, svg);

            $(this).append(Thiscanvas);

        });
        html2canvas($($to), {
      onrendered: function(canvasq) {
        var w=window.open(canvasq.toDataURL());
        w.print();
      }
    });
Run Code Online (Sandbox Code Playgroud)

我可以将svg转换为canvas但html2canvas函数无效.

html javascript svg canvas html2canvas

11
推荐指数
2
解决办法
2万
查看次数

在Html2Canvas中渲染时,页面将滚动到顶部

我正在使用html2canvas库,使用以下代码:

html2canvas(document.body, {
   onrendered: function(canvas) {
      document.body.appendChild(canvas);
   }
});
Run Code Online (Sandbox Code Playgroud)

onrendered被触发时,页面会自动滚动到顶部.无论如何我们可以保持我们的滚动位置而不是自动进入页面顶部?

javascript css canvas html2canvas

11
推荐指数
1
解决办法
4796
查看次数

JSPDF - addHTML()多个画布页面

我注意到已经有一个版本"addHTML()现在可以将画布分成多个页面",可以通过以下链接找到:https://github.com/MrRio/jsPDF/releases/tag/v1.0.138.

我可以知道它是如何工作的吗?在我的情况下,我只是在点击"另存为pdf"按钮时尝试了它,它只渲染单个页面而不是多个页面(有时没有工作,我假设因为内容太长而无法生成为pdf) .

如果这个案例有一些例子,我将不胜感激.谢谢!

附上我的代码如下:

var pdf = new jsPDF('p', 'pt', 'a4');

pdf.addHTML($(".pdf-wrapper"), function () {
    var string = pdf.output('datauristring');
    pdf.save("test.pdf");
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery canvas html2canvas jspdf

11
推荐指数
3
解决办法
5万
查看次数

将长html导入分割PDF

我的情况是:

单击按钮时,将html上的数据导入PDF文件.

由于此PDF必须具有一些复杂的必需样式,因此我的第一步是使用html2canvas.js将此页面转换为图像,然后使用jsPDF.js将此图像导入PDF

当数据太大时,必须拆分PDF以保存所有数据,这样做,所以我在这里使用了代码:https://github.com/MrRio/jsPDF/pull/397

我的问题是:在Firefox上,第2页或第3页上的PDF分割页面无法显示,它们完全是空白的.但在第1页它很好.(这是为firefox)

我测试了其他浏览器它们都很好.有人可以说明如何解决这个问题吗?

这是我的plnkr:http://plnkr.co/edit/ElvAsriK2nssq2U9pgKX?p = preview

function initTemplate(){
      datas=getData();
      var templateData=_.template($('#tpl').html(), datas);
      $('#tplW').html(templateData);
      getPDF();
      //  $('#tplW').append(_.template($('#tpl').html(), datas));
      // $('body').html( _.template($('#tpl').html(), datas));

 }


   function getData(){
      var htmlData=$(".MsoNormalTable .inner").find("tr.tablerow");
         var datas=[];
         $.each(htmlData,function(i,v){
             var d=[];
             var tds=$(v).find("td");
             $.each(tds,function(index,val){
                 d.push($(val).text());
             });
              datas.push(d); 
         });
       return datas;
   }



function getPDF() {
    // initTemplate();
         html2canvas($('#tplW')[0], {
        onrendered: function(canvas){

            canvasToImageSuccess(canvas);
        }
    });



    function canvasToImage (canvas){
        var img = new Image();
        var dataURL = canvas.toDataURL('image/png');
        img.src = dataURL;
        return img;
    }; …
Run Code Online (Sandbox Code Playgroud)

javascript pdf html2canvas jspdf

11
推荐指数
1
解决办法
347
查看次数

html2canvas可以在页面中呈现svg吗?

我正在使用html2canvas来创建包含SVG的HTML页面的"屏幕截图".除了元素外,一切看起来都不错.我知道应该可以在Canvas中渲染SVG; PhantomJS,fabric.js和CanVG都可以.

这是html2canvas不支持的东西吗?或者我做错了什么,这应该有效吗?

如果没有实现,扩展html2canvas(使用canvg)的最佳方法是什么?

svg html2canvas

10
推荐指数
1
解决办法
1万
查看次数

如何使用jsPDF以PDF格式显示两页图像?

我有一个HTML页面.我有一个按钮,当我单击此按钮时,它将使用html2canvas将整个html页面转换为数据图像,并使用jsPDF库将其放入PDF.我正在使用的javascript是

$("#printButton").click(function(){
html2canvas([document.getElementById('form1')], {
        onrendered: function (canvas) {
            var imageData = canvas.toDataURL('image/jpeg',1.0); 
           var doc = new jsPDF('landscape');
           doc.addImage(imageData,'JPEG',5,20,200,150);
           doc.save('Test.pdf');
     }
    });
});
Run Code Online (Sandbox Code Playgroud)

它仅在第一页显示图像.但是每当html页面大小更多时,我想剪切图像数据并将其放在PDF格式的两页中.请帮我解决这个问题.

javascript pdf jquery html2canvas jspdf

10
推荐指数
2
解决办法
2万
查看次数

如何使用html2canvas上传截图?

使用html2canvas如何将屏幕截图保存到对象?我一直在探索演示,并看到生成屏幕截图的函数生成如下:

$(window).ready(function() {
  ('body').html2canvas();       
});
Run Code Online (Sandbox Code Playgroud)

我尝试过的是

$(window).ready(function() {
  canvasRecord = $('body').html2canvas(); 
  dataURL = canvasRecord.toDataURL("image/png");
  dataURL = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
  upload(dataURL);

});
Run Code Online (Sandbox Code Playgroud)

然后,我将其传递给我的upload()函数.我遇到的问题是,我无法弄清楚在html2canvas()库中制作屏幕截图的位置或者什么函数返回它.我试着转换使用Canvas对象从SO答案(虽然我不能肯定我需要做到这一点).


我只问了一个问题,关于如何上传文件到imgur,有答案(尤其是@ bebraw的)帮助我明白我需要做的.

upload()函数来自Imgur示例api帮助:

function upload(file) {
   // file is from a <input> tag or from Drag'n Drop
   // Is the file an image?
   if (!file || !file.type.match(/image.*/)) return;

   // It is!
   // Let's build a FormData object
   var fd = new FormData();
   fd.append("image", file); // …
Run Code Online (Sandbox Code Playgroud)

javascript ajax upload screenshot html2canvas

9
推荐指数
1
解决办法
2万
查看次数

有没有办法将c3.js生成的图转换为png,将Png转换为客户端的Pdf

我想在客户端生成一个PDF文件,其中包含一个图表和来自JSON对象的其他表格数据.

以下是Javascript数据绑定部分:

BindReportToPdf: function (data) {
    //data is json object
    var rows = data;
    var columns = [
        { title: "S.No", key: "RowNum" },
        { title: "Title", key: "TTitle" },
        { title: "Phone Number", key: "PhoneNumber" },
        { title: "Loc. Name", key: "LocationName" },
        { title: "Dept. Name", key: "DepartmentName" }
    ];
    var doc = new jsPDF("I", "mm", "a4");

    var canvas1 = document.getElementById("rptcanvas");
    var content = $("#sfDepartmentbar").html();
    canvg(canvas1, content, {
        renderCallback: function () {
            html2canvas($("#rptgraphsec"), {
                onrendered: function (canvas) { …
Run Code Online (Sandbox Code Playgroud)

javascript html2canvas jspdf canvg c3.js

9
推荐指数
1
解决办法
988
查看次数

html2canvas使用angular2/typescript以css样式呈现文档PDF

如何使用带有angular2的html2canvas生成输出文件PDF

我试图导入文件html2canvas typescript并发出这样的声明来使用它

declare let html2canvas: Html2CanvasStatic;
Run Code Online (Sandbox Code Playgroud)

但是我没有定义html2canvas

html2canvas(document.body, {
  onrendered: function(canvas) {
    document.body.appendChild(canvas);
  }
});
Run Code Online (Sandbox Code Playgroud)

我在github html2canvas typescript上找到了这个文件打字稿

如何将此用于我的应用angular2

pdf html2canvas typescript angular

9
推荐指数
1
解决办法
1万
查看次数

Angular2 - 使用jspdf从HTML生成pdf

对于我正在进行的项目,我需要能够生成用户当前所在页面的PDF,我将使用该页面jspdf.由于我HTML需要生成PDF,我需要这个addHTML()功能.关于这一点有很多话题,说

你需要使用html2canvasrasterizehtml.

我选择使用html2canvas.这就是我的代码目前的样子:

import { Injectable, ElementRef, ViewChild } from '@angular/core';
import * as jsPDF from 'jspdf';
import * as d3 from 'd3';
import * as html2canvas from 'html2canvas';

@Injectable ()
export class pdfGeneratorService {

  @ViewChild('to-pdf') element: ElementRef;

  GeneratePDF () {
    html2canvas(this.element.nativeElement, <Html2Canvas.Html2CanvasOptions>{
      onrendered: function(canvas: HTMLCanvasElement) {
        var pdf = new jsPDF('p','pt','a4');

        pdf.addHTML(canvas, function() {
          pdf.save('web.pdf');
        });
      }
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

调用此函数时,出现控制台错误:

EXCEPTION:./AppComponent类中的错误AppComponent - 内联模板:3:4导致:您需要https://github.com/niklasvh/html2canvashttps://github.com/cburgmer/rasterizeHTML.js …

pdf html2canvas jspdf typescript angular

9
推荐指数
3
解决办法
3万
查看次数

标签 统计

html2canvas ×10

javascript ×7

jspdf ×5

pdf ×4

canvas ×3

angular ×2

jquery ×2

svg ×2

typescript ×2

ajax ×1

c3.js ×1

canvg ×1

css ×1

html ×1

screenshot ×1

upload ×1