eruera
## invoify是什么
Invoify 是一款发票生成器应用程序,采用 Next.js 13、TypeScript、React 和 Shadcn UI 库构建。它提供了一种创建和管理专业发票的简单方法。官方项目地址[:invoify](https://github.com/al1abb/invoify)。程序界面如下:

## 如何在懒猫微服上安装invoify
得益于懒猫微服强大的应用生态,懒猫商店现有2000+应用均可以一键安装,invoify应用地址如下:
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.invoify
轻轻松松一键安装,再也不要操心各种系统繁琐的环境配置。
## invoify使用方法
应用使用很简单,打开后按照自己需求填写即可,填写完成后点击生成PDF即可,注意有些项目为必填项。现在应用使用界面暂不支持中文,填写内容支持中文,但是经过测试,部分内容行间距过大,暂时还没有解决这个问题。


## Invoify API 字段说明
应用支持使用命令行批量生成发票,有利于用户进行二次开发适配自己的服务。首先对api各字段进行说明:
### 1. 发送方信息 (sender)
#### 必填字段
| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `name` | string | 2-50字符 | 公司/个人名称 |
| `address` | string | 2-70字符 | 地址 |
| `zipCode` | string | 2-20字符 | 邮编 |
| `city` | string | 1-50字符 | 城市 |
| `country` | string | 1-70字符 | 国家 |
| `email` | string | 5-30字符,有效邮箱格式 | 邮箱 |
| `phone` | string | 1-50字符 | 电话 |
#### 可选字段
| 字段 | 类型 | 说明 |
|------|------|------|
| `customInputs` | array | 自定义输入字段数组 |
---
### 2. 接收方信息 (receiver)
#### 必填字段
| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `name` | string | 2-50字符 | 客户名称 |
| `address` | string | 2-70字符 | 地址 |
| `zipCode` | string | 2-20字符 | 邮编 |
| `city` | string | 1-50字符 | 城市 |
| `country` | string | 1-70字符 | 国家 |
| `email` | string | 5-30字符,有效邮箱格式 | 邮箱 |
| `phone` | string | 1-50字符 | 电话 |
#### 可选字段
| 字段 | 类型 | 说明 |
|------|------|------|
| `customInputs` | array | 自定义输入字段数组 |
---
### 3. 发票详情 (details)
#### 必填字段
| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `invoiceNumber` | string | 至少1字符 | 发票号 |
| `invoiceDate` | date | 有效日期 | 开票日期 |
| `dueDate` | date | 有效日期 | 到期日期 |
| `currency` | string | 必填 | 货币类型 |
| `language` | string | 必填 | 语言 |
| `items` | array | 至少1个商品项 | 商品/服务列表 |
| `subTotal` | number | 非负数 | 小计金额 |
| `totalAmount` | number | 非负数 | 总金额 |
| `totalAmountInWords` | string | 必填 | 大写金额 |
| `paymentTerms` | string | 至少1字符 | 付款条款 |
| `pdfTemplate` | number | 必填 | PDF模板ID |
#### 可选字段
| 字段 | 类型 | 说明 |
|------|------|------|
| `invoiceLogo` | string | 发票Logo (base64或URL) |
| `purchaseOrderNumber` | string | 采购订单号 |
| `paymentInformation` | object | 付款信息 |
| `taxDetails` | object | 税务信息 |
| `discountDetails` | object | 折扣信息 |
| `shippingDetails` | object | 运费信息 |
| `additionalNotes` | string | 附加说明 |
| `signature` | object | 签名信息 |
| `updatedAt` | string | 更新时间 |
---
### 4. 商品项目 (items[]) - 数组中每个项目的字段
#### 必填字段
| 字段 | 类型 | 验证规则 | 说明 |
|------|------|----------|------|
| `name` | string | 至少1字符 | 商品/服务名称 |
| `quantity` | number | 大于0 | 数量 |
| `unitPrice` | number | 大于0 | 单价 |
| `total` | number | 必填 | 总价 |
#### 可选字段
| 字段 | 类型 | 说明 |
|------|------|------|
| `description` | string | 商品描述 |
---
以上仅列举了必选字段,其余可参考官方项目地址[:invoify](https://github.com/al1abb/invoify)
## 使用invoify批量生成发票
我是在windows平台上使用Git Bash运行命令,命令如下:
```bash
curl -X POST https://invoify..heiyu.space/api/invoice/generate \
-H "Content-Type: application/json" \
-d '{
"sender": {
"name": "Test Company",
"address": "123 Test Street",
"zipCode": "12345",
"city": "Test City",
"country": "USA",
"email": "test@company.com",
"phone": "123-456-7890"
},
"receiver": {
"name": "Client Company",
"address": "456 Client Avenue",
"zipCode": "67890",
"city": "Client City",
"country": "USA",
"email": "client@company.com",
"phone": "098-765-4321"
},
"details": {
"invoiceNumber": "INV-2024-002",
"invoiceDate": "2024-01-15T00:00:00.000Z",
"dueDate": "2024-02-15T00:00:00.000Z",
"currency": "USD",
"language": "en",
"items": [{
"name": "Design Service",
"description": "Professional UI/UX design",
"quantity": 3,
"unitPrice": 75.00,
"total": 225.00
}],
"subTotal": 225.00,
"totalAmount": 225.00,
"totalAmountInWords": "Two Hundred Twenty-Five Dollars",
"paymentTerms": "Net 30",
"pdfTemplate": 2
}
}' \
-w "\nHTTP Status: %{http_code}\n" \
-s -o test-invoice-template2.pdf
```
该命令仅使用了必选字段,用户可以根据自身需求进行修改生成。生成pdf如下所示:

## 总结
总之invoify是一款不错的发票生成应用,尤其有api服务支持二次开发,可以方便用户适配自己的服务。
评论
0暂无评论