标签: html2canvas

html2canvas : 删除图片上方的空白区域

这让我发疯。我只是想 html2canvas 捕获图像

我有这个:

<div id="post" class="xx">Déposer</div>
<canvas width="500" height="200"></canvas>

<script type="text/javascript" src="html2canvas.js"></script>
<script type="text/javascript">
   var canvas = document.querySelector("canvas");
   html2canvas($("#post"), {canvas: canvas}).then(function(canvas) {
        var img = canvas.toDataURL()
        window.open(img); 
   });
</script>
Run Code Online (Sandbox Code Playgroud)

结果是这张图:

宽度和高度与图像大小不对应

该按钮出现在画布的底部,我只想保留该按钮,关于如何仅获取该按钮的任何想法?

如果我改变画布的大小,那么结果是这样的:

在此处输入图片说明

这是按钮的代码:

<div id="post">
    <div style="float:left;background:url(g.png);width:21px;height:53px;"></div>
   <div id="c" style="float:left;background:url(c.png) repeat-x;height:53px;font-family:arial;text-shadow: -1px -1px rgba(0, 0, 0, 0.3);padding: 12px 20px;font-size: 20px;line-height: 24px;color: rgb(255, 255, 255);text-align: center;vertical-align: middle;text-decoration: none;">Déposer</div>
     <div style="float:left;background:url(d.png);width:21px;height:53px;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

和文件: .png d.png .png

这使得这个按钮(页面中没有额外的 css): 在此处输入图片说明

javascript php jquery html2canvas

5
推荐指数
1
解决办法
5528
查看次数

html2canvas 只转换窗口的可见区域

我为此使用 html2canvas 插件。

我目前正在使用此代码。

 html2canvas($("#chartDiv"), {                              
  onrendered: function (canvas) {

   var win = window.open();
   win.document.write("<br><img src='" + canvas.toDataURL() + "'/>");
   win.print(); 
  }
});
Run Code Online (Sandbox Code Playgroud)

当我将 div 转换为画布时,只有窗口的可见部分变成了画布。

我需要找到一个解决方案,如果 div 超过窗口的大小,我可以将 div 打印成多页。?

预先感谢

这是我目前的输出

html javascript printing jquery html2canvas

5
推荐指数
1
解决办法
3551
查看次数

将包含 SVG 元素的 HTML 转换为图像文件

我正在尝试将 html 代码转换为图像文件(png、jpg 等)。但是,我尝试过的所有方法都不起作用,因为我的 HTML 代码具有这样的 SVG 元素:

<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 150.000000 150.000000" preserveAspectRatio="xMidYMid meet" class="img30p icon-main-color">
    <g transform="translate(0.000000,150.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none">
    <path d="M572 1430 c-233 -62 -408 -227 -490 -459 -24 -69 -27 -89 -27 -221 0 -132 3 -152 27 -221 39 -110 92 -194 172 -275 81 -80 165 -133 275 -172 69 -24 89 -27 221 -27 132 0 152 3 221 27 110 39 194 92 275 172 80 81 133 165 172 …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery svg html2canvas

5
推荐指数
1
解决办法
2665
查看次数

使用 jsPDF 和 html2canvas 将具有“隐藏”属性的 div 转换为 pdf

我正在使用jsPDFhtml2canvas将 a 转换divpdf

<a onclick="makePdf()">PDF</a>
<div id="divToPdf">Some content here</div>
Run Code Online (Sandbox Code Playgroud)

但是我不希望我的div显示在屏幕上。我尝试使用hidden属性来隐藏div

<a onclick="makePdf()">PDF</a>
<div id="divToPdf" hidden>Some content here</div>
Run Code Online (Sandbox Code Playgroud)

问题是该hidden属性会生成一个空白的 pdf文档。如果div没有这个问题,我该如何隐藏?

javascript html2canvas jspdf

5
推荐指数
2
解决办法
7898
查看次数

使用jspdf将html页面保存为pdf,如果浏览器放大,保存的pdf包含不完整的页面内容,为什么?

我正在使用 jspdf 和 html2canvas 组合将 html 页面保存为 pdf。单击按钮时,将保存当前页面的 pdf 副本。问题是,如果您放大页面,然后单击按钮,则保存的 pdf 包含当前页面的不完整部分。由于缩放而在页面上不可见的大部分部分在保存的 pdf 页面中被截断。解决办法是什么?以下是单击保存按钮时调用的 js 代码-

var pdf = new jsPDF('l', 'pt', 'a4');
var source = $('#someId')[0];
var options = {
   background  : '#eee'
};

pdf.addHTML(source, options, function(){
pdf.save('abcd.pdf');
});
Run Code Online (Sandbox Code Playgroud)

编辑

从 Saurabh 的方法中汲取灵感,我尝试了类似的方法,但没有为任何额外的 div 元素编写代码。在保存为 pdf 之前,我将屏幕尺寸设为固定宽度,打印后将宽度恢复为默认的正常宽度。它工作正常,如果失败,我们也可以随时修复屏幕的高度,这样尽管缩放,它在生成的 pdf 中看起来也很好。以下是我使用的代码:-

var pdf = new jsPDF('l', 'pt', 'a4');
var source = $('#someId')[0];
var options = {
   background  : '#eee'
};
var width = source.clientWidth;
source.style.width = '1700px';
pdf.addHTML(source, options,                 
function(){
pdf.save('abcd.pdf'); …
Run Code Online (Sandbox Code Playgroud)

javascript pdf pdf-generation html2canvas jspdf

5
推荐指数
2
解决办法
4197
查看次数

对象不是函数,在 jspdf 调用中

我从这里借用了代码,我试图让它在我的 React 应用程序中作为概念证明工作。我遇到的问题之一是行:

var pdf = new jspdf('p', 'pt', 'letter');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到以下错误:TypeError: WEBPACK_IMPORTED_MODULE_2_jspdf .jspdf is not a constructor

如果我删除 'new' var pdf = jspdf('p', 'pt', 'letter');

我收到错误:TypeError: Object(...) is not a function

我究竟做错了什么。似乎它在所有示例中都有效,但在我的编辑器中没有:)

javascript html2canvas jspdf reactjs

5
推荐指数
1
解决办法
1370
查看次数

Html2Canvas foreignObjectRendering 只渲染视点

我目前在使用 Html2Canvas 包将复杂的 DIV 元素渲染为 CANVAS 元素时遇到问题。问题是我想写到 CANVAS 的 DIV,有

overflow: auto 
Run Code Online (Sandbox Code Playgroud)

所以DIV大于屏幕比例。并在火上加油,上述所有内容都在 Angular 5 组件中,这意味着当我访问 .css 时 CSS 不可用ElementRef.nativeElement.innerHTML

Encapsulation.None 在这里也不适合我。

HTML 到画布设置:

  async: true,
  logging: false,
  backgroundColor: null,
  allowTaint: true,
  foreignObjectRendering: true,
  removeContainer: true
Run Code Online (Sandbox Code Playgroud)

结果: 结果与foreignObjectRendering:true

注意图像周围的黑色空间,是屏幕比例,但无法渲染。

当我设置时:

foreignObjectRendering: false
Run Code Online (Sandbox Code Playgroud)

我得到了非常满意的质量和我想要的尺寸。但图表如下所示:

在此处输入图片说明

提前致谢!这对我来说非常重要。我保证,如果我能解决这个问题,我将创建一个非常有用的 NPM 包,以在 Angular 2+ 中将元素导出为 PDF 文件

为方便起见,还附上 Html2Canvas 文档:http ://html2canvas.hertzen.com/configuration/

html javascript canvas html2canvas angular

5
推荐指数
0
解决办法
2326
查看次数

是否可以在网页中截取 iframe 的屏幕截图?

我正在尝试截取网页中 iframe 的屏幕截图。在我的特殊情况下,iframe 包含我客户商店之一的街景。据我搜索和阅读,我没有找到任何解决方案。

我知道有像Html2Canvasand这样的 JavaScript 库Canvas2Image,但它们无法捕获 iframe。

是我正在研究的小提琴。

除了 iframe,这些库与每个 HTML 元素都能正常工作。

这是小提琴的 JavaScript:

$(function() { 
        $("#btnSave").click(function() { 
        html2canvas($("#widget"), {
            onrendered: function(canvas) {
                var context=canvas.getContext("2d"); // returns the 2d context object
                // Convert and download as image 
                theCanvas = canvas;
                document.body.appendChild(canvas);

                // Convert and download as image 
                Canvas2Image.saveAsPNG(canvas); 
                $("#img-out").append(canvas);
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

是否存在其他捕获 iframe 的方法?是否有任何付费的第三方服务可以做到这一点?

如果 iframe 没有任何作用,是否有任何替代方法可以实现我想要做的事情?

如果需要更多信息,请告诉我。

任何帮助将不胜感激。

提前致谢

html javascript iframe screenshot html2canvas

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

jsPDF 与 html2canvas 产生模糊的 pdf?

我目前正在通过 html2canvas 将 div 的内容转换为 png,但是使用 scale: 5 或 dpi: 等对随后的图像质量没有任何影响。这是 html2canvas 的结果,因为我在 pdfcon() 函数期间附加了画布,并且非常模糊:)。我已经在互联网上搜索了无济于事的答案,任何帮助将不胜感激:)。(我也在使用 Quill 编辑器)

HTML:

    <div id="editorOne" class="pdf-convert ql-container ql-snow">
        <div id="specialEdit" class="ql-editor" data-gramm="false" contenteditable="false">
            <?php echo stripslashes($newClean); ?>
        </div>
    </div>
    <button onclick="pdfcon()">Save Pdf</button>
Run Code Online (Sandbox Code Playgroud)

JS:

function pdfcon() {
                html2canvas($("#editorOne"), {
                    scale: 5,
                    onrendered: function (canvas) {
                        document.body.appendChild(canvas);
                        var img = canvas.toDataURL("png");

                        var doc = new jsPDF("p", "mm", "a4");

                        var width = doc.internal.pageSize.getWidth();
                        var height = doc.internal.pageSize.getHeight();

                        doc.addImage(img, 'PNG', 0, 0, width, height);
                        doc.save('testing.pdf');
                    }
                })
            };
Run Code Online (Sandbox Code Playgroud)

html javascript pdf-generation html2pdf html2canvas

5
推荐指数
1
解决办法
4692
查看次数

未捕获的无效图像,图像字典应包含 dataURL 条目(或 node.js 中的本地文件路径)

当我将克隆的 html 导出为 PDF 时,出现以下错误。

未捕获的无效图像,图像字典应包含 dataURL 条目(或 node.js 中的本地文件路径)

这是我的代码:

var clonedHTML = $('#ASPxScheduler1').clone(); html2canvas(clonedHTML[0], { letterRendering: 1, allowTaint: false, logging: true, useCORS: true, onrendered: function (canvas) { var data = canvas.toDataURL(); var docDefinition = { content: [{ image:数据,宽度:1100,高度:450}],页面大小:'A3',页面方向:'横向'}; pdfMake.createPdf(docDefinition).download("My-Calendar.pdf"); } });

javascript pdf jquery html2canvas pdfmake

5
推荐指数
0
解决办法
460
查看次数