如何在PDF上打印带有样式和CSS的完整HTML页面内容? [英] How to print a complete HTML page contents with style and CSS on PDF?

查看:142
本文介绍了如何在PDF上打印带有样式和CSS的完整HTML页面内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,



这里我需要实现一个功能,我需要在PDF文件中编写HTML页面。



示例:

Hello,

Here I need to implement a functionality in which I need to writr a HTML page as it is in PDF file.

Example:

But my requirement is different. Its not simple to create HTML in PDF. I need a functionality like write this current open page on PDF as it looks like.





提前谢谢



我尝试过:



我正在尝试



Thanks in advance

What I have tried:

I am trying

iTextSharp

推荐答案

你好,最后我得到了一个使用JQuery的解决方案。



Hello, finally I got a solution using JQuery.

 <!-- Scripts -->
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/MrRio/jsPDF/master/dist/jspdf.min.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/niklasvh/html2canvas/0.5.0-alpha2/dist/html2canvas.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.12.0/semantic.min.css" />







<script>
    (function () {
        // Define variables
        var
         form =


('#dvMain'),
cache_width = form.width(),
cache_height = form.height(),
a4 = [595.28,841.89]; //适用于a5尺寸的纸张宽度和高度

if ('@ Model.Mode'==PDF){
//滚动屏幕
('#dvMain'), cache_width = form.width(), cache_height = form.height(), a4 = [595.28, 841.89]; // for a5 size paper width and height if ('@Model.Mode' == "PDF") { // Scroll screen


('body')。scrollTop(0);
//调用函数createPDF
createPDF();
}
//创建pdf
函数createPDF(){$​​ b $ b if(cache_height> 600)
cache_height = 600;

//调用创建画布函数
getCanvas()。then(function(canvas){
var
img = canvas.toDataURL(image / png ),
doc = new jsPDF({
unit:'px',
格式:'a4
});
doc.addImage(img,'JPEG',10,10,420,cache_height);
doc.save('techumber-html-to-pdf.pdf');
form.width(cache_width);
});
}

//创建画布对象
函数getCanvas(){

form.width((a4 [0] * 1.33333))。css ('max-width','none');
返回html2canvas(表单,{
imageTimeout:3000,
removeContainer:true
});
}

}());

< / script>
('body').scrollTop(0); // Call function createPDF createPDF(); } //create pdf function createPDF() { if (cache_height > 600) cache_height = 600; // Call create canvas function getCanvas().then(function (canvas) { var img = canvas.toDataURL("image/png"), doc = new jsPDF({ unit: 'px', format: 'a4' }); doc.addImage(img, 'JPEG', 10, 10, 420, cache_height); doc.save('techumber-html-to-pdf.pdf'); form.width(cache_width); }); } // create canvas object function getCanvas() { form.width((a4[0] * 1.33333)).css('max-width', 'none'); return html2canvas(form, { imageTimeout: 3000, removeContainer: true }); } }()); </script>







HTML:




HTML:

<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>
        Reference PDF
    </title>    
</head>
<body>   
    <div class="ui segment">      
        <div id="dvMain" name="dvMain">
            <div class="clr"></div>
            <div class="col-md-12">
                <label>Student Name:</label>  <label id="lblSName" name="lblSName"> @Model.Student</label> <br />
                <label>Date of Brith:</label>  @dob <br /><br />
                <label>Course applied for:</label>  @Model.ApplicationCourses
            </div>
            <div class="col-md-12">
                <br />
                <label>Referee Name:</label>  @Model.Referee <br />
                <label>Position:</label>  @Model.RefereesJobTitle<br />
                <label>Organisation:</label>  @Model.InstitutionName
            </div>
            <div class="clr"></div>
            @if (string.IsNullOrEmpty(Model.ReferenceCompletedDate))
            {
                <div class="col-md-12">
                    <label>Reference Status:</label>  Reference not completed
                </div>
            }
            else
            {
                <div class="col-md-12">
                    <label>Reference Status:</label>  Completed
                </div>
                    <br />
                    <div class="col-md-12">
                        @Html.Raw(Model.HTMLContent)
                    </div>
            }

        </div>
    </div>
</body>
</html>


这篇关于如何在PDF上打印带有样式和CSS的完整HTML页面内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆