再会,
我有一个以下设计的数组/列表:data = [['colour', 'apple', 'pear', 'peach'], ['RED', 1, 2, 5], ['YELLOW', 6, 7, 9]]。我看过很多教程解释如何添加内部网格和盒子。但我希望有一些接近这样的:
您知道如何仅添加水平边框吗?
我正在创建包含许多页面的 pdf 文件。我希望第一页是纵向的,其余页面是横向的。我试过,
story.append(NextPageTemplate('landscape')) 参考
但我得到了,
ValueError: can't find template('landscape') handle_nextPageTemplate args=('landscape',)
我有二维码PIL Image和一些阿拉伯文本,并尝试将二维码图像放入 pdf 文件中。\n我正在使用reportlab.pdfgen\'s canvas。
经过大量搜索arabic_reshaper,我发现有人的项目不起作用,并且在阅读源代码后textobject.py我发现我需要安装pyfribidi,安装了它,然后使用drawString(x,y,"\xd9\x85\xd8\xb1\xd8\xa8\xd8\xad\xd8\xa7",RTL)没有任何反应。
我正在按照arabic_reshaper存储库中的描述使用,并且RTL来自pyfribidi
import arabic_reshaper\n\nreshaped = arabic_reshaper.reshape(exam_name)\nc.drawString(x - 100, y - 20, reshaped, direction=RTL)\n\nRun Code Online (Sandbox Code Playgroud)\n\n结果总是相同的,正如您在右侧看到的那样,英语字符串正常显示,阿拉伯语字符串显示为黑色像素:
\n\n
如果您对另一个图书馆有任何其他建议,我们也将不胜感激。
\n在reportlab 用户指南(第79页)中,这是图像插入表格的方式.
I = Image('../images/replogo.gif')
I.drawHeight = 1.25*inch*I.drawHeight / I.drawWidth
I.drawWidth = 1.25*inch
P0 = Paragraph('''
<b>A pa<font color=red>r</font>a<i>graph</i></b>
<super><font color=yellow>1</font></super>''',
styleSheet["BodyText"])
P = Paragraph('''
<para align=center spaceb=3>The <b>ReportLab Left
<font color=red>Logo</font></b>
Image</para>''',
styleSheet["BodyText"])
data= [['A', 'B', 'C', P0, 'D'],
['00', '01', '02', [I,P], '04'],
['10', '11', '12', [P,I], '14'],
['20', '21', '22', '23', '24'],
['30', '31', '32', '33', '34']]
t=Table(data,style=[('GRID',(1,1),(-2,-2),1,colors.green),
('BOX',(0,0),(1,-1),2,colors.red),
('LINEABOVE',(1,2),(-2,2),1,colors.blue),
('LINEBEFORE',(2,1),(2,-2),1,colors.pink),
('BACKGROUND', (0, 0), (0, 1), colors.pink),
('BACKGROUND', (1, 1), (1, 2), colors.lavender),
('BACKGROUND', (2, 2), …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用"ReportLab"通过Python生成PDF,我想添加一个图像.我必须使用的图像是PNG,但它具有以下格式:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAgAEf (and it continues)
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做,首先我认为我需要将URI转换为图像,但我不知道该怎么做,然后使用类似的东西:
import Image
im = Image.open("infile.png")
im.save("outfile.jpg")
Run Code Online (Sandbox Code Playgroud)
为了将.PNG转换为.JPG.有人能帮我吗?
python image reportlab image-processing python-imaging-library
为了使用reportlab/python生成PDF文件,可以使用所谓的"段落XML标记标记"非常容易地定义文本的颜色(以及许多其他东西).例如绿色文字:
rapport.append(Paragraph('<font size = 14 color = "green" > <b> Toto is a naugthy boy </b></font>', styles['Left']))
Run Code Online (Sandbox Code Playgroud)
但是,是否可以定义我们自己的颜色(例如使用RGB代码)?
尝试打印使用reportlab生成的PDF,但ShellExecute()抛出异常TypeError: Objects of type 'bytes' can not be converted to Unicode.
我已经尝试过了pdf.decode('utf-8'),但我得到了UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 10: invalid start byte
from io import BytesIO
import win32api
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
x = 100
y = 100
buffer = BytesIO()
p = canvas.Canvas(buffer, pagesize=letter)
p.drawString(x, y, "Hello World")
p.showPage()
p.save()
pdf = buffer.getvalue()
buffer.close()
win32api.ShellExecute(0, "print", pdf, None, ".", 0)
Run Code Online (Sandbox Code Playgroud) 我的数据库中有布尔值,在 Django 项目中,我将它们打印为 pdf。它非常小但我喜欢它们打印为是/否而不是真/假。
我知道如果我在模板中输出布尔值,我可以使用 yesno:
https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#yesno
但我在一个函数中输出这些。我也知道我可以使用 if/else 语句,但希望有一些更简洁的东西。
IE - 是否有一种简短、干净的方法将布尔值转换为自定义字符串。
谢谢你。
我有以下DataFrame:
问题是,当我尝试做一个表出来summary_debit这是一个DataFrame,我会收到以下错误:ValueError: <Table@0x2231B045208 unknown rows x unknown cols>... invalid data type
from reportlab.pdfgen import canvas
from reportlab.platypus import *
from reportlab.lib import colors
colwidths = 50
GRID_STYLE = TableStyle(
[('GRID', (0, 0), (-1, -1), 0.25, colors.pink),
('ALIGN', (1, 0), (-1, -1), 'RIGHT')])
t1 = Table(summary_debit)
Run Code Online (Sandbox Code Playgroud) 我有一个图像路径和相应的坐标作为字典.例如:{'coords':[u'530,88,592,99'],'filepath':1.jpg},{'coords':[u'7,12,152,85'],'filepath':2.jpg },{'coords':[u'448,12,594,86'],'filepath':3.jpg}我想根据图像的相对坐标生成包含所有图像的单个PDF.我想,有可能使用reportlab,但没有最初的运气.提前致谢.