python reportlab 生成多页pdf
多页
from reportlab.pdfgen import canvas
from reportlab.platypus import (SimpleDocTemplate, Paragraph, PageBreak, Image, Spacer, Table, TableStyle)
from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
from reportlab.lib.pagesizes import LETTER, inch
from reportlab.graphics.shapes import Line, LineShape, Drawing
from reportlab.lib.colors import Colorclass FooterCanvas(canvas.Canvas):def __init__(self, *args, **kwargs):canvas.Canvas.__init__(self, *args, **kwargs)self.pages = []self.width, self.height = LETTERdef showPage(self):self.pages.append(dict(self.__dict__))self._startPage()def save(self):page_count = len(self.pages)for page in self.pages:self.__dict__.update(page)if (self._pageNumber > 1):self.draw_canvas(page_count)canvas.Canvas.showPage(self)canvas.Canvas.save(self)def draw_canvas(self, page_count):page = "Page %s of %s" % (self._pageNumber, page_count)x = 128self.saveState()self.setStrokeColorRGB(0, 0, 0)self.setLineWidth(0.5)self.drawImage("python_logo.png", self.width - inch * 8 - 5, self.height - 50, width=100, height=20,preserveAspectRatio=True)self.drawImage("python_logo.png", self.width - inch * 2, self.height - 50, width=100, height=30,preserveAspectRatio=True, mask='auto')self.line(30, 740, LETTER[0] - 50, 740)self.line(66, 78, LETTER[0] - 66, 78)self.setFont('Times-Roman', 10)self.drawString(LETTER[0] - x, 65, page)self.restoreState()class PDFPSReporte:def __init__(self, path):self.path = pathself.styleSheet = getSampleStyleSheet()self.elements = []# colors - Azul turkeza 367AB3self.colorOhkaGreen0 = Color((45.0 / 255), (166.0 / 255), (153.0 / 255), 1)self.colorOhkaGreen1 = Color((182.0 / 255), (227.0 / 255), (166.0 / 255), 1)self.colorOhkaGreen2 = Color((140.0 / 255), (222.0 / 255), (192.0 / 255), 1)# self.colorOhkaGreen2 = Color((140.0/255), (222.0/255), (192.0/255), 1)self.colorOhkaBlue0 = Color((54.0 / 255), (122.0 / 255), (179.0 / 255), 1)self.colorOhkaBlue1 = Color((122.0 / 255), (180.0 / 255), (225.0 / 255), 1)self.colorOhkaGreenLineas = Color((50.0 / 255), (140.0 / 255), (140.0 / 255), 1)self.firstPage()self.nextPagesHeader(True)self.remoteSessionTableMaker()self.nextPagesHeader(False)self.inSiteSessionTableMaker()self.nextPagesHeader(False)self.extraActivitiesTableMaker()self.nextPagesHeader(False)self.summaryTableMaker()# Buildself.doc = SimpleDocTemplate(path, pagesize=LETTER)self.doc.multiBuild(self.elements, canvasmaker=FooterCanvas)def firstPage(self):img = Image('python_logo.png', kind='proportional')img.drawHeight = 0.5 * inchimg.drawWidth = 2.4 * inchimg.hAlign = 'LEFT'self.elements.append(img)spacer = Spacer(30, 100)self.elements.append(spacer)img = Image('python_logo.png')img.drawHeight = 2.5 * inchimg.drawWidth = 5.5 * inchself.elements.append(img)spacer = Spacer(10, 250)self.elements.append(spacer)psDetalle = ParagraphStyle('Resumen', fontSize=9, leading=14, justifyBreaks=1, alignment=TA_LEFT,justifyLastLine=1)text = """REPORTE DE SERVICIOS PROFESIONALES<br/>Empresa: Nombre del Cliente<br/>Fecha de Inicio: 23-Oct-2019<br/>Fecha de actualización: 01-Abril-2020<br/>"""paragraphReportSummary = Paragraph(text, psDetalle)self.elements.append(paragraphReportSummary)self.elements.append(PageBreak())def nextPagesHeader(self, isSecondPage):if isSecondPage:psHeaderText = ParagraphStyle('Hed0', fontSize=16, alignment=TA_LEFT, borderWidth=3,textColor=self.colorOhkaGreen0)text = 'REPORTE DE SESIONES'paragraphReportHeader = Paragraph(text, psHeaderText)self.elements.append(paragraphReportHeader)spacer = Spacer(10, 10)self.elements.append(spacer)d = Drawing(500, 1)line = Line(-15, 0, 483, 0)line.strokeColor = self.colorOhkaGreenLineasline.strokeWidth = 2d.add(line)self.elements.append(d)spacer = Spacer(10, 1)self.elements.append(spacer)d = Drawing(500, 1)line = Line(-15, 0, 483, 0)line.strokeColor = self.colorOhkaGreenLineasline.strokeWidth = 0.5d.add(line)self.elements.append(d)spacer = Spacer(10, 22)self.elements.append(spacer)def remoteSessionTableMaker(self):psHeaderText = ParagraphStyle('Hed0', fontSize=12, alignment=TA_LEFT, borderWidth=3,textColor=self.colorOhkaBlue0)text = 'SESIONES REMOTAS'paragraphReportHeader = Paragraph(text, psHeaderText)self.elements.append(paragraphReportHeader)spacer = Spacer(10, 22)self.elements.append(spacer)"""Create the line items"""d = []textData = ["No.", "Fecha", "Hora Inicio", "Hora Fin", "Tiempo Total"]fontSize = 8centered = ParagraphStyle(name="centered", alignment=TA_CENTER)for text in textData:ptext = "<font size='%s'><b>%s</b></font>" % (fontSize, text)titlesTable = Paragraph(ptext, centered)d.append(titlesTable)data = [d]lineNum = 1formattedLineData = []alignStyle = [ParagraphStyle(name="01", alignment=TA_CENTER),ParagraphStyle(name="02", alignment=TA_LEFT),ParagraphStyle(name="03", alignment=TA_CENTER),ParagraphStyle(name="04", alignment=TA_CENTER),ParagraphStyle(name="05", alignment=TA_CENTER)]for row in range(10):lineData = [str(lineNum), "Miércoles, 11 de diciembre de 2019","17:30", "19:24", "1:54"]# data.append(lineData)columnNumber = 0for item in lineData:ptext = "<font size='%s'>%s</font>" % (fontSize - 1, item)p = Paragraph(ptext, alignStyle[columnNumber])formattedLineData.append(p)columnNumber = columnNumber + 1data.append(formattedLineData)formattedLineData = []# Row for totaltotalRow = ["Total de Horas", "", "", "", "30:15"]for item in totalRow:ptext = "<font size='%s'>%s</font>" % (fontSize - 1, item)p = Paragraph(ptext, alignStyle[1])formattedLineData.append(p)data.append(formattedLineData)# print(data)table = Table(data, colWidths=[50, 200, 80, 80, 80])tStyle = TableStyle([ # ('GRID',(0, 0), (-1, -1), 0.5, grey),('ALIGN', (0, 0), (0, -1), 'LEFT'),# ('VALIGN', (0, 0), (-1, -1), 'TOP'),("ALIGN", (1, 0), (1, -1), 'RIGHT'),('LINEABOVE', (0, 0), (-1, -1), 1, self.colorOhkaBlue1),('BACKGROUND', (0, 0), (-1, 0), self.colorOhkaGreenLineas),('BACKGROUND', (0, -1), (-1, -1), self.colorOhkaBlue1),('SPAN', (0, -1), (-2, -1))])table.setStyle(tStyle)self.elements.append(table)def inSiteSessionTableMaker(self):self.elements.append(PageBreak())psHeaderText = ParagraphStyle('Hed0', fontSize=12, alignment=TA_LEFT, borderWidth=3,textColor=self.colorOhkaBlue0)text = 'SESIONES EN SITIO'paragraphReportHeader = Paragraph(text, psHeaderText)self.elements.append(paragraphReportHeader)spacer = Spacer(10, 22)self.elements.append(spacer)"""Create the line items"""d = []textData = ["No.", "Fecha", "Hora Inicio", "Hora Fin", "Tiempo Total"]fontSize = 8centered = ParagraphStyle(name="centered", alignment=TA_CENTER)for text in textData:ptext = "<font size='%s'><b>%s</b></font>" % (fontSize, text)titlesTable = Paragraph(ptext, centered)d.append(titlesTable)data = [d]lineNum = 1formattedLineData = []alignStyle = [ParagraphStyle(name="01", alignment=TA_CENTER),ParagraphStyle(name="02", alignment=TA_LEFT),ParagraphStyle(name="03", alignment=TA_CENTER),ParagraphStyle(name="04", alignment=TA_CENTER),ParagraphStyle(name="05", alignment=TA_CENTER)]for row in range(10):lineData = [str(lineNum), "Miércoles, 11 de diciembre de 2019","17:30", "19:24", "1:54"]# data.append(lineData)columnNumber = 0for item in lineData:ptext = "<font size='%s'>%s</font>" % (fontSize - 1, item)p = Paragraph(ptext, alignStyle[columnNumber])formattedLineData.append(p)columnNumber = columnNumber + 1data.append(formattedLineData)formattedLineData = []# Row for totaltotalRow = ["Total de Horas", "", "", "", "30:15"]for item in totalRow:ptext = "<font size='%s'>%s</font>" % (fontSize - 1, item)p = Paragraph(ptext, alignStyle[1])formattedLineData.append(p)data.append(formattedLineData)# print(data)table = Table(data, colWidths=[50, 200, 80, 80, 80])tStyle = TableStyle([ # ('GRID',(0, 0), (-1, -1), 0.5, grey),('ALIGN', (0, 0), (0, -1), 'LEFT'),# ('VALIGN', (0, 0), (-1, -1), 'TOP'),("ALIGN", (1, 0), (1, -1), 'RIGHT'),('LINEABOVE', (0, 0), (-1, -1), 1, self.colorOhkaBlue1),('BACKGROUND', (0, 0), (-1, 0), self.colorOhkaGreenLineas),('BACKGROUND', (0, -1), (-1, -1), self.colorOhkaBlue1),('SPAN', (0, -1), (-2, -1))])table.setStyle(tStyle)self.elements.append(table)def extraActivitiesTableMaker(self):self.elements.append(PageBreak())psHeaderText = ParagraphStyle('Hed0', fontSize=12, alignment=TA_LEFT, borderWidth=3,textColor=self.colorOhkaBlue0)text = 'OTRAS ACTIVIDADES Y DOCUMENTACIÓN'paragraphReportHeader = Paragraph(text, psHeaderText)self.elements.append(paragraphReportHeader)spacer = Spacer(10, 22)self.elements.append(spacer)"""Create the line items"""d = []textData = ["No.", "Fecha", "Hora Inicio", "Hora Fin", "Tiempo Total"]fontSize = 8centered = ParagraphStyle(name="centered", alignment=TA_CENTER)for text in textData:ptext = "<font size='%s'><b>%s</b></font>" % (fontSize, text)titlesTable = Paragraph(ptext, centered)d.append(titlesTable)data = [d]lineNum = 1formattedLineData = []alignStyle = [ParagraphStyle(name="01", alignment=TA_CENTER),ParagraphStyle(name="02", alignment=TA_LEFT),ParagraphStyle(name="03", alignment=TA_CENTER),ParagraphStyle(name="04", alignment=TA_CENTER),ParagraphStyle(name="05", alignment=TA_CENTER)]for row in range(10):lineData = [str(lineNum), "Miércoles, 11 de diciembre de 2019","17:30", "19:24", "1:54"]# data.append(lineData)columnNumber = 0for item in lineData:ptext = "<font size='%s'>%s</font>" % (fontSize - 1, item)p = Paragraph(ptext, alignStyle[columnNumber])formattedLineData.append(p)columnNumber = columnNumber + 1data.append(formattedLineData)formattedLineData = []# Row for totaltotalRow = ["Total de Horas", "", "", "", "30:15"]for item in totalRow:ptext = "<font size='%s'>%s</font>" % (fontSize - 1, item)p = Paragraph(ptext, alignStyle[1])formattedLineData.append(p)data.append(formattedLineData)# print(data)table = Table(data, colWidths=[50, 200, 80, 80, 80])tStyle = TableStyle([ # ('GRID',(0, 0), (-1, -1), 0.5, grey),('ALIGN', (0, 0), (0, -1), 'LEFT'),# ('VALIGN', (0, 0), (-1, -1), 'TOP'),("ALIGN", (1, 0), (1, -1), 'RIGHT'),('LINEABOVE', (0, 0), (-1, -1), 1, self.colorOhkaBlue1),('BACKGROUND', (0, 0), (-1, 0), self.colorOhkaGreenLineas),('BACKGROUND', (0, -1), (-1, -1), self.colorOhkaBlue1),('SPAN', (0, -1), (-2, -1))])table.setStyle(tStyle)self.elements.append(table)def summaryTableMaker(self):self.elements.append(PageBreak())psHeaderText = ParagraphStyle('Hed0', fontSize=12, alignment=TA_LEFT, borderWidth=3,textColor=self.colorOhkaBlue0)text = 'REGISTRO TOTAL DE HORAS'paragraphReportHeader = Paragraph(text, psHeaderText)self.elements.append(paragraphReportHeader)spacer = Spacer(10, 22)self.elements.append(spacer)"""Create the line items"""tStyle = TableStyle([('ALIGN', (0, 0), (0, -1), 'LEFT'),# ('VALIGN', (0, 0), (-1, -1), 'TOP'),("ALIGN", (1, 0), (1, -1), 'RIGHT'),('LINEABOVE', (0, 0), (-1, -1), 1, self.colorOhkaBlue1),('BACKGROUND', (-2, -1), (-1, -1), self.colorOhkaGreen2)])fontSize = 8lineData = [["Sesiones remotas", "30:15"],["Sesiones en sitio", "00:00"],["Otras actividades", "00:00"],["Total de horas consumidas", "30:15"]]# for row in lineData:# for item in row:# ptext = "<font size='%s'>%s</font>" % (fontSize-1, item)# p = Paragraph(ptext, centered)# formattedLineData.append(p)# data.append(formattedLineData)# formattedLineData = []table = Table(lineData, colWidths=[400, 100])table.setStyle(tStyle)self.elements.append(table)# Total de horas contradas vs horas consumidasdata = []formattedLineData = []lineData = [["Total de horas contratadas", "120:00"],["Horas restantes por consumir", "00:00"]]# for row in lineData:# for item in row:# ptext = "<b>{}</b>".format(item)# p = Paragraph(ptext, self.styleSheet["BodyText"])# formattedLineData.append(p)# data.append(formattedLineData)# formattedLineData = []table = Table(lineData, colWidths=[400, 100])tStyle = TableStyle([('ALIGN', (0, 0), (0, -1), 'LEFT'),("ALIGN", (1, 0), (1, -1), 'RIGHT'),('BACKGROUND', (0, 0), (1, 0), self.colorOhkaBlue1),('BACKGROUND', (0, 1), (1, 1), self.colorOhkaGreen1),])table.setStyle(tStyle)spacer = Spacer(10, 50)self.elements.append(spacer)self.elements.append(table)if __name__ == '__main__':report = PDFPSReporte('psreport.pdf')
相关文章:
python reportlab 生成多页pdf
多页 from reportlab.pdfgen import canvas from reportlab.platypus import (SimpleDocTemplate, Paragraph, PageBreak, Image, Spacer, Table, TableStyle) from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY from reportlab.lib.styles import P…...
word 多级目录的问题
一、多级标题自动编号 --> 制表符 -> 空格 网址: 【Word技巧】2 标题自动编号——将多级列表链接到样式 - YouTube 二、多级列表 --> 正规形式编号 网址:Word 教学 - 定框架:文档格式与多级标题! - YouTube 三、目…...
python使用mitmproxy和mitmdump抓包之拦截和修改包(四)
我认为mitmproxy最强大的地方,就是mitmdump可以结合python代理,灵活拦截和处理数据包。 首先,mitmdump的路径如下:(使用pip3 install mitmproxy安装的情况,参考我的文章python使用mitmproxy和mitmdump抓包…...
邓俊辉《数据结构》→ “2.6.5 二分查找(版本A)”之“成功查找长度”递推式推导
【问题描述】 邓俊辉的《数据结构(C语言版)(第3版)》(ISBN:9787302330646)中,开始于第48页的“2.6.5 二分查找(版本A)”内容在第50页详述了“成功查找长度”的…...
Linux文件查找,别名,用户组综合练习
1.文件查看: 查看/etc/passwd文件的第5行 [rootserver ~]# head -5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologi…...
【MATLAB第77期】基于MATLAB代理模型算法的降维/特征排序/数据处理回归/分类问题MATLAB代码实现【更新中】
【MATLAB第77期】基于MATLAB代理模型算法的降维/特征排序/数据处理回归/分类问题MATLAB代码实现 本文介绍基于libsvm代理模型算法的特征排序方法合集,包括: 1.基于每个特征预测精度进行排序(libsvm代理模型) 2.基于相关系数corr的…...
第三章 图标辅助元素的定制
第三章 图标辅助元素的定制 1.认识图表常用的辅助元素 图表的辅助元素是指除了根据数据绘制的图形之外的元素,常用的辅助元素包括坐标轴、标题、图例、网格、参考线、参考区域、注释文本和表格,它们都可以对图形进行补充说明。 上图中图表常用辅…...
【前端】ECMAScript6从入门到进阶
【前端】ECMAScript6从入门到进阶 1.ES6简介及环境搭建 1.1.ECMAScript 6简介 (1)ECMAScript 6是什么 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标ÿ…...
Android Shape设置背景
设置背景时,经常这样 android:background“drawable/xxx” 。如果是纯色图片,可以考虑用 shape 替代。 shape 相比图片,减少资源占用,缩减APK体积。 开始使用。 <?xml version"1.0" encoding"utf-8"?…...
什么是GraphQL?它与传统的REST API有什么不同?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是GraphQL?⭐ 与传统的REST API 的不同⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣…...
如何定时备份使用Docker构建的MySQL容器中的数据库
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…...
Java【手撕链表】LeetCode 143. “重排链表“, 图文详解思路分析 + 代码
文章目录 前言一、两数相加1, 题目2, 思路分析2,1 找到中间结点2.2, 逆序后半段链表2.3, 合并两个链表 3, 代码 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管…...
C语言 cortex-A7核 按键中断 实验【重点】
一、KEY1 include/key.h #ifndef __KEY_H__ #define __KEY_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_exti.h" #include "stm32mp1xx_gic.h"//RCC/GPIO章节初始化 void hal_rcc_gpio_init…...
freertos中函数调用和启动第一个任务(栈相关!!!!!!)
本内容仅就一些较难理解的点讲解,请结合其它文章实用 在函数调用时,m3的处理器使用r0-r3共四个寄存器传参,其余的使用栈传参。 但是,如果传入的参数是全局变量,则不需传参,因为全局变量在函数内部是可见的…...
【PHP】如何关闭buffer实时输出内容到前端
前言 默认情况下,我们在PHP里使用echo等函数输出的内容,是不会马上发送给前端的,原因是有 buffer 的存在,buffer又分两处,一处是PHP本身的buffer,另一处是Nginx的buffer。只有当buffer满了之后,…...
Scala第二章节
Scala第二章节 scala总目录 章节目标 掌握变量, 字符串的定义和使用掌握数据类型的划分和数据类型转换的内容掌握键盘录入功能理解Scala中的常量, 标识符相关内容 1. 输出语句和分号 1.1 输出语句 方式一: 换行输出 格式: println(里边写你要打印到控制台的数据);方式二…...
Spring修炼之路(2)依赖注入(DI)
一、概念 依赖注入(Dependency Injection,DI)。 测试pojo类 : Address.java 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 二、 注入方式 2.1构造器注入 我们在之前的案例已经…...
编写Android.mk / Android.bp 引用三方 jar 包,aar包,so 库
一.前言 在Android10之后,所有项目工程中,官方推荐使用Android.bp去编译构建,以前使用Android.mk构建的项目随着版本迭代升级,慢慢需要变更为Android.bp, 两者的语法都需要去了解并熟练使用。 笔者之前写过Android.mk的…...
【kylin】【ubuntu】搭建本地源
文章目录 一、制作一个本地源仓库制作ubuntu本地仓库制作kylin本地源 二、制作内网源服务器ubuntu系统kylin系统 三、使用内网源ubuntukylin 一、制作一个本地源仓库 制作ubuntu本地仓库 首先需要构建一个本地仓库,用来存放软件包 mkdir -p /path/to/localname/pac…...
为什么 Go 语言 struct 要使用 tags
在 Go 语言中,struct 是一种常见的数据类型,它可以用来表示复杂的数据结构。在 struct 中,我们可以定义多个字段,每个字段可以有不同的类型和名称。 除了这些基本信息之外,Go 还提供了 struct tags,它可以用…...
WebGL笔记:WebGL中JS与GLSL ES 语言通信,着色器间的数据传输示例:用鼠标控制点位
用鼠标控制点位 <canvas id"canvas"></canvas><!-- 顶点着色器 --> <script id"vertexShader" type"x-shader/x-vertex">attribute vec4 a_Position;void main() {// 点位gl_Position a_Position;// 尺寸gl_PointSize…...
算法 主持人调度-(双指针+贪心)
牛客网: BM96 题目: 一个主持人只能参加一个活动,至少需要多少主持人 思路: 对start, end排序从小到大;初始化指针l, r 0, 0;start[r]< end[l]时需要累加人数同时r,否则l,r同时移动;直至不再满中l<n &&am…...
Elasticsearch 集群时的内部结构是怎样的?
Apache Lucene : Flush, Commit Elasticsearch 是一个基于 Apache Lucene 构建的搜索引擎。 它利用 Lucene 的倒排索引、查询处理和返回搜索结果等功能来执行搜索。 它还扩展了 Lucene 的功能,添加分布式处理功能以支持大型数据集的搜索。 让我们看一下 Apache Luc…...
IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!...
最近我们得知,Apache IoTDB 多项性能表现位居 benchANT 时序数据库排行榜(Time Series: DevOps)性能排行第一名!(榜单地址:https://benchANT.com/ranking/database-ranking) benchANT 位于德国&…...
react项目优化
随着项目体积增大,打包的文件体积会越来越大,需要优化,原因无非就是引入的第三方插件比较大导致,下面我们先介绍如何分析各个文件占用体积的大小。 1.webpack-bundle-analyzer插件 如果是webpack作为打包工具的项目可以使用&…...
青藏高原1-km分辨率生态环境质量变化数据集(2000-2020)
青藏高原平均海拔4000米以上,人口1300万,是亚洲九大河流的源头,为超过15亿人口提供淡水、食物和其他生态系统服务,被誉为地球第三极和亚洲水塔。然而,在该地区的人与自然的关系的研究是有限的,尤其是在精细…...
Nature Communications | 张阳实验室:端到端深度学习实现高精度RNA结构预测
RNA分子是基因转录的主要执行者,也是细胞运作的隐形功臣。它们在基因表达调控、支架构建以及催化活性等多个生命过程中都扮演着关键角色。虽然RNA如此重要,但由于实验数据的缺乏,准确预测RNA 的三维空间结构仍然是目前计算生物学面临的重大挑…...
提升您的Mac文件拖拽体验——Dropzone 4 for mac
大家都知道,在Mac上进行文件拖拽是一件非常方便的事情。然而,随着我们在工作和生活中越来越多地使用电脑,我们对于这个简单操作的需求也越来越高。为了让您的文件拖拽体验更加高效和便捷,今天我们向大家介绍一款强大的工具——Dro…...
Vue之transition组件
Vue提供了transition组件,使用户可以更便捷地添加过渡动画效果。 transition组件 transition组件也是一个抽象组件,并不会渲染出真实dom。Vue会在其第一个真实子元素上添加过渡效果。 props render 这里将render分为两部分,第一部分界定真…...
lenovo联想笔记本电脑ThinkPad X13 AMD Gen2(20XH,20XJ)原装出厂Windows10系统镜像
联想原厂Win10系统,自带所有驱动、出厂主题壁纸、系统属性联想LOGO专属标志、Office办公软件、联想电脑管家等预装程序 链接:百度网盘 请输入提取码 提取码:dolg 适用于型号:20XL,20XJ,20XG,21A1,20XK,20XH,20XF,21A0 所需要…...
开发工具宏怎么使用/无锡seo网络推广
文章目录一阶逻辑的语法和语义全称量词和存在量词等词equality运用一阶逻辑一阶逻辑的断言和查询亲属关系论域(the kinship domain)总结资源分享一阶逻辑的语法和语义 命题逻辑是我们最先学的逻辑,比较简单,也比较好理解。 因为命题逻辑表达能力不够&am…...
民治营销网站制作/北京网站优化经理
Asurplus-LayUI:【SpringBoot】三十三、SpringBootLayUI后台管理系统开发脚手架 本期给大家推荐我自己写一个开源项目:Asurplus-VUE,本着减少大量重复开发工作的原则,使得在项目中能够实现快速开发 1、前言 本项目本着避免重复…...
网站开发报价模板/微信营销推广软件
1 " 使用格式转换软件可以将某种格式的视频文件转换为其它格式的视频文件。 T()正确()错误2 " 在 Excel 中,活动单元格地址显示在名称框内。 T()正确()错误3 " 在 Excel 中.工作表的数量是固定的 ,不能再次添加。 F()正确()错误4 " 在一个 Exce|单元格中输…...
西安网站建设首选/优化系统的软件
原标题:「数控干货」基于UG CLS文件使用 C 语言制作智能后处理工具1 前言UG 后处理操作是 UGCAM 数控加工工作中一个重要环节,主要任务是把在 UG 加工环境下生成的加工刀位文件转换成机床可接受的数控代码文件。UG 本身提供了强大的 Post Builder 后处理…...
html5网站搭建/电脑优化大师有用吗
作者:老K玩代码来源:toutiao.com/i6882755471015576072Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。…...
拖拽建站平台/什么平台可以免费打广告
七、招生问答1、上课时间怎么安排?答:因为我们是一对一上课。所以,上课时间是由您自己来安排,您什么有空,就什么时候来学习。2、我很笨,学不会怎么办?答:其实人与人之间,…...