php - PHP 中的多页发票/文件

标签 php pdf invoice

TL;DR:我在使用 PHP 生成超过 1 页的 PDF 时遇到问题。


你好。我的目标是创建一个基本上可以获取所有重要数据的脚本,并创建一个 A4 格式的 PDF 发票/文档用于打印/邮寄/存档。只要文档不溢出,就可以生成 PDF 文档。

我希望发票页有边框,它应该包含:

  • 发票有效所需的 Material
  • 收费产品/其他信息
  • 供应商/客户签字盖章或其他数据的地方

所有页面都必须包含页眉和页脚(公司 Logo )和页脚(第 # 页,共 # 页 - 发票/文档 ID - 日期和时间 - 办公室 ID - 打印机 ID,指定人员,任何人可以问的),以及作为文档正文周围的边框(在页眉下方,页脚上方)。

一切都很好只要文档大小不大于

$pageSize-$pageMargins-$header-$footer-$invoiceDataBlock-$signaturesBlock

对于实际开具发票的元素,基本上就是 10 厘米。如果文档较大,我实际上会使用电子表格编辑器手动为发票创建附件。

问题 是:我怎样才能创建一个多页 PDF 文档,并且没有发票项目覆盖页眉/页脚等问题?我需要知道什么时候继续下一页。我怎么知道的?完成此任务的最佳方法是什么?

提前致谢!

最佳答案

我已经使用 FPDF 和 TCPDF 生成多页发票文件。它们的工作方式大致相同。 (我从 FPDF 开始,然后在需要包含 Unicode 字符时切换到 TCPDF,当时 FPDF 不支持它。)

正如 Eugen 所建议的,与使用 FPDF 或 TCPDF 中内置的函数相比,您可以更轻松地手动滚动自己的页眉和页脚。

我确保不覆盖页脚的策略只是注意发票中包含的数据。添加新的 SKU 时,我会测试长名称以确保它们适合发票 PDF 中的字段。对于必须可变长度的项目,我将未知内容放在它自己的行中以减少可能的影响:

Domain registration (2 years)
example.com

当我生成发票的每一页时,我会记录我使用了多少行。我知道我可以安全地放置 20 行项目,并且我知道我的最大单个项目是 2 行,然后当我达到 20 行时,我开始一个新页面。 15 项表示 1 页。 25 项意味着两页。项目计数器上升,每次我达到 20 行限制时,它都会生成下一页并重置页面项目计数器。

请注意,我没有在此答案中包含任何代码,因为您没有在您的问题中包含任何代码。如果您想在实现方面获得帮助,我怀疑这将成为提出其他问题的理由。 :-)

关于php - PHP 中的多页发票/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866659/

相关文章:

PHP mysqldump 不返回任何数据

c# - 直接从sql数据库在网页中显示pdf文件,无需将它们保存到服务器文件系统

java - 使用 XSL 中的样式将 XML 转换为 PDF

image - 发票/OCR : Detect two important points in invoice image

jquery - 删除输入字段更新

php - 带标题下载的文件不起作用

php - 如何使用 MySQL Query 检查空值字段?

PHP:从大文本文件的末尾检索行

linux - 在 Linux 中生成的 PDF 在 Windows 中无法打开 - 使用 enscript

e-commerce - 计算含税外币价格的正确方法