报价单 PDF——在浏览器里打好一份 A4 报价单
公司名称、编号项目表、折扣、SST 与有效期,一次生成一份可以直接发给客户的 PDF,全部在你自己的标签页里完成。
🔒 100% 浏览器内运行 · 零服务器上传
支持 PNG、JPEG 或 WebP,会缩小到 120 × 48 pt 放在公司名称旁边。透明背景在白纸上仍然是透明的。
公司资料、标志和默认值只保存在这台设备的浏览器里——本页没有服务器,任何内容都不会上传。客户资料和项目明细从不保存。
按「开始处理」之前什么都不会下载:PDF 引擎约 175 KB,用过一次之后浏览器会保存缓存。内容里有汉字的报价单还要再下载一个字体文件——1.3 MB,服务器开启压缩时约 705 KB——只下载一次,而且只有真的出现汉字时才下载。纯英文或马来文报价单完全不会下载字体。
PDF 预览
表单里有一个项目和有效日期之后,这里就会出现预览。
这里显示的就是将要下载的文件,由同一个程序生成——不是示意图。
值得再看一眼
没有放进文件的行
马来西亚规则与特殊情况
报价单、税务发票、电子发票——三份不同的文件
报价单是一份报价邀请。它既不是付款通知,也不是税务发票,更不是 LHDN 电子发票。马来西亚报价单的争议,多半从把这三者混为一谈开始,下面这张表就是它们的区别。同一张表单也能改成发票:那是一份付款通知,仍然不是 LHDN 电子发票,也从不提交到 MyInvois。
| 报价单 | 税务发票 | LHDN 电子发票 |
|---|---|---|
| 对还没谈定的工作提出价格 | 对已经提供的工作开出的账单 | 经 IRBM/LHDN 验证并取得唯一编号的税务发票 |
| 在客户接受之前发出,客户接受的就是它 | 在商品或服务提供时开出,不是写报价单的时候 | 轮到你的阶段后,先经 MyInvois 验证再送到买家手上 |
| 带的是有效期,不是付款期限 | 带付款期限,是正式要求付款的文件 | 带验证链接和买家可扫的二维码 |
| 如果你已注册 SST,只写出「将会」收取的税额 | 写出实际收取的 SST,并附上你的 SST 注册号 | 同样的税务字段,用的是 LHDN 自己的结构 |
这个工具怎样处理 SST
- 税率用官方公布的税率。服务税标准税率 8%,餐饮、物流、电信与停车这四个优惠类别为 6%,自 2024-03-01 起生效,与 SST 计算器读的是同一张表。销售税不在这里加:普通零售商不在收银台收销售税。
- 先扣折扣,再算 SST。本工具把折扣扣在小计上,服务税按折扣后的金额计算——那才是客户真正要付的钱。如果你的会计要求按折扣前的金额计税,先把折扣后金额放进 SST 计算器,再把结果填到这里。
- 每一行都换算成「分」,这是本工具的规则。数量 × 单价用整数运算四舍五入到最近的分,再逐行相加。供应商的会计系统可能差一分;本页把这个规则写出来,而不是藏起来。
- 只有已注册 SST 才加税。某项服务是否应税、属于哪个类别,属于 JKDM MySST 的指引范围——本页只做算术,不判断你的注册状态。没注册却印上服务税,等于造出一份自己解释不了的文件。
一份有用的报价单要有这些
- 编号和日期。「Q-2026-0118,2026 年 11 月 9 日」是客户日后找得回来的文件;「我们上次谈的那份报价」不是。
- 注册公司名,以及 SSM 注册号(如果有)——买家的财务在付款前一定会问。
- 逐项列出,不要一个总价。项目说明、数量、单价。真正经得起争议的是「电线安装 | 三相 | 1 | 1,200」这一行。
- 有效期。这是马来西亚的商业惯例,不是法律:报价单一般开 14 到 30 天;在税率或材料价格变动之前报的价,不该无限期有效。
- 一种货币。本工具只把 MYR、SGD、USD 印成标签,绝不做换算——写进报价单的汇率,是日后谁也查不回来的数字。
中文内容。报价单里出现汉字时,会下载一个字体子集(文泉驿微米黑,Apache-2.0)——实际 1.3 MB,用 gzip 压缩后约 705 KB——保证汉字真的写进 PDF,而不是被悄悄丢掉。PDF 会内嵌整个字体,所以中文报价单约 760 KB;纯拉丁文只有几 KB。纯英文或马来文报价单完全不下载字体。每次按下「开始处理」都会下载一次 PDF 引擎(约 175 KB,之后浏览器会保存缓存)。子集里没有的字符——例如《通用规范汉字表》之外的生僻字或表情符号——会被拒绝并列出是哪几个字,绝不会画成空方框。中文标点已全部收录。
处理前后
处理前
每月保养服务 | 2 | RM seratus
三相电线安装 | 1 | 12.345
厨房插座与防水开关更换 | 8 | 65.00 处理后
第 1 行被拒绝 · 单价不是数字
第 2 行被拒绝 · 单价超过两位小数
1 个项目 · 小计 RM 520.00 · 总计 RM 520.00 使用方法
- 填写公司名称、客户和报价单字段——日期由浏览器填今天的日期,不是在页面生成时写死的。
- 把项目明细粘进「输入」面板,一行一个:项目说明 | 数量 | 单价。在面板上方选择货币、折扣和 SST 模式。
- 按「开始处理」,再下载 PDF。「复制结果」会把金额合计复制成文字,每一行被拒绝的项目都带行号列出。
常见问题
这是税务发票或 LHDN 电子发票吗?
不是。报价单是一份报价:没有 SST 注册号,不是付款通知,也从不提交到 MyInvois。把单据类型改成发票,同样的金额就变成一份付款通知——仍然不是 LHDN 电子发票,也仍然不提交到任何地方。PDF 每一页的页脚都写着这是哪一种文件。
我的报价单要加 SST 吗?
只有已注册服务税才需要。菜单提供标准税率 8% 与较低税率 6%,两个都来自官方税率表;没注册就留在「不收 SST」。你这项服务是否应税,由 JKDM 判定,不是这一页。
为什么我有一行被拒绝了?
每一行必须是 项目说明 | 数量 | 单价,数量大于零,单价最多两位小数。单价里打了 RM、写了三位小数,或者只有一个分隔符,都会连行号和原因一起列出来——不会被悄悄删掉,也不会被猜着改。
我的报价单会被上传吗?
不会。PDF 由 pdf-lib 在这个标签页里生成,页面根本没有可以调用的上传接口。页面唯一可能发出的请求是它自己的字体文件,而且只有内容里出现汉字时才会发出。你自己的公司资料确实会记住——公司名称、注册号、地址、联系方式、标志和默认值,保存在这台设备的浏览器 localStorage 里,下一份文件打开时抬头已经填好。客户资料和项目明细从不保存,「清除我的资料」会把保存过的内容全部删掉。
可以开给外国客户吗?
可以——选 SGD 或 USD,金额就按那种货币标注。工具不做任何换算:请直接填你报价用的货币金额,因为工具自己编出来的汇率,双方日后都查不回来。