gpt4 book ai didi

python - 使用 Python 从现有 PDF 创建新 PDF

转载 作者:行者123 更新时间:2023-12-01 06:04:21 25 4
gpt4 key购买 nike

我正在努力如何在 Python 中使用另一个 PDF 作为模板来创建 PDF 报告。我有一个 PDF 文件(Template.pdf),可以用作每天创建报告的模板。Template.pdf 如下所示:

 ABC Corp
<小时/>
Daily Sales Report         Report Date:                                 
<小时/>

销售名称 订单数量 确认数量 发货数量

<小时/><小时/><小时/>

我需要以编程方式填写 ReportDate 和销售数据并准备 PDF 格式的报告,如下所示: ABC 公司

<小时/>
Daily Sales Report         Report Date: 20120117                        
<小时/>

销售名称 订单数量 确认数量 发货数量

<小时/>

杰森 1000 900 50

<小时/>

彼得 500 50 450

<小时/>

穆拉利 2000 1000 900

<小时/>

可以假设没有。销售人员的数量是固定的(即报告中的行数是固定的)。

最佳答案

您可以尝试reportlab,因为您的pdf模板相对简单。我不确定您将从哪里获取数据以及您的模板到底是什么样子,但我编写了一个小代码来让您查看或开始使用。如果您能阅读一下reportlab 的用户指南就更好了。

您可以查看 html 到 pdf 的 python 解决方案。这也应该是您正在寻找的内容。

报告实验室示例:

import datetime

from reportlab.pdfgen import canvas
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.pagesizes import A4, letter, inch, cm
from reportlab.platypus import Paragraph, SimpleDocTemplate, Table, TableStyle, Spacer, KeepTogether, CondPageBreak
from reportlab.lib import colors
from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT, TA_CENTER
styles = getSampleStyleSheet()

class Sales( object ):
def __init__(self):
self.salesname = 'Jason'
self.orderqty = 1000
self.confirmqty = 900
self.shipqty = 50

jason = Sales()

# get current date
date = datetime.date.today()
jahr = date.year
monat = date.month
tag = date.day

story = []

# Styles
styleN = styles["BodyText"]
styleN.alignment = TA_LEFT
styleBH = styles["Normal"]
styleBH.alignment = TA_CENTER
styleH = styles["Heading2"]

# Static texts
title = "ABC Corp"
subtitle = "Daily Sales Report"

# Headers
hdescrpcion = Paragraph('''<b>SalesName</b>''', styleBH)
hpartida = Paragraph('''<b>OrderQty</b>''', styleBH)
hcandidad = Paragraph('''<b>ConfirmedQty</b>''', styleBH)
hprecio_unitario = Paragraph('''<b>ShippedQty</b>''', styleBH)

# Date
mydate = Paragraph('''Report Date: '''+str(jahr)+'''-'''+str(monat)+'''-'''+str(tag), styleN)

# 2 col data
data_2col =[[subtitle,mydate]]
table2 = Table(data_2col, colWidths=[5.05 * cm, 5* cm])

# 4 col data
data= [[hdescrpcion, hpartida,hcandidad, hprecio_unitario],
[jason.salesname, jason.orderqty, jason.confirmqty, jason.shipqty]]

table = Table(data, colWidths=[2.05 * cm, 2.7 * cm, 5 * cm,
3* cm])

table.setStyle(TableStyle([
('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
]))

story.append(Paragraph(title,styleH))
story.append(Spacer(1, 12))
story.append(table2)
story.append(Spacer(1, 12))
story.append(table)

doc = SimpleDocTemplate('template.pdf',pagesize = A4,rightMargin=18,leftMargin=18,
topMargin=18,bottomMargin=18, showBoundary=False, allowSplitting = True)

doc.build(story)

关于python - 使用 Python 从现有 PDF 创建新 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com