精华内容
下载资源
问答
  • python3根据模板图片批量自动制作个性化请柬或名片 需求:按照模板图片,在指定位置写入人员名字,形成个性化请柬或个性化名片,批量自动写入 横排文字与竖排文字,在程序中配置 文字位置由程序配置指定 可以...
  • 1.编写xlsx文件,必须是xlsx后缀的即07版之后的excel 2.xlsx文件,需要三个Sheet页 3.第一个Sheet页为公共变量, 这些变量名称 最终用在...第二个Sheet页为生成图片多少的列表信息,第一行为头信息,从第二行开始为...

    1.编写xlsx文件,必须是xlsx后缀的即07版之后的excel
    2.xlsx文件,需要三个Sheet页
    3.第一个Sheet页为公共变量, 这些变量名称 最终用在第三个Sheet页中,已{{变量名}}的方式取值
    4.第二个Sheet页为生成图片多少的列表信息,第一行为头信息,从第二行开始为具体数据信息,最终也用在第三Sheet页中,已{{表头列名}}的方式取值
    5.第三个Sheet页需要设置页面背景,页面背景在页面布局选项中,然后在背景上放置需要输出的变量,已{{变量}}的方式去第一和第二Sheet页中的变量
    6.编辑好xlsx文件,跟主程序《贴地飞行图片批量生成.exe》放在同一目录下,然后执行exe文件,即下当前目录生成相应的图片
    7生成的图片命名规则为第二sheet页中的前两列字段拼接名
    8.在第三Sheet页中变量名可以设置字体大小和颜色,但字体是宋体还是雅黑这个xlsx取不到,需要在config.ini中设置字体路径,Windows字体文件在C:\Windows\Fonts中,文件名具体看文件属性,例如宋体simsun.ttc,Linux下需要写全路径/usr/share/fonts/msyh.ttf
    附:config.ini配置项说明
    font = msyh.ttf  配置字体文件路径
    #6.88*(4/3.0)
    x = 9.173333     这个变量放在图片上位置x的比例像素,默认即可,正常不需要动
    #(4/3.0)
    y = 1.3333333   这个变量放在图片上位置y的比例像素,默认即可,正常不需要动

     

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import logging
    from openpyxl import load_workbook
    import re
    from PIL import Image, ImageDraw, ImageFont
    import os
    import zipfile
    try:
        import configparser as configparser
    except Exception:
        import ConfigParser as configparser
    from collections import OrderedDict
    logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别
                        filename='newlog.log',
                        filemode='a',##模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志
                        #a是追加模式,默认如果不写的话,就是追加模式
                        format=
                        '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
                        #日志格式
                        )
    
    # 判断是否是文件和判断文件是否存在
    def isfile_exist(file_path):
        if not os.path.isfile(file_path):
            print("It's not a file or no such file exist ! %s" % file_path)
            return False
        else:
            return True
    
    
    # 修改指定目录下的文件类型名,将excel后缀名修改为.zip
    def change_file_name(file_path, new_type='1.zip'):
        if not isfile_exist(file_path):
            return ''
        extend = os.path.splitext(file_path)[1]  # 获取文件拓展名
        if extend != '.xlsx' and extend != '.xls':
            print("It's not a excel file! %s" % file_path)
            return False
        file_name = os.path.basename(file_path)  # 获取文件名
        new_name = str(file_name.split('.')[0]) + new_type  # 新的文件名,命名为:xxx.zip
        dir_path = os.path.dirname(file_path)  # 获取文件所在目录
        new_path = os.path.join(dir_path, new_name)  # 新的文件路径
        if os.path.exists(new_path):
            os.remove(new_path)
        os.rename(file_path, new_path)  # 保存新文件,旧文件会替换掉
        return new_path  # 返回新的文件路径,压缩包
    
    
    # 解压文件
    def unzip_file(zipfile_path):
        if not isfile_exist(zipfile_path):
            return False
        if os.path.splitext(zipfile_path)[1] != '.xlsx':
            print("It's not a zip file! %s" % zipfile_path)
            return False
        file_zip = zipfile.ZipFile(zipfile_path, 'r')
        file_name = os.path.basename(zipfile_path)  # 获取文件名
        zipdir = os.path.join(os.path.dirname(zipfile_path), str(file_name.split('.')[0]))  # 获取文件所在目录
        # if not os.path.exists(zipdir):
        #     os.makedirs(zipdir)
        pic_dir = 'xl' + os.sep + 'media'
        for files in file_zip.namelist():
            if files.find(pic_dir)>=0:
                file_zip.extract(files, os.path.join(zipdir))  # 解压到指定文件目录
        file_zip.close()
        return True
    
    
    # 读取解压后的文件夹,打印图片路径
    def read_img(zipfile_path):
        if not isfile_exist(zipfile_path):
            return False
        dir_path = os.path.dirname(zipfile_path)  # 获取文件所在目录
        file_name = os.path.basename(zipfile_path)  # 获取文件名
        pic_dir = 'xl' + os.sep + 'media'  # excel变成压缩包后,再解压,图片在media目录
        pic_path = os.path.join(dir_path, str(file_name.split('.')[0]), pic_dir)
        file_list = os.listdir(pic_path)
        for file in file_list:
            filepath = os.path.join(pic_path, file)
            fsize = os.path.getsize(filepath)
            fsize = fsize / float(1024 * 1024)
            if fsize>0.05:
                print(filepath)
                return filepath
        return ''
    
    # 组合各个函数
    def compenent(excel_file_path):
        zip_file_path = excel_file_path#change_file_name(excel_file_path)
        if zip_file_path != '':
            if unzip_file(zip_file_path):
                return read_img(zip_file_path)
        return ''
    def getsheet2(booksheet):
        defaultRowHeight = booksheet.sheet_format.defaultRowHeight
        defaultColWidth = booksheet.sheet_format.defaultColWidth
        print (defaultRowHeight)
        print (defaultColWidth)
        rows = booksheet.rows
        x=0
    
        dict=OrderedDict()
        for i,row in enumerate(rows):
            y=0
            for j,col in enumerate(row):
                # print(col.value,i,j)
                if col.value!=None and  len(col.value)>0 and  col.value.startswith("{{") and col.value.endswith("}}"):
                    text = re.findall(r'\{{(.*?)\}}', col.value)[0]
                    dict[text]=[i,j,x,y,col.font,col.fill]
                if booksheet.column_dimensions[col.coordinate].width == None:
                    y=y+defaultColWidth
                else:
                    y = y + booksheet.column_dimensions[col.coordinate].width
            if booksheet.row_dimensions[i].height==None:
                x=x+defaultRowHeight
            else:
                x=x+booksheet.row_dimensions[i].height
        # print (dict)
        return dict
    
    def getsheet0(booksheet):
        dict=OrderedDict()
        rows = booksheet.rows
        try:
            for row in rows:
                    dict[row[0].value]=row[1].value
        except Exception as e:
            logging.debug(e)
        # print(dict)
        return dict
    def getsheet1(booksheet,dictcomm):
        list=[]
        rows = booksheet.rows
        lista=[]
        try:
            for i,row in enumerate(rows):
                dict = OrderedDict()
                for j,col in enumerate(row):
                    if i == 0:
                        lista.append(col.value)
                        continue
                    # print (col.value)
                    dict[lista[j]]=col.value
                if i != 0:
                    dict.update(dictcomm)
                    list.append(dict)
        except Exception as e:
            logging.debug(e)
        # print(list)
        return list
    
    # main
    if __name__ == '__main__':
        try:
            file_list = os.listdir(os.getcwd())
            conf = configparser.SafeConfigParser()
            conf.read("config.ini")
            fontpath= conf.get("config", "font")#msyh.ttf
            xxx = float(conf.get("config", "x"))#9.173333
            yyy = float(conf.get("config", "y"))#1.3333333
    
            for file in file_list:
                if not os.path.splitext(file)[0].startswith('.') and os.path.splitext(file)[1] == '.xlsx':
                    name=file
                    imgpath=compenent(name)
                    if imgpath=='':
                        logging.debug('未获取到xlsx中的图片')
                    else:
                        workbook = load_workbook(name)
                        sheets = workbook.sheetnames         #从名称获取sheet
                        booksheet = workbook[sheets[2]]
                        lists=getsheet1(workbook[sheets[1]],getsheet0(workbook[sheets[0]]))
                        dicts=getsheet2(workbook[sheets[2]])
                        #往图片写入
                        for index,li in enumerate(lists):
                            base = Image.open(imgpath)
                            d = ImageDraw.Draw(base)
                            for key in dicts:
                                fill=(0, 0, 0)
                                fnt = ImageFont.truetype(fontpath, int(dicts[key][4].sz))
                                if dicts[key][4].color==None:
                                    fill='#'+dicts[key][5].fgColor.value[2:]
                                else:
                                    fill = '#' +dicts[key][4].color.value[2:]
                                d.text(( dicts[key][3]*xxx,dicts[key][2]*yyy), unicode(str(li[key]),'UTF-8'),font=fnt ,fill=fill)
    
                            filename =''
                            if len(li)>1:
                                filename=str(li.items()[0][1])+'_'+str(li.items()[1][1])
                            else:
                                filename =str(li.items()[0][1])
                            print(filename)
                            logging.debug(filename)
                            base.save(filename+str(index)+os.path.splitext(imgpath)[1])
                            # break
        except Exception as e:
            logging.debug(e)

    最终批量生成图片效果图:

    转载于:https://my.oschina.net/djsoft/blog/2885388

    展开全文
  • * [根据固定模板生成名片] * @param array $data [需要印刷在图片上的参数] */ function create_card(array $data=[]){ $upload = ROOT_PATH.'public'.DS.config('UPLOAD_PATH'); // 上传图片根目录 $ttf = ...
    /**
     * [根据固定模板生成名片]
     * @param  array  $data [需要印刷在图片上的参数]
     */
    function create_card(array $data=[]){
        $upload = ROOT_PATH.'public'.DS.config('UPLOAD_PATH');  // 上传图片根目录
        $ttf    = EXTEND_PATH.'zhttfs/simhei.ttf';              // 字库(支持中文......)
        $image  = \think\Image::open($upload.'card/1card.jpg'); // 打开模板图片
        // 新图片的文件名
        $name = uniqid().'.png';
        $file = $upload.'card/'.$name;
        $image->thumb(750,1334)->save($file);   // 生成一个新图
        $image = \think\Image::open($file);     // 打开新图
        // 添加文字
        $image->text($data['name'],$ttf,'48','#e4daab',[65,547])->save($file);// 姓名
        $image->text($data['position'],$ttf,'32','#e4daab',[68,635])->save($file);// 职位
        $image->text($data['phone'],$ttf,'28','#e4daab',[182,990])->save($file);// 手机号
        // 添加二维码图片
        $image->water($upload.$data['qrcode'],[66,704])->save($file);
        return $name;
    }

    参数请参考TP5官网文档中的图形处理:https://www.kancloud.cn/manual/thinkphp5/177530

    ^_^
    if('评论、转发、点赞'){
        while (true) echo '无双奥义 BUG消失术';
    }
    展开全文
  • 织梦最新内核开发的模板,该模板属于企业通用类、快印、名片、海报类企业都可使用,这款模板使用范围极广,不仅仅局限于一类型的企业,你只需要把图片和产品内容,换成你的,颜色都可以修改,改完让你耳目一新的感觉...

    名片快印海报写真制作类网站织梦模板(带手机端)+PC+移动端+利于SEO优化

    织梦最新内核开发的模板,该模板属于企业通用类、快印、名片、海报类企业都可使用,这款模板使用范围极广,不仅仅局限于一类型的企业,你只需要把图片和产品内容,换成你的,颜色都可以修改,改完让你耳目一新的感觉!自带最新的手机移动端,同一个后台,数据即时同步,简单适用!原创设计、手工书写DIV+CSS,完美兼容IE7+、Firefox、Chrome、360浏览器等;主流浏览器;页面简洁简单,容易管理,DEDE内核都可以使用;附带测试数据!
    在这里插入图片描述
    温馨提示

    按照正常的织梦安装步骤来安装还原就可以用了,从后台重新点击保存下系统基本参数。 系统>系统基本参数> 保存(确定)。


    下载地址:

    http://www.bytepan.com/VhNcmHFDGH3

    展开全文
  • 本期课程,如何快捷地对图片进行批量制作。当公司需要对员工的工牌、名片、荣誉证书,大型展会的时候,需要对参会证、邀请函,或者对亲朋好友的祝福贺卡,这些...可以对模板的文字和图片进行一些修改。按照步骤去填...

    d6288811c0e10444669f2aea8c5b6199.png

    本期课程,如何快捷地对图片进行批量制作。当公司需要对员工的工牌、名片、荣誉证书,大型展会的时候,需要对参会证、邀请函,或者对亲朋好友的祝福贺卡,这些都可能会用到批量制作功能。以往制作都需要单张修改,今天教大家使用易企秀轻设计批量去制作。

    1、进入易企秀官网,我的作中选择轻设计,点击批量制作。

    7acc7d34e32c13ab379d4f4ed5c2d26e.png

    46b6915cd70c83959fee02d2a958e534.png

    2、需要选择一个模板进行编辑制作,模板非常多,左右滑动可查看。可以对模板的文字和图片进行一些修改。按照步骤去填写企业名称、日期和正文等。

    dca5195d77204e5e62b5de6492806641.png

    3、当人数比较少时,可以手动填写,后续的加号减号可以相应的增加和减少数量。如果人数比较多的时候,可以点击上传Excel表格,

    eef3267dd3a20c6577f5813041b2e5a2.png

    4、数量、名称等设置好之后,就可调整细节,点击编辑模板,可以移动图片和文字的位置。

    d9e503677d5ea4f006fe4ef99bdab907.png

    5、最后选择批量生成,最后会提示导出。如果张数比较多,会生成一个压缩包,只需要解压即可。

    36091590e3874cb4596a637b6a301224.png

    6、除了以上模板,还可以去主动搜素自己需要的类型,同样可以批量去生成。在编辑页面右上角的功能中,即可看到。

    d925886efecf7ebfabba2945628716b1.png

    7、在批量生成区域,右侧可以看到所有的组件,选择需要修改的元素,点击依次修改,最后点击生成,也能完成操作。

    9883258a38a4021d40e29a734db5c6cb.png

    小提示:

    1.如果对选择的模板不满意,想要自己调整,可以点击编辑模板,迸入编辑器进行微调,点击完成到批量制作页面;

    2.千万不要轻易删除批量字段,容易导致模板不可用,如被邀请人信息等; .

    3.一次最多生成20张图片哦,导出后可以再次填写剩余的信息,重新生成即可。

    点此可查看视频教程

    易企秀公众号:【eqxiu】【易企秀】

    APP传送门

    往期精彩课程:

    易企秀:销量倍增的海报秘密!zhuanlan.zhihu.com
    0ecf2d4ec23540ed7bfd5ece11b3d9c8.png
    易企秀:【进阶系列】表单添加小技巧!zhuanlan.zhihu.com
    fbb8f46b7c4954b03b69d4f6a9c77a29.png
    展开全文
  • AI制作名片的技巧教程:1、为您的名片创建一个2 x 3.5英寸的模板。在插图中,您将看到三个色线。首先是黑线(安全线-您的文本/徽标元素应保留在该行内)。通过使用矩形工具并将其设置为3.5 x 2英寸来创建安全线。第...
  • 3.名片模板不断更新,可输入名片模板编号或名称进行查找。 4.客户名片信息管理高效 5.赚取积分可兑换名片模板以及超级大礼 *图图1.5版,新增导出cdr和pdf格式印刷文件 图图1.5版,新增导出下载列表 软件特点: ...
  • 名片编辑器及名片控件演示程序

    千次阅读 2007-05-14 13:33:00
    名片编辑器用于编辑名片模板,可插入图片、指定格式的文字。可将名片导出为图片。开发环境:Visual Studio 2005(C#语言)运行平台:Microsoft .NET 2.0 截图如下:编辑主界面: 通过首选项设置编辑区的样式:通过...
  • 名片在线设计制作软件提供用户简单易用的名片编辑功能,和大量的精美模板。您可以轻松设计个人、公司及商业名片,并可在线下单制作。全国免费配送,足不出户,名片到家。   软件特点: 1、名片纸张的颜色、图案...
  • 1、海量的名片模板,并且可在模板上随意上传和编辑图文; 2、上传的公司或者企业LOGO,图片或者二维码图片,设计器具有去除白底功能; 3、可生成多种角度、背景下的名片效果图,让您实时预览设计效果; 4、名片上生成的...
  • 还有10000套PPT,5000套简历,公文模板,名片模板,EDIUS模板,ps软件,计算机二级题库+视频,教师资格证资料,普通话资料,flash软件,录屏软件,office2010,编程软件,网络营销,数据分析工具等AI,PR,c4d软件,...
  • 星智名片设计系统是一款支持纸制名片和电子名片的名片设计软件,内嵌多种类型的名片模板.并配有详细的视频和文字说明,可制作员工卡,会员卡和交互式电子名片等。软件界面简洁实用,功能强大,套用模板后,用户只需...
  • 这是一份幻灯片放映结束,谢谢观看字样的PPT背景模板模板以一只手拿名片的背景图片作为装饰,意在留下演讲者的联系方式; 关键词:谢谢PPT背景图片,放映结束幻灯片模板名片 手臂PPT背景,.PPTX格式;
  • boss端、模板通知、商城拼团、代理商发展下级代理管理后台。 修复后台概览不显示 修复保存海报影响审核 修复BOSS端AI分析 修复后台退款列表分页 跟换服务通知模版 商城商品按照公司设置 修复励志海报小程序码...
  • 质感时间轴帝国CMS模板以黑色为主色,添加了彩色作为网页的一个亮点,导航高亮显示、banner图片鼠标划过,可以看到隐藏的文字。css3动画应用在banner和右边“我的名片”个人信息。
  • EximiousSoft Business Card Designer是由 EximiousSoft 公司开发的一款功能强大且易于使用的名片设计软件。它的工作方式类似于一个优秀的图像编辑器,...软件带有上百个预置的模板、背景图片、徽标、形状、符号和颜色样
  • 佳印设计器作为专业设计名片的软件,提供各种齐全的名片模板,名片设计,在线订购,送货上门的一站式服务。轻松下载,无需安装,即可完成名片制作。 佳印名片设计器是一款面向终端用户的免费设计软件,集名片、...
  • 橙色宽屏大气时尚名片印刷类织梦企业模板,带有wap手机端模板,本套模板整站宽屏样式设计,导航高亮当前栏目带有下拉菜单展示,首页banenr带有侧边悬浮导航,首页内容展示丰富,内容全面,数据库完整调用,后台管理...
  • SpringPublisher 是一款免费的设计名片软件(排版软件),让用户可以快速设计及印制名片、传单、明信片或是信笺等,免费版拥有全部的功能,能够使用最高96/180DPI一般质量输出图片 安装过程中可选择PRO版(收费),则...
  • 1、本模板为门户+论坛+个人空间形式,美化N多默认模板页面 2、全新的搜索页,搜索页面图片展示。 3、全新独家论坛首页版块卡片形式展示方式,分区切换 4、版块列表页,全新设计的图片模式,图文混合模式,后台自由...
  • 淘宝店铺装修说白了就是在选定模板的基础上添加模块,然后在图片上打上链接,除了自定义模块之外,其他都是不能修改的,要想做出自己想要的效果,就需要在图片上花功夫了,那么淘宝自定义店招导航该怎么做呢?...
  • 新增企业公文包,包括图片库、文件夹、收藏夹、名片薄、短信、工具箱、休闲馆,支持控制其空间,上传限制等功能,调用方便; 23.增加系统设置发信功能时检查服务器是否支持; 24.增加个人后台 TOP.asp; .....
  • www.sucai63.com 平台上提供了丰富的图片模板等素材,通过简单的拖拉拽操作就可以轻松设计出精美的海报、PPT、邀请函、信息图和名片等各类图片。 素材路上解决了大多数人设计图片的痛点,让不会使用专业制图...
  • 今天就给大家分享一个“利用ps数据变量来快速修改大量图片的方法”,简单几步,快速搞定。➊准备数据这边用名片的例子来演示。先用表格准备好人员数据,然后选中区域复制到文本里头,保存成txt文本文件。➋模板准备...
  • 直接在「上线了」sxl.cn官网选一个超级云名片模板,再添加需要的功能版块、图片、团队成员等,点击“立即发布”按要求注册授权,就能生成一个名片小程序。当客户扫码进入企业销售人员的名片小程序,就可以在右下角...
  • 创客贴抠图描边使用

    2021-01-04 16:19:45
    登录官网 点击模板中心 进入模板中心 点击印刷物料 点击一个项目,如“名片”,会跳转到登录页面 登录后,进入设计页面 上传图片进行抠图,并描边
  • QQ邮箱设置方法:1:登陆QQ邮箱,点击上方设置按钮2:找到个性名片,点击:添加个性签名 ...QQ邮箱如要实现图片需要用到网页链接,可以使用qq空间的相册,上传想要显示的图片,电脑右击想要的图片 点击复制图片地...
  • 图旺旺广告设计软件是一款免费的专业平面设计软件,软件嵌入海量的设计模板和素材( 包括淘宝、名片、相册、通讯录、招牌、菜单、商场海报等等)。用户既可以离线又可在线编辑图片,你并且可以实现PS的各种功能并...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

名片模板图片