跳转到主要内容

常见问题

我能从我的应用中打印文档吗?

可以,且无需安装任何额外组件。所有生成的应用均内置打印样式表:按 Ctrl+P 或选择「另存为 PDF」,即可输出一张干净的 A4 页面——导航栏被完全移除,无论当前屏幕使用何种主题,输出均为黑白模式。汇总报表功能更进一步:其「打印」按钮具有确定性行为;色块(如页眉、合计行、小计行)可精准还原;分页逻辑智能严谨,绝不会将金额行从中截断。但需注意:PDF 由浏览器原生生成,而非嵌入式 PDF 库——因此不支持自定义信头发票模板,也不支持自动邮件发送。本页将清晰界定:哪些内容会真正出现在打印结果中,哪些则不会。

所有应用均已具备:一张整洁的 A4 打印页

打印样式表并非可选开关,而是直接写入每个生成应用的 CSS 文件中,且仅在触发打印时生效——屏幕显示效果保持逐字逐像素一致。其实现逻辑可概括为四步:首先将纸张尺寸固定为 A4,并设置打印机可识别的安全边距;其次,彻底移除所有不适合上纸的内容:侧边导航栏、顶部工具栏、会话页脚、Blueprint 标识,以及所有标记为「不可打印」的元素——「打印」按钮本身即属此类,因此绝不会出现在最终输出中。

接着,无论当前启用何种主题(包括深色模式),强制将背景设为纯白、文字设为纯黑:既确保高对比度可读性,又避免墨盒无谓消耗。最后——这一项最不易察觉却最为关键——让应用外壳回归标准文档行为:屏幕上,应用占据整个视口高度并内部滚动内容;若直接打印该布局,会导致内容在首屏高度处被截断。而打印样式规则会中止此机制:页面高度随内容自然延展,四十行数据将自动分页输出,所需页数即为实际页数。

汇总报表:一份开箱即用的交付物,自带打印按钮

汇总报表模块(如数据总览、带章节标题的正式文档)天然面向纸质或 PDF 输出,因此生成器为其确定性地添加了「打印」按钮——该按钮不依赖外部资源,亦无需网络请求,点击即调用浏览器原生打印功能,且按钮自身在输出中自动隐藏。文档样式随之同步优化:投影效果消失、圆角转为直角、宽度扩展至满页、内部横向滚动被禁用,确保所有内容完整落入纸面边界之内。

真正区分「专业文档」与「截图」的,是两个细节:其一,色块(页眉色带、合计行、小计行)得以精准还原;而浏览器默认打印时会将所有色块转为白色——若无此规则,合计行将失去使其区别于其他行的核心视觉标识。其二,分页逻辑受严格控制:金额行绝不会跨页断裂,章节标题也绝不会孤悬于页面底部——它必与所统辖的数据行一同出现在同一页上。

PDF 由浏览器生成——这是刻意为之的设计选择

交付的应用中未嵌入任何 PDF 生成库:PDF 完全由浏览器打印对话框中的「另存为 PDF」功能生成。这一选择利弊共存,提前了解至关重要。优势在于:离线可用、零成本、无需维护额外依赖,且兼容手机与电脑等各类终端。劣势在于:操作需手动完成——不存在「一键发送 PDF 给客户」按钮;页眉、页脚及文件名均由浏览器设置决定,而非应用本身控制。

对于明细类文档(如订单汇总、详细对账单),当您的数据结构满足条件时(即存在父级记录、关联明细行,且每行金额由该行字段实时重新计算得出),生成器可自动适配对应排版。最后一项尤为关键:每次渲染时动态重算的金额,其数值必然与其构成字段严格一致;而静态存储的金额则缺乏校验依据。当数据结构存在歧义时,生成器宁可放弃生成,也不输出错误文档——没有文档,远胜于一份说谎的文档。

它无法替代的功能

我们坦诚说明:这并非一套开箱即用的开票模块。它不提供带您公司信头的发票模板,不支持法定编号规则,不自动添加法定必备条款,也不支持向客户自动发送——况且,法规意义上的电子发票本质上并非 PDF,而是通过认证平台传输的结构化数据格式,相关内容详见专属问答。打印功能所服务的是另一类日常需求:快速输出一张清晰可读的纸张,用于现场交接、车间张贴、工地携带或归档留存。

若需流转数据而非纸张,每张列表页均配备 CSV 导出按钮,导出当前可见的所有行,并在按钮上实时显示行数。若后续确需专业 PDF 生成能力(例如:匹配您品牌规范的模板、自动编号、邮件自动分发),仍可灵活扩展——交付的代码是一个标准 Next.js + Prisma 项目,完全归属您所有,开发者可随时接入所需组件。它虽非即装即用,但绝对可行;而这,恰恰是封闭式工具无法提供的自由。

进一步了解

相关问题

生成一款打印效果出色的应用