精华内容
下载资源
问答
  • 当然,很多公司不愿意出钱,那么今天咱们就探讨下怎么做免费的打印。 web端JS技术很强大,JS也提供了简单的打印方法,大家可参考JQprint()方法,这个方法网上有很多说明,在我的上一篇博客中也有提到,可以简单实现...

    还是那句话:十年河东,十年河西,莫欺少年穷。

    目前,web端打印技术有很多,有收费的专业web打印控件,大家可以参考我的上一篇博客。当然,很多公司不愿意出钱,那么今天咱们就探讨下怎么做免费的打印。

    web端JS技术很强大,JS也提供了简单的打印方法,大家可参考JQprint()方法,这个方法网上有很多说明,在我的上一篇博客中也有提到,可以简单实现打印功能,大家可自行查询资料,在此不作说明。

    现在咱们进入主题。

    本篇旨在讲解用C#代码实现打印的方法及思路。

    先说下思路:

    项目模块各功能要求打印的内容是各不相同的,有打印列表的,有打印图表的,有打印文字的,例如:打印三七班所有学生信息,这个属于列表。打印某个学生的体检单,这个属于表格和文字结合的。打印近五年毕业生的就业率,也就是柱状图/饼状图/线性图等,这个属于图表打印!

    那么,不管是打印列表还是打印图表,亦或是其他复杂表格,我们在Docx文档中都是可以设计出来的,例如下图学生信息列表:

    这种Docx文档,我们在此称为:模板

    下面,将我制作的整个模板贴出来,如下:

    OK,现在有了模板,我们下一步工作的内容是如何填充模板,并保存为新的Docx文档。例如:把模板中UserName替换为:XX班。把maomi替换为:三七班的班花的照片。把空着的表格填充XX班学生的信息。

    如何填充模板呢?填充完以后,如何保存为新的Docx文档呢?这些都是代码可以实现的,现在咱们先避开代码部分,继续讲解思路。

    有了填充后的docx文件,用户下载后,就可以实现打印了,但是docx文件不是只读的,为了防止用户故意篡改docx文档,我们有必要将docx文档转化为PDF文件或者swf文件(所谓:swf文件是Flash文件)。

    将填充后的docx文档转化为PDF或者Flash文件后,我们的工作也就做完了!用户也就可以打印相应的文件了。

    现在先演示下我的项目:

    属于横向打印:如下:

    以上便是整个操作过程,项目运行后,会在浏览器端展示PDF文件,然后,鼠标右击,打开打印页面!

    至于项目代码,由于太多,不在博客园上传,下载地址:http://download.csdn.net/detail/wolongbb/9820491

    @陈卧龙的博客

    展开全文
  • 最近需要docx页面输出,需要将正常纵向页面转为横向页面,查了一些资料,发现很多都是科普的解释,并没有讲出具体怎么做,现在贴出我实现的代码。 需要引入的: from docx import Document from docx.enum....

    最近需要docx页面输出,需要将正常纵向页面转为横向页面,查了一些资料,发现很多都是科普的解释,并没有讲出具体怎么做,现在贴出我实现的代码。

    需要引入的:

    from docx import Document
    from docx.enum.section import WD_ORIENT

    纵向转横向的代码:

    document = Document()
    section = document.sections[0]
    new_width, new_height = section.page_height, section.page_width
    section.orientation = WD_ORIENT.LANDSCAPE
    section.page_width = new_width
    section.page_height = new_height

    接着就开始自己需要的文档操作。

    以上就是如何设置文档输出从纵向转为横向排布。

    展开全文
  • 目 录 1? 到用户前的准备. 2 1.1? 组织队伍. 2 1.2? 准备相应文档. 2 1.3? 联系及了解用户方. 2 1.4? 编写计划. 3 2? 需求调研. 3 2.1? 第一日. 3 2.2? 调研过程.
  • Mapreduce#文档.docx

    2020-01-14 19:57:55
    need to do)与具体怎么做(how to do)分开了,为程序员提供一个抽象和高层的编 程接口和框架。程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处 理应用本身计算问题的程序代码。如何具体完成这个并行计算...
  • 因为公司发展需要,想要专门搭建一套聚合支付系统,但是软件开发公司实在太多,自己又不清楚这个行业的情况,各家软件开发公司实力又参差不齐,不知道该怎么做选择?不如先来了解一下畅优科技吧。 畅优科技位于...
  • 最近接到一个需求——把数据库里的数据成表格,然后形成一本书,打印出来送给客户。由于系统目前没有自动导出word或者excel类似的功能,只能自己去实现。这个任务的要点在于,表格的形成,然后是多个表格排版在...

    目录

    一、结构

    二、常用的API介绍

    三、实例展示

    展示一

    展示二


            最近接到一个需求——把数据库里的数据做成表格,然后形成一本书,打印出来送给客户。由于系统目前没有自动导出word或者excel类似的功能,只能自己去实现。这个任务的要点在于,表格的形成,然后是多个表格排版在一起。在没有接触过怎么用python自动生成word和PDF文件,这个完全就不知道工作量。后面在网上找资料,发现用python-docx就能实现这个功能,而且代码量很少。当然例如pydf2和Reportlab也能实现PDF,画图也有专门的库pyecharts等。这里主要就是简单总结一下python-docx自动生成word文档相关的内的内容,算作入门,用以复习使用。

    一、结构

    python-docx把一个word文档视为一个Document()对象,然后根据内容的形式分为一些子类。

    标题:add_heading,分为一二三四级等标题;

    段落:paragraph,add_paragraph;

    表格:table,add_table;

    图片:picture,add_picture

    他们直接的一些相互关系,可以用一张结构图来表示:

    run对象是Python-docx的最基本的单位,例如每一个段落有一个run对象,每一行有一个run对象;每一个表格对象有一个run对象,每一个单元格有一个run对象。通过这个run对象我们就可以精准的控制文档中不同内容、不同粒度的样式,包括字体大小和颜色等。

    基本word生成步骤:

    1、document = Document() 

    2、document.add_*....

    3、document.save(path)

     

    二、常用的API介绍

    1、创建、打开一个文档对象

    document = Document()#创建一个文档
    document = Document(path)#从path路径打开一个已存在的文档

    2、设置标题

    注意level参数,控制标题的级别

    document.add_heading(text=u'关于python-docx的使用说明',level=1)
    3、添加段落文本

    这里的style参数用来控制文本的风格格式等,类似前段css样式。当然也可以通过run、add_run()的方式来实现。

    document.add_paragraph(text='首先..........其次。。。。。。。。再次。。。。。。。。。', style=None)
    
    document.add_paragraph(text='首先..........其次。。。。。。。。再次。。。。。。。。。', style=None)
    run1 = document.add_paragraph( style=None).add_run(text='首先..........其次。。。。。。。。再次。。。。。。。。。')
    run1.font.size = Pt(16)  # 设置大小为16磅
    run1.font.color.rgb = RGBColor(0, 255, 0)  # 设置为蓝色 这个可以查找RGB颜色对照表

    4、添加表格

    这里涉及到表格的行列坐标,以及合并。合并的时候是采用行列坐标来确定单元格的位置,merge函数来实现。单元格:table.cell(row,column)。

    table = document.add_table(rows=5, cols=5, style='Table Grid')
    # 单元格合并
    table.cell(0, 0).merge(table.cell(0, 4)) #第一行合并
    table.cell(1, 0).merge(table.cell(2, 2)) #第二行的123列和第3行的123列合并

    5、添加图片

    add_picture(image_path_or_stream, width=None, height=None),参数分别是图片路径,宽度和高度等。如下,一个函数搞定。

    document.add_picture('qianyixue.jpeg')

    但是要排版居中的话就有点麻烦,这里需要先引用一个paragraph,然后用它的居中属性来控制:

    paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

        # 添加图片并且居中
        paragraph = document.add_paragraph()
        # 图片居中设置
        paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
        run = paragraph.add_run("")
        run.add_picture('qianyixue.jpeg')

    6、分页符

    add_page_break() #增加分页符

    这里有的时候排版需要这个分页符的功能

     

    三、实例展示

    展示一

    下面看一效果,随便添加的几个文档要素。代码入下:

    from docx import Document
    from docx.shared import Pt,Inches
    from docx.shared import RGBColor
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    
    if __name__ == '__main__':
        document = Document()
        title = document.add_heading(text=u'关于python-docx的使用说明',level=1)
        #标题居中
        title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
        document.add_paragraph(text='首先..........其次。。。。。。。。再次。。。。。。。。。', style=None)
        run1 = document.add_paragraph( style=None).add_run(text='首先..........其次。。。。。。。。再次。。。。。。。。。')
        run1.font.size = Pt(16)  # 设置大小为11磅
        run1.font.color.rgb = RGBColor(0, 255, 0)  # 设置为蓝色 这个可以查找RGB颜色对照表
        #添加表格
        table = document.add_table(rows=5, cols=5, style='Table Grid')
        # 单元格合并
        table.cell(0, 0).merge(table.cell(0, 4)) #第一行合并
        table.cell(1, 0).merge(table.cell(2, 2)) #第二行的123列和第3行的123列合并
        table.cell(0, 0).add_paragraph('这是第一行')
        table.cell(1, 0).add_paragraph('第二行和第3行合并')
        #换行
        document.add_paragraph('\n')
        #添加图片
        document.add_picture('qianyixue.jpeg', width=Inches(4))
    
        # 添加图片并且居中
        paragraph = document.add_paragraph()
        # 图片居中设置
        paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
        run = paragraph.add_run("")
        run.add_picture('qianyixue.jpeg',width=Inches(4))
        #保存word文档
        document.save('test.docx')

    文档效果:

    qianyixue

     

    展示二

    如下图,要从数据库中查询数据并且做成如下排版的格式,每个页面2个表格,同时还要把数据进行分类,添加2级标题。

    de

    实现其实很简单,遍历的生成表格,在每一类数据之前添加标题,每生成2个table就换页;每一类数据完成了也换页。

    关键代码如下:

    document = Document()
    fill_save_table(document, patent_data_list, secondary_headlines, new_IpcNums, save_file_docx)
    print('生成word文档完成!')
    
    
    
    def fill_save_table(document,patent_data_list,secondary_headlines, new_IpcNums,path):
    
    
        for secondary_headline,new_IpcNum in tqdm(list(zip(secondary_headlines, new_IpcNums)),desc='生成word表格'):
            run = document.add_heading('',level=2).add_run(secondary_headline)
            run.font.size = Pt(16)  # 设置大小为11磅
            run.font.color.rgb = RGBColor(0,0,0) #设置为黑色
            for i in range(new_IpcNum):
                produce_table(document)
                document.add_paragraph('')
                if (i + 1) % 2 == 0 and (i + 1) != new_IpcNum:
                    document.add_page_break()
            document.add_page_break()
    
        #保存document文档
        document.save(path)
    
    
        #打开document文档
        document = Document(path)
    
        tables = document.tables
        for table,ele in tqdm(list(zip(tables,patent_data_list)),desc='把数据填充到表格中:'):
            #填充数据
            table.cell(0,0).add_paragraph(ele[0])
            table.cell(0, 1).add_paragraph(ele[1])
            table.cell(0, 4).add_paragraph(ele[2])
            table.cell(0, 6).add_paragraph(ele[3])
            table.cell(0, 7).add_paragraph(ele[4])
    
            table.cell(1, 0).add_paragraph(ele[5])
            table.cell(1, 1).add_paragraph(ele[6])
            table.cell(1, 3).add_paragraph(ele[7])
            table.cell(1, 4).add_paragraph(ele[8])
            table.cell(1, 6).add_paragraph(ele[9])
            table.cell(1, 7).add_paragraph(ele[10])
    
            table.cell(2, 0).add_paragraph(ele[11])
            table.cell(2, 1).add_paragraph(ele[12])
    
        document.save(path)
    
    
    
    
    def produce_table(document):
        table = document.add_table(rows=3,cols=10,style='Table Grid')
        #单元格合并
        table.cell(0, 1).merge(table.cell(0, 3))
        table.cell(0,4).merge(table.cell(0, 5))
        table.cell(0, 7).merge(table.cell(0, 9))
    
        table.cell(1, 1).merge(table.cell(1, 2))
        table.cell(1, 4).merge(table.cell(1, 5))
        table.cell(1, 7).merge(table.cell(1, 9))
    
        table.cell(2, 1).merge(table.cell(2, 9))

     

     

    写在最后,以上内容其实很简单,当然写的也很粗糙,关于API和其他的一些注意的点,可以参考这一篇博客:python-docx中文文档使用小结

     

     

    参考文章:

    python docx 使用总结

    python-docx中文文档使用小结

    python-docx 如何使图片居中?

    展开全文
  • 精选文档整理 文档合集 如何 Android 应用流量测试 前言 我们经常手机应用有这样的困惑想知道应用费不费流量想知道某几款同类应用同样的事儿哪个更省流量更深入的想知道一款应用为什么这么费流量流量都消耗在哪...
  • 我写了很多文章,用docx来保存,现在想把他放到博客上,我该怎么做?复制粘贴?不!我要格式转换! DOCX转换成HTML from pydocx import PyDocX html = PyDocX.to_html(r"E:\工作管理\环境搭建\文档上传\格式转换\...

    需求驱动

    我写了很多文章,用docx来保存,现在想把他放到博客上,我该怎么做?复制粘贴?不!我要格式转换!

    DOCX转换成HTML

    from pydocx import PyDocX
    html = PyDocX.to_html(r"E:\工作管理\环境搭建\文档上传\格式转换\test.docx")
    f = open("test.html", 'w', encoding="utf-8")
    f.write(html)
    f.close()
    

    在这里插入图片描述如上图已经生成文件,我们看看效果:

    在这里插入图片描述如上图,效果还是不错的。

    HTML转换成markdown

    from pydocx import PyDocX
    import html2text as ht
    
    html = PyDocX.to_html(r"E:\工作管理\环境搭建\文档上传\格式转换\test.docx")
    f = open("test.html", 'w', encoding="utf-8")
    f.write(html)
    f.close()
    
    text_maker = ht.HTML2Text()
    text_maker.bypass_tables = False
    path =r"E:\工作管理\环境搭建\文档上传\格式转换\test.html"
    htmlfile = open(path,'r',encoding='UTF-8')
    htmlpage = htmlfile.read()
    text = text_maker.handle(htmlpage)
    md = text.split('#') 
    open("test.md","w").write(md[1]) 
    
    展开全文
  • 随着信息时代的到来,计算机得到了普及,成为人们不可缺少的实用工具。...下面小编就教你具体怎么做吧。Word2010将一个文档的样式复制到另一个文档中的方法1.打开需要被应用格式的文档,这里打开“2.docx...
  • 向logic导入orcad库.docx

    2019-08-29 13:49:58
    向Logic导入OrCAD库文件详细操作,怎么做,看文档即知
  • 互联网产品经理.docx

    2020-02-13 10:56:51
    【十二、怎么数据分析?小白需要掌握的常见数据分析思路】 【十三、产品功能分析】 【十三、如何进行独立产品分析】 【十四、如何进行竞品分析】 【十五、如何进行完整的产品功能设计】 【十六、如何针对性...
  • ERP的使用问题汇总 1 包装物+五金与成品库管怎么在一个表里填不同的 ...虽减少库管的工作重复性该文档文档投稿赚钱网作品版权所有违责必纠 3 成品库要自己的收发存有自己的期初入库出 库库存表要调用才能出来这样成
  • 精品文档 你我共享 UI 设计中的用户需求分析 UI 设计中怎么做用户需求分析这个问题 我们可以这样理解在做产品时其实跟谈恋爱很像 你要有一个准确的定位这是产品设计的方向也是需求文档和设计产出的判断标准 此外产品...
  • 文档前半部分是一步一步怎么配置mysql_router,然后测试,后半部分是一步一步配置常用的MHA高可用工具和测试,文档详细清楚,基本上按照文档步骤一步步下去都能配置成功
  • 怎么做文档测试 ? 仔细阅读 跟随每个步骤 检查每个图形 尝试每个示例 , 检查文档 的编写是否满足文档编写的目的 , 内容是否齐全正确完善 . 标记是否正确 . 软件测试分哪 2 种方法分别适合什么情况 软件测试分 2 ...
  • <code class="language-python">import os import docx ...[金山文档] test2.docx <p><img alt="" height="938" src="https://img-ask.csdnimg.cn/upload/1614956662799.png" width="1913" /></p>
  • IntelliJ IDEA是一个非常好用的开发工具,JAVA开发经常会引入jar包,但是这些jar包在打包部署的时候怎么批量导出呢?文档了具体的介绍。
  • 该资源是基于quartus以及modelsim的FPGA开发流程全过程操作介绍,其中包括一步一步怎么操作截图。快速完成FPGA开发的在...如果有什么问题可以直接向我联系,该文档是我在学习过程中自己的笔记,存在较多的自我观点。
  • VS2010中使用C++创建和使用DL.docx,文档加代码,全了。工程代码下载: 1.生成动态链接库(_declspec(dllexport)方式导出函数) 2.生成动态链接库(以.def文件(模块定义文件)方式导出函数) 3.以加载时动态链接方式...
  • 比如用户发过来一个doc文档,但是我... 那我用poi处理时应该怎么做?可以识别吗? 我查了一下文档没有找到这部分的。。。大多网上的例子都是知道上传的是wps还是word。 我试了下发现不进行分类处理好像会有乱码。。。
  • 怎么也不成功.求教 ``` string strDirectory = System.IO.Directory.GetCurrentDirectory().ToString(); string strTempFileName = strDirectory + @"\temp000.docx"; Clipboard.Clear(); _Word._...
  • 求教:怎么使用poi hwpf接口操作doc文档,重点:需要操作doc的Node 比如说docx中可以用Node Node = XWPatagraph.getCTP().getDomNode();然后我们就可以用这个node好多xml节点操作了。我的问题:现在需要兼容doc格式...
  • word文件比较 Excel文件比较

    热门讨论 2010-09-14 11:15:53
    怎么样才能快速精确地比较出两份文件的异同呢?难道去问老总?用眼睛直接观察?小王犯愁了。 相信类似的问题,大家在日常工作中也会经常遇到,面对电脑以及公司网络上各种版本的文件,还有一些修改过多少次的文档...
  • 最近使用电脑时突然发现桌面的word文档图标变成了空白,之前也遇到过这个问题,但一时想不起来之前是怎么解决的(只记得是跟注册表相关),遂上网查找了一番,经过一两个小时折腾后终于解决了问题,遂记录一下分享...
  • 本帖与http://download.csdn.net/detail/crocostone/3812944的区别是:旧帖的资源,图片不能编辑,本帖的资源,图片能编辑。...资源是docx文档,用word 2007打开。带完整目录,图片可编辑。最适合学习笔记!
  • poi最新版本及收集的帮助资料

    热门讨论 2013-03-23 11:46:21
    poi帮助.docx POI中文帮助文档.pdf poi中文教程.doc第一章 POI简介 实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中,常常有客户这样子...
  • 需要设置为键盘上的按键,按键名请查询 G-series Lua API 参考文档.docx 如需关闭,请设置 autoPressAimKey = "" 该功能不兼容 AimingSettings = "default" 默认兼容 AimingSettings = "recommend",但是会影响...
  • golang怎么做代码优化 golang隐藏技能:怎么访问私有成员 问题排查 trace pprof 源码阅读 sync.map net/http i/o timeout , 希望你不要踩到这个net/http包的坑 mutex channel context select实现原理 ...
  • 您尝试的是强制在使用Pandoc生成的单词文档中的“分页符”或“新页面”。我已经找到了在我的环境中做到这一点的方法,但我不确定它会在每个环境中工作。我的环境:* R-studio / Pandoc / MS-WORD从“* .Rmd”文件...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

docx文档怎么做