跳转至

形式发票生成器

概述

专为外贸SOHO - 车辆翻新出口业务设计的专业形式发票(Proforma Invoice)PDF生成系统。

主要功能

  • ✅ 一键生成专业PDF发票
  • ✅ 双语显示(中英文)
  • ✅ 自动计算金额
  • ✅ 支持自定义模板
  • ✅ 批量生成支持

快速开始

1. 下载示例文件

下载完整示例包 - 包含模板、脚本和示例数据

2. 系统要求

# 必需软件
sudo apt-get install wkhtmltopdf python3 python3-venv

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占位符 -->
<img src="your_logo.png" style="width: 150px; height: auto;">

示例发票

下载示例

下载示例PDF发票

示例内容

  • 买方: 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未安装

# 安装wkhtmltopdf
sudo apt-get install wkhtmltopdf

2. Python依赖问题

# 重新创建虚拟环境
rm -rf invoice-venv
python3 -m venv invoice-venv
invoice-venv/bin/pip install pdfkit jinja2

3. 中文显示问题

确保HTML模板使用UTF-8编码:

<meta charset="UTF-8">

4. PDF生成失败

检查错误日志:

invoice-venv/bin/python generate_invoice.py 2>&1

更新日志

v1.0 (2026-01-31)

  • ✅ 初始版本发布
  • ✅ 专业双语模板
  • ✅ 自动金额计算
  • ✅ 示例数据文件
  • ✅ 完整使用文档

技术支持

如有问题,请参考: 1. 本使用文档 2. 示例文件 3. 错误日志信息

或联系系统管理员获取帮助。


最后更新: 2026-01-31
版本: v1.0
维护者: King (AI助理)