# -*- coding: utf-8 -*-
import random
from reportlab import platypus
from reportlab.lib.units import inch
from reportlab.lib.pagesizes import A4, landscape #最后生成横向打印的PDF
from reportlab.lib import colors
def genList():
ret = set()
while True:
a = random.randint(1, 20)
b = random.randint(1, 20)
c = random.randint(1, 20)
if a + b + c <= 20 and (a > 10 or b > 10 or c > 10):
ret.add( '%-2d + %-2d + %-2d =' % (a, b, c) )
if len(ret) == 25: break
while True:
a = random.randint(1, 20)
b = random.randint(1, 20)
c = random.randint(1, 20)
if a + b <= 20 and a + b - c >= 0 and (a > 10 or b > 10 or c > 10):
ret.add( '%-2d + %-2d - %-2d =' % (a, b, c) )
if len(ret) == 50: break
while True:
a = random.randint(1, 20)
b = random.randint(1, 20)
c = random.randint(1, 20)
if a - b >= 0 and a - b + c <= 20 and (a > 10 or b > 10 or c > 10):
ret.add( '%-2d - %-2d + %-2d =' % (a, b, c) )
if len(ret) == 75: break
while True:
a = random.randint(11, 20)
b = random.randint(1, 20)
c = random.randint(1, 20)
if a - b - c >= 0 and (a > 10 or b > 10 or c > 10):
ret.add( '%-2d - %-2d - %-2d =' % (a, b, c) )
if len(ret) == 100: break
ret = list(ret)
random.shuffle(ret)
return ret
'''for i in genList():
print i'''
def genTable():
data = []
items = genList()
for i in range(0, len(items), 5):
data.append(items[i:i+5])
# Courier 是 reportlab 缺省定义的等宽字体
# (0,0)/(-1,-1)说的是style运用范围,从左上到右下
tablestyle = [('FONT', (0,0), (-1,-1), 'Courier', 12),
('LINEAFTER', (0,0), (-2,-1), 1, colors.black)]
return platypus.Table(data, 2.2*inch, 0.35*inch, tablestyle)
import sys
try:
n = int(sys.argv[1]) #恩恩,生成一个多页的PDF
except:
n = 1
try:
fname = sys.argv[2]
except:
fname = '20plus100.pdf'
doc = platypus.SimpleDocTemplate(fname, topMargin=0.5*inch, bottomMargin=0.5*inch, title='DaDa Math', author='qyb')
elements = []
for i in range(n):
elements.append(genTable())
elements.append(platypus.flowables.PageBreak())
doc.pagesize = landscape(A4)
doc.build(elements)
这个 功能需要用到python 的reportlab 包,,请下载安装
分享到:
相关推荐
"100以内加减法自动生成工具"就是一个很好的实例,它利用Python编程语言为小学一二年级的学生设计,帮助他们进行数学练习。这个工具可以自动生成100以内的加减法算式,并提供对应的答案,方便学生学习和家长或教师...
这是基于python写的一个小的程序,是20以内的加减法随机生成100道,看似简单,但通过少于20行代码的形式写出来却要在结构上下功夫。
### Python处理PDF及生成多层PDF实例代码 #### 一、引言 随着数字化时代的到来,PDF文件因其跨平台兼容性和格式保持不变的特点而成为办公文档的重要格式之一。Python作为一种强大的编程语言,提供了多种库来处理PDF...
本示例"Python提取pdf文件目录_Demo源码"就展示了如何使用Python从PDF文档中抽取书签(目录)并将其转换为JSON格式,这对于需要处理大量PDF文献或需要构建索引的项目非常有用。 首先,我们需要了解涉及到的主要...
利用python 实现十以内的加减法
本案例主要讲述了如何使用Python编写程序,来生成1000以内的随机加减法计算题目,并将这些题目导出到Excel文件中,便于孩子进行反复练习。 #### 二、技术栈介绍 1. **Python**:一种广泛使用的高级编程语言,以其...
### Python 实现随机加减法生成器 #### 一、项目背景与意义 在教育领域,尤其是基础数学教育中,让孩子们通过不断的练习来掌握基本的加减法运算能力是非常重要的。传统的方法往往是通过手工编写题目,这不仅耗时耗...
使用python给PDF添加目录
pythonpython生成爱心输出到文件python生成爱心输出到文件python生成爱心输出到文件python生成爱心输出到文件python生成爱心输出到文件python生成爱心输出到文件python生成爱心输出到文件python生成爱心输出到文件...
Python 混合加减法出题程序 Python源码Python 混合加减法出题程序 Python源码Python 混合加减法出题程序 Python源码Python 混合加减法出题程序 Python源码Python 混合加减法出题程序 Python源码Python 混合加减法...
Python是一种强大的编程语言,尤其适合处理数据和自动化任务,其中包括对PDF文件的处理。在这个场景中,我们将讨论如何使用Python来实现PDF图片文件的压缩。首先,我们需要理解PDF文件的结构,它可能包含文本、图像...
本主题将深入探讨如何使用Python库来创建PDF文件,以满足各种报告生成的需求。 1. **PyPDF2**: PyPDF2是Python中一个用于处理PDF文件的基础库,它提供了读取、合并、分割PDF文件的能力,但不支持生成新的PDF。如果...
Python实战自动办公-12 用Python将PDF文件转存为图片Python实战自动办公-12 用Python将PDF文件转存为图片Python实战自动办公-12 用Python将PDF文件转存为图片Python实战自动办公-12 用Python将PDF文件转存为图片...
标题 "python提取pdf文件目录.zip" 提示我们这个压缩包包含了一个使用Python编程语言来提取PDF文件目录的示例代码。PDF(Portable Document Format)文件是常见的文档格式,它的目录通常包含了章节、子章节等结构,...
巧用Python实现PDF文件转成Word(docx)文件 巧用Python实现PDF文件转成Word(docx)文件 巧用Python实现PDF文件转成Word(docx)文件 巧用Python实现PDF文件转成Word(docx)文件 巧用Python实现PDF文件转成Word...
本资源提供的"Python后台静默打印PDF文件附属执行程序"正是针对这一需求的解决方案,包含两个关键组件:Ghostscript和Gsprint。 **Ghostscript** 是一个开源的软件,它能够解析和处理PostScript以及PDF文件。它的...
可以画图、画表格、编辑文字,最后可以...2)建立一个空白list,以填充表格的形式插入各种文本框、图片等,最后生成PDF文档。 因为需要产生一份给用户看的报告,里面需要插入图片、表格等,所以采用的是第二种方法。
在本文中,我们将深入探讨如何使用Python编程语言制作词云图。词云图是一种视觉表示,它通过字体大小的差异来展示文本中词汇的出现频率。一般来说,出现频率越高的词汇,其在词云中的字体就越大。制作词云图是一个...
这个程序可以帮助用户快速生成PDF文件的预览图像,方便在不打开整个文档的情况下查看PDF的基本内容。下面我们将深入探讨该工具及其相关的Python开发和文件操作知识点。 首先,Python作为一种流行的编程语言,因其...