【问题标题】:Render Html + CSS page as PDF without using API and libraries but using header type将 Html + CSS 页面呈现为 PDF 而不使用 API 和库,但使用标题类型
【发布时间】:2012-11-30 08:45:31
【问题描述】:

我想将使用 PHP 和 CSS 生成的 Html 页面直接显示为 pdf。

我为此搜索了很多,但最终有很多库来完成这些任务。但我不想使用任何库,只想通过定义标题标签将其呈现为 PDF。

我不确定,但是内存很少,可以不使用任何可能错误的 API、库,因此需要在继续其他解决方案之前进行确认。

希望有一种简单的方法可以做到这一点,因为这是大多数产品最需要的功能。

【问题讨论】:

  • 这些库的存在是有原因的。这不是微不足道的。

标签: php html css pdf header


【解决方案1】:

首先,我建议为此使用库,因为尽管它“可能是错误的”,但它可能比您或我想出的更正确。其次,(大部分)这不是使用标题完成的;)

如果你真的想自己做,PHP 中的原生 PDF 函数位于 hereFPDF(我个人最喜欢的)等库直接在其实现中使用。

要将页面打印为 PDF,您必须先呈现它(创建 HTML DOM 并应用 CSS),而 PHP 不这样做。您必须先使用 WebKit 等 HTML 引擎渲染页面,然后返回 PHP 进行打印操作。

同样,这可能应该使用库来完成,从而省去您的麻烦和调试。当然,这个问题一直是asked before,所以有很多可用的信息。

但如果你想自己走一走,那就是你必须走(或爬)的路。我,我会坐公共汽车。


更新

在 cmets 中回答您的问题:

<?php header("Content-type: application/pdf;charset=UTF-8"); ?> 将其放在页面顶部呈现 pdf,但事实并非如此 以这种方式产生的工作。那么,您能为此提出任何建议吗?

该标头用于 HTTP 请求。当请求从服务器返回时,它会发送一个标头,提示返回的内容类型(JSON、图像、pdf 等等)。

换句话说,该标题实际上并没有制作 PDF,它只是告诉浏览器期望 PDF。在标头之后,服务器会发送一些内容(希望是 PDF)。

这就是为什么我说您的原始问题没有使用标题完成。

【讨论】:

  • :) 谢谢你这么贴心的回复,并提醒PHP没有得到任何格式化数据,在搜索这个时我忘记了这个事实。
  • 将它放在页面顶部会呈现 pdf,但它不能以这种方式生成。那么,您能为此提出任何建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2021-02-05
  • 2016-08-22
  • 2017-04-21
  • 1970-01-01
相关资源
最近更新 更多