zoukankan      html  css  js  c++  java
  • html 生成印章

    <html>
        <head>
            <meta charset="utf-8">
        </head>
        <style type="text/css" name="文字盖章">
        
            .seal-content{
                width: 300px;
                min-height: 60px;
                vertical-align: bottom;
                word-wrap: break-word;
                position: relative;
            }
            
            .seal-result{
                width: 60px;
                height: 60px;
                transform: rotate(30deg);
                border: solid 2px green;
                border-radius: 100%;
                text-align: center;
                color: green;
                font-size: 16px;
                font-weight: bold;
                line-height: 60px;
                right: 5px;
                bottom: 0px;
                position: absolute;
                background-color: rgba(255,255,255,0.8)
            }
            
            .seal-result-fail{
                border-color: red;
                color: red;
            }
        </style>
        
        <body>
            
            
            <canvas id="canvas" width="200" height="200"></canvas>
            
        </body>
        
        <script name="自定义印章">
     
           var canvas = document.getElementById("canvas");
           var context = canvas.getContext('2d');
     
           var text = "XXX专用章";
           var companyName = "XXX科技股份有限公司";
     
           // 绘制印章边框
           var width = canvas.width / 2;
           var height = canvas.height / 2;
           context.lineWidth = 5;
           context.strokeStyle = "#f00";
           context.beginPath();
           context.arc(width, height, 90, 0, Math.PI * 2);//宽、高、半径
           context.stroke();
     
           //画五角星
           create5star(context,width,height,25,"#f00",0);
     
            // 绘制印章名称
            context.font = '20px 宋体';
            context.textBaseline = 'middle';//设置文本的垂直对齐方式
            context.textAlign = 'center'; //设置文本的水平对对齐方式
            context.lineWidth=1;
            context.strokeStyle = '#f00';
            context.strokeText(text,width,height+60);
     
            // 绘制印章单位  
            context.translate(width,height);// 平移到此位置,
            context.font = '23px 宋体';
            var  count = companyName.length;// 字数
            var  angle = 4*Math.PI/(3*(count - 1));// 字间角度 
            var chars = companyName.split("");
            var c;
           for (var i = 0; i < count; i++) {
               c = chars[i];// 需要绘制的字符   
               if (i == 0) {
                   context.rotate(5 * Math.PI / 6);
     
               } else{
                   context.rotate(angle);
               }
     
               context.save();
               context.translate(70, 0);// 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
               context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
               context.strokeText(c, 0, 0);// 此点为字的中心点
               context.restore();
           }
     
           //绘制五角星
            function create5star(context, sx, sy, radius, color, rotato) {
                context.save();
                context.fillStyle = color;
                context.translate(sx, sy);//移动坐标原点
                context.rotate(Math.PI + rotato);//旋转
                context.beginPath();//创建路径
                var x = Math.sin(0);
                var y = Math.cos(0);
                var dig = Math.PI / 5 * 4;
                for (var i = 0; i < 5; i++) {//画五角星的五条边
                    var x = Math.sin(i * dig);
                    var y = Math.cos(i * dig);
                    context.lineTo(x * radius, y * radius);
                }
                context.closePath();
                context.stroke();
                context.fill();
                context.restore();
            }
     
    </script>
        
        
        
    </html>



    <template>
      <div class="page">
        <div id="main" class="main">
          <canvas id="canvas" width="200" height="200"></canvas>
        </div>
      </div>
    </template>
    
    <script>
        export default {
            name: "Home",
            data() {
                return {
                    orgName: '长沙市第一中学'
                }
            },
            components: {},
            created() {
    
            },
            mounted() {
                var canvas = document.getElementById('canvas');
                var context = canvas.getContext('2d');
                // 绘制印章边框
                var width = canvas.width / 2;
                var height = canvas.height / 2;
                context.lineWidth = 3;
                context.strokeStyle = "#f00";
                context.beginPath();
                // 圆圈大小
                context.arc(width, height, 80, 0, Math.PI * 2);
                context.stroke();
    
                //画五角星
                this.create5star(context, width, height, 15, "#f00", 0);
    
                // 绘制印章名称
                context.font = '16px Helvetica';
                context.textBaseline = 'middle';//设置文本的垂直对齐方式
                context.textAlign = 'center'; //设置文本的水平对对齐方式
                context.lineWidth = 1;
                context.fillStyle = '#f00';
                let name = "验收专用章"
                context.fillText(name, width, height + 45);
    
                // 绘制印章单位
                context.translate(width, height);// 平移到此位置,
                context.font = '16px Helvetica'
                var count = this.orgName.length;// 字数
                var angle = 4 * Math.PI / (3 * (count - 1));// 字间角度
                var chars = this.orgName.split("");
                var c;
                for (var i = 0; i < count; i++) {
                    c = chars[i];// 需要绘制的字符
                    if (i == 0)
                        context.rotate(5 * Math.PI / 6);
                    else
                        context.rotate(angle);
                    context.save();
                    // 文字位置调整
                    context.translate(70, 0);// 平移到此位置,此时字和x轴垂直
                    context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴
                    context.fillText(c, 0, 5);// 此点为字的中心点
                    context.restore();
                }
            },
            methods: {
                //绘制五角星
                /**
                 * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上
                 * rotate:绕对称轴旋转rotate弧度
                 */
                create5star(context, sx, sy, radius, color, rotato) {
                  context.save();
                  context.fillStyle = color;
                  context.translate(sx, sy);//移动坐标原点
                  context.rotate(Math.PI + rotato);//旋转
                  context.beginPath();//创建路径
                  var x = Math.sin(0);
                  var y = Math.cos(0);
                  var dig = Math.PI / 5 * 4;
                  for (var i = 0; i < 5; i++) {//画五角星的五条边
                      var x = Math.sin(i * dig);
                      var y = Math.cos(i * dig);
                      context.lineTo(x * radius, y * radius);
                  }
                  context.closePath();
                  context.stroke();
                  context.fill();
                  context.restore();
              }
            }
        }
    </script>
    
    <style scoped>
    </style>
    编程PDF电子书免费下载: http://www.shitanlife.com/code 每天学习一点点
  • 相关阅读:
    日志框架之Slf4j整合Logback
    使用SLF4J和Logback
    Java日志框架SLF4J和log4j以及logback的联系和区别
    docker部署apollo
    mysql8.0设置忽略大小写后无法启动
    将项目迁移到kubernetes平台是怎样实现的
    kubectl port-forward
    linux服务器安全配置最详解
    CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器
    统计linux 下当前socket 的fd数量
  • 原文地址:https://www.cnblogs.com/scode2/p/15438168.html
Copyright © 2011-2022 走看看