2 个版本
0.3.2 | 2022年8月23日 |
---|---|
0.3.1 | 2022年8月19日 |
#1978 在 解析实现
70KB
2K SLoC
fbihtax
进行中 - 基本版本可用,个人使用,但未经过彻底测试
用 Rust 编写的 FBiH(波斯尼亚和黑塞哥维那联邦)税务支付管理的简单 CLI 工具。
目前 PDF 输出需要安装 pdftk
,否则可以使用 fdf
或 json
输出。
安装
从二进制文件
检查版本以获取构建的二进制文件。安装脚本也可用,但需要 root 权限。脚本还将安装运行此工具所需的 pdftk
版本。
$ sudo sh -c "$(curl -fsSL https://git.sr.ht/~esensar/fbihtax/blob/main/scripts/install.sh)"
或
$ sudo sh -c "$(wget -qO- https://git.sr.ht/~esensar/fbihtax/blob/main/scripts/install.sh)"
或
$ sudo sh -c "$(fetch -o - https://git.sr.ht/~esensar/fbihtax/blob/main/scripts/install.sh)"
使用 cargo
Fbihtax 部署到 crates.io,因此可以使用 cargo
进行安装
$ cargo install fbihtax
注意:这需要手动安装 pdftk
。
从源代码
克隆存储库,然后使用 cargo
安装 fbihtax
$ cargo install --path .
注意:这需要手动安装 pdftk
。
使用方法
最好在某个服务器上自动使用,但如果需要也可以手动使用。有关自动示例,请查看 fbihtax-example-project,它也可以用作模板。
有关更多信息,请使用 fbihtax --help
。
生成 AMS 表格
此工具支持多种 AMS 表格格式(PDF 可能是最有趣的)。要生成简单的 PDF,请运行
$ fbihtax ams --income 1000.00 --output-format pdf
上述命令需要安装并可在路径上使用
pdftk
。如果不在路径上,可以在配置中提供工具的路径。
为了更多定制,可以生成 fdf
、xfdf
或 json
格式。要在生成的 PDF 中使用自定义字体
$ fbihtax ams --income 1000.00 --output-format xfdf
$ pdftk amscache.pdf fill_form amsform.xfdf output amsform.pdf replacement_font "Your Font Family Here"
上述命令需要 pdftk-java 版本高于 v3.3.0,因为在此之前的替换_font 不可用
有关更多选项,请查看 fbihtax ams --help
。
生成税务分解
此工具可以提供基本的税务分解,以便更容易计算税务支付。
$ fbihtax tax-breakdown --income 1000.00
这将在当前目录中生成 taxbreakdown.json
。有关更多选项,请查看 fbihtax tax-breakdown --help
。
生成 GPD 表格
此工具还可以生成 GPD 表格(年度税务报告)。它依赖于使用此工具生成 AMS 表格构建的数据库。如果数据库中缺少某些数据,可以使用 fbihtax db
命令集手动添加。还可以提供额外的 GIP(雇主提供的年度税务报告)以正确与数据库中的数据结合。
$ fbihtax gpd --year 2021 --output-format pdf
与 AMS 命令一样,此命令可以输出不同格式,这对于添加自定义字体到 PDF 很有用。
$ fbihtax gpd --year 2021 --output-format xfdf
$ pdftk gpdcache.pdf fill_form gpdform.xfdf output gpdform.pdf replacement_font "Your Font Family Here"
上述命令需要 pdftk-java 版本高于 v3.3.0,因为在此之前的替换_font 不可用
有关更多选项,请查看 fbihtax gpd --help
,有关数据库管理选项,请查看 fbihtax db --help
。
配置
此工具在当前工作目录中的 .fbihtax.json
文件中查找配置。除了主要配置外,还可以提供可选的独立用户和客户配置 JSON 文件。
有关所有选项,请查看 示例配置。 用户 和 客户配置 JSON 文件也位于 示例 目录中。
要提供用户和客户配置,请使用 --user-config file_name.json
和 --client-config file_name.json
。
许可证
依赖项
17–32MB
~351K SLoC