形式发票生成器
概述
专为外贸SOHO - 车辆翻新出口业务设计的专业形式发票(Proforma Invoice)PDF生成系统。
主要功能
- ✅ 一键生成专业PDF发票
- ✅ 双语显示(中英文)
- ✅ 自动计算金额
- ✅ 支持自定义模板
- ✅ 批量生成支持
快速开始
1. 下载示例文件
下载完整示例包 - 包含模板、脚本和示例数据
2. 系统要求
3. 安装步骤
# 1. 创建虚拟环境
python3 -m venv invoice-venv
# 2. 安装Python依赖
invoice-venv/bin/pip install pdfkit jinja2
# 3. 下载系统文件
# 从本页面下载所有相关文件
文件结构
invoice-system/
├── proforma_invoice_template.html # HTML模板
├── generate_invoice.py # 生成脚本
├── sample_invoice_data.json # 示例数据
├── invoice-venv/ # Python虚拟环境
└── README.md # 使用说明
使用方法
基本使用
# 1. 修改数据文件
nano sample_invoice_data.json
# 2. 生成PDF
invoice-venv/bin/python generate_invoice.py
# 3. 查看生成的PDF
evince proforma_invoice_*.pdf
使用自定义数据
# 创建自定义数据文件
cp sample_invoice_data.json my_invoice.json
# 编辑数据
nano my_invoice.json
# 生成PDF
invoice-venv/bin/python generate_invoice.py my_invoice.json
数据文件格式
JSON结构
{
"buyer_name": "客户公司名称",
"buyer_address": "客户地址",
"buyer_city": "城市",
"buyer_country": "国家",
"buyer_phone": "电话",
"buyer_email": "邮箱",
"contact_person": "联系人",
"invoice_no": "PI-20260131-001",
"invoice_date": "2026-01-31",
"payment_terms": "T/T 30% in advance, 70% before shipment",
"delivery_terms": "FOB Shanghai Port, China",
"items": [
{
"description": "Renovated Heavy Duty Truck",
"quantity": 3,
"unit": "Unit",
"unit_price": 28500.00,
"hs_code": "87042390"
}
],
"shipping_cost": 4500.00,
"insurance": 850.00,
"other_charges": 320.00
}
模板定制
修改公司信息
编辑 proforma_invoice_template.html 中的卖方信息部分:
<!-- 公司logo区域 -->
<div class="company-logo">
<div class="logo-placeholder">
您的公司LOGO
</div>
</div>
<!-- 公司信息 -->
<strong>您的公司名称</strong><br>
Address: 您的地址<br>
Tel: 您的电话<br>
Email: 您的邮箱
添加公司logo
示例发票
下载示例
示例内容
- 买方: Global Trading Solutions Inc.
- 发票号: PI-20260131-001
- 总金额: USD 95,870.00
- 产品: 3辆翻新重型卡车及相关服务
高级功能
批量生成
# 为多个客户生成发票
for client in client1 client2 client3; do
cp sample_invoice_data.json ${client}_invoice.json
# 编辑客户数据
invoice-venv/bin/python generate_invoice.py ${client}_invoice.json
done
集成到工作流
# 在Python程序中调用
import subprocess
import json
def generate_invoice(data):
# 保存数据到临时文件
with open('temp_data.json', 'w') as f:
json.dump(data, f)
# 调用生成脚本
result = subprocess.run([
'invoice-venv/bin/python',
'generate_invoice.py',
'temp_data.json'
], capture_output=True, text=True)
return result.returncode == 0
故障排除
常见问题
1. wkhtmltopdf未安装
2. Python依赖问题
# 重新创建虚拟环境
rm -rf invoice-venv
python3 -m venv invoice-venv
invoice-venv/bin/pip install pdfkit jinja2
3. 中文显示问题
确保HTML模板使用UTF-8编码:
4. PDF生成失败
检查错误日志:
更新日志
v1.0 (2026-01-31)
- ✅ 初始版本发布
- ✅ 专业双语模板
- ✅ 自动金额计算
- ✅ 示例数据文件
- ✅ 完整使用文档
技术支持
如有问题,请参考: 1. 本使用文档 2. 示例文件 3. 错误日志信息
或联系系统管理员获取帮助。
最后更新: 2026-01-31
版本: v1.0
维护者: King (AI助理)