启动 HN:Onedoc(YC W24)– 创建 PDF 的更好方式

一项新的 YC 支持的 PDF 生成服务,通过 React 和 HTML 提供生成 PDF 的能力,引发了关于在开源工具和 headless 浏览器工作流已十分拥挤的领域里,付费 API 是否还有空间的讨论。评论者在产品优势——高质量排版、对复杂版式与可访问性的支持,以及表单填充和本地部署计划——与对延迟、敏感数据安全以及大规模按文档定价的担忧之间进行权衡。此次讨论凸显出 PDF 生成对许多团队而言仍然非常痛苦,而定价、合规性(SOC2/ISO27001)和集成灵活性,很可能决定此类服务能否取代自建和免费替代方案。

定价与商业模式

  • 许多评论者认为最初的定价“昂贵”,尤其是按文档计费,对高吞吐量或低利润率场景(例如发票、冗长的抵押贷款文件)更是如此。
  • 有人将其与 ConvertAPI、api2pdf、DocRaptor、Urlbox、htmldocs 等进行比较,认为这些方案按文档计算可能便宜得多。
  • 团队说明定价已经下调(规模化后低至约每份 0.005 美元),并且仍在演变;“按页”与“按文档”的混淆多次出现。
  • 也有人认为,一旦规模达到某个程度,自建会更便宜;建议包括固定价格/本地部署许可,定价约为开发者薪资的一小部分。

替代方案与现有生态

  • 提到了许多替代方案:headless Chrome/Puppeteer/Playwright、PrinceXML、DocRaptor、WeasyPrint、Paged.js、Gotenberg、jsPDF/gofpdf 包装器、Typst、LaTeX/ConTeXt、Pandoc、xsl‑fo、pdf-lib、DocSpring、Platoforms、PDFlib 等。
  • 有人说 FOSS 技术栈(Playwright + Paged.js)“处于技术前沿”,除非在可靠性、版式保护或合规方面带来额外价值,否则很难证明付费合理。
  • 也有人表示,现有工具在版式、分页、表单和可访问性方面都很痛苦,并愿意接受一个更好、更一体化的解决方案。

技术与功能

  • Onedoc 的 API 目前封装了 PrinceXML/DocRaptor;目标是用自定义引擎替换它,以获得更好的控制、功能和成本。
  • 使用 HTML/CSS,并强力支持 PrintCSS/Paged Media,而不是 headless 浏览器,以改进排版和版式(孤行/寡行、页面盒、页眉/页脚、页面区域)。
  • 基于 React 的开源库专注于让 PDF 排版像常见前端工作一样;支持 Tailwind、Chakra UI、Markdown、LaTeX、SVG。
  • 支持带标记的 PDF,并以 HTML 语义为基础,面向 PDF/UA‑1 可访问性;目标为 PDF 1.7,支持 ICC 色彩配置文件和多种页面盒,但并非所有打印特性(如 ArtBox)都已完成。
  • 路线图包括表单填充、程序化签名、更丰富的元数据、分析、S3 集成,以及最终的自托管/本地部署。

性能、安全与市场契合度

  • 目前的渲染时间是“秒级”,比调优后的 headless Chrome 方案更慢;性能改进正在进行中。
  • 有人强调安全性(尤其是 SSRF 和 PII),并坚持在严肃采用前需要 SOC2/ISO27001 和本地部署。团队也承认正在推进 SOC2,并计划未来支持自托管。
  • 来自复杂、冗长或受监管文档领域(政府、法律、医疗、金融)的兴趣很高,尤其是在可访问/带标记的 PDF 和合规性足够强的情况下。
  • 底层争论是:PDF 无处不在却令人不快;有人希望有替代方案,而另一些人则认为,建立在既有的 PDF 生态之上才是唯一现实可行的路径。