PHP:Adobe Reader 无法打开使用 mpdf 创建的 PDF 文件

2023-11-23

我正在使用 mpdf 即时创建 PDF 文件,文件可以在浏览器中正常打开,但 Adob​​e 给我一个错误:

Adobe Acrobat Reader DC 无法打开“example-filename.pdf” 因为它不是受支持的文件类型,或者因为该文件 已损坏(例如,它作为电子邮件附件发送 并且未正确解码)。

我查看了与此相关的其他问题(另一个 mpdf + adobe 错误),然后在文本编辑器中查看 pdf。我发现该文件的第一部分如下所示:

<!DOCTYPE html>
<head>
    <title>
        CapstoneDB
    </title>
    %PDF-1.4
%âãÏÓ

在我删除所有内容之后%PDF-1.4(包括选项卡),文件在 Adob​​e 中打开得很好,这很棒,除了我需要能够在 Adob​​e 中打开生成的 pdf 文件,而无需每次都手动摆弄代码。

这是我的包装函数,它使用 html 和 css 调用 mpdf:

include('../mpdf/mpdf.php');

function user_download_pdf($html, $css_file, $filename) {
    $mpdf = new mPDF();
    $stylesheet = file_get_contents($css_file);
    $mpdf->WriteHTML($stylesheet,1);
    $mpdf->WriteHTML($html,2);
    $mpdf->Output($filename, "D");
}

我从不向 mpdf 提供完整的 html 页面,通常只是一个 h3 和一个或多个表格。也许我需要给 mpdf 一个完整的 html 页面,包括<head>, <body>, ETC?有没有什么方法可以更改 mpdf 配置或我在 php 中调用 mpdf 的方式来消除 pdf 文件开头的 html 垃圾,这些垃圾会搞乱一切?


Place

ob_clean(); 

就在之前

$mpdf->Output();

如果没有这个,mpdf 有时会包含网站页面 HTML,而不仅仅是 PDF 中所需的 HTML,这可能是因为标头已发送到代码中的其他位置。这可能会弄乱您的 PDF,导致 Adob​​e 无法打开它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:Adobe Reader 无法打开使用 mpdf 创建的 PDF 文件 的相关文章

  • Javascript 使事件点击和语音识别与多个按钮一起工作

    所以我正在使用 webkitSpeechRecognition 并且它工作得很好 但问题是我想同时在多个地方使用它 当我将它添加到页面上的另一个部分时 它无法正常工作 这是它自己工作的情况 var final transcript var
  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • Django:使用条件 {% extends %} 使 {% block "div" %} 成为条件

    我想分享一个 AJAX 和常规 HTTP 调用之间的模板 唯一的区别是一个模板需要扩展 base html html 而另一个则不需要 我可以用 extends request is ajax yesno app base ajax htm
  • 使用 PDFbox 从区域中提取文本

    是否可以从一个区域中提取文本PDFbox http pdfbox apache org index html仅使用二进制文件而不必创建自己的代码 编译这个简单的程序并将其打包到 jar 中 import java awt geom Rect
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 使用 HTML5(数据列表)自动完成功能和“包含”方法,而不仅仅是“开头为”

    我找不到它 但我又不知道如何搜索它 我想用
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • 如何转义 HTML 字符?在.NET中-->“

    如何在 NET 中转义 HTML 字符 我正在从 json 字符串中获取 html 并在标题中得到 amp quot more text 看起来我需要做两次才能得到 amp quot 成为 quot 那么它就是一个 如何转义 NET 中的所
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并
  • 如何使跨度标签不可删除?

    我正在尝试使 contenteditable div 内的跨度标记不可删除 div Editable span Read Only span div 只读范围确实是只读的 但我可以通过单击删除键来删除整个范围 有没有一种属性方法可以告诉sp
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • CSS 精灵按钮

    这些精灵按钮让我抓狂 我几乎可以让他们工作 但不完全是 我正在玩这个非常简单的精灵图像 我有一个 jsfiddle 项目 gt gt 这里 如果你想看的话 但如果你只想看一下 代码就在下面 http jsfiddle net jp2code
  • Facebook 点赞按钮消失

    我的网站中的 Facebook Like 按钮出现问题 添加此代码 由 facebook 提供 按钮在创建时正确显示在任何页面中
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 如何在 PHP 中从字符串类名实例化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何创建返回方法名称的新实例 不幸的是我收到这个错误 错误 类名必须是有效的对象或字符串 这是我的代码 class Foo public f
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1

随机推荐

  • 熊猫滚动窗口百分位排名

    我正在尝试在滚动窗口内按列计算数据的百分位数排名 test pd DataFrame np random randn 20 3 pd date range 1 1 2000 periods 20 A B C test Out 111 A B
  • Google Chrome cookie 最长过期日期

    当我使用以下 php 行创建一个新 cookie 时 我正在创建我的网站 setcookie subscribed true time 365 24 3600 100 null false true 我意识到我的浏览器 Google Chr
  • 使用 python 求解非方阵 A 的 Ax =b

    我关注的是特殊情况A是一个 n x d 矩阵 其中 k numpy 但是它们仅适用于方阵 我采用了用一些线性独立向量填充矩阵以对其进行 平方 然后求解的方法 但我无法弄清楚如何选择这些向量 以便它们与基向量线性无关 而且我认为它是这不是唯一
  • requestAnimationFrame 循环不正确 FPS

    我有一个 javascript 函数 我的游戏 希望 每秒循环 60 次 用于控制输入 绘图等 目前的编码方式似乎始终在 52 左右 明显低于 60 fps 甚至在没有其他事情发生时甚至会下降到 25 30 fps function loo
  • 除了下面之外还有其他方法可以将 json.rows 文件加载到 RStudio 中吗?

    我有一个 json rows 文件 gt instances json rows 大约有 223k 行 我尝试使用 jsonlite 并想出了 instancesfile lt fromJSON instances json rows 但我
  • Typescript:从数组类型中检索元素类型信息

    假设我有一些数组类型T 是否可以提取类型T在另一个别名 接口中 例如 我的 假的 理想代码如下 for illustration only type ArrayElement
  • 错误:[$compile:multidir] 多个指令 [form, form] 请求“form”控制器:

    我在 angularjs 中构建的表单上收到此错误 错误 compile multidir 多个指令 form form 请求 form 控制器 div ul li div job role div div job salary div d
  • 运行 shell 脚本并立即将其置于后台,但保留检查其输出的能力

    如何立即运行 shell 脚本背景但是 它仍然可以通过尾随来随时检查其输出 tmp output txt 如果可以就好了前景这个过程太晚了 P S 如果您还可以向我展示如何将后台进程 发送 到可能已初始化或尚未初始化的 GNU 屏幕 那就太
  • 从 csv 文件中的数据创建多个 csv 文件

    系统 OSX 或 Linux 我正在尝试自动化我的工作流程 每周我都会收到一个 excel 文件 我会将其转换为 csv 一个例子是 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 Title r t needed a
  • 为什么 Java 5+ API 不利用协变返回类型?

    从 Java 5 开始 我们可以协变返回类型 为什么 Java API 不利用这一点呢 Take Graphics2D create 例如 为什么不重写它来返回Graphics2D目的 在我看来 它在所有情况下都是向后兼容的 总的来说 这确
  • Mac OS X 上链接库的默认搜索目录是什么

    我已经建立了谷歌测试在 Mac OS X 上使用 CMake 并获得两个共享库 libgtest dylib and libgtest main dylib 现在我需要安装它们 我知道Linux上有一些默认的搜索目录 例如 usr lib
  • 在 Windows 中以编程方式确认打印成功

    我的公司正在开发一个财务应用程序 现在我们必须应对一项新法律 该法律要求我们无论是否打印收据都采取不同的行动 收据使用 Windows 中的标准打印队列在 A4 纸上的激光打印机上打印 有没有办法以编程方式检查某个打印作业是否确实成功 需要
  • 日期格式化后以小写形式显示 AM 和 PM

    格式化日期时间后 时间以大写形式显示 AM 或 PM 但我希望它以小写形式显示 例如 am 或 pm 这是我的代码 public class Timeis public static void main String s long ts 1
  • 单个 EventMachine 反应器中的多个服务器

    是否可以在单个事件机器中运行多个服务器 我的意思是单个客户端连接可以同时使用多个服务 例如 登录服务器对用户进行身份验证 然后用户可以通过单个客户端套接字同时使用聊天室和简单的游戏 例如跳棋 或者每个服务是否需要多个 eventmachin
  • 在 Python 中通过 HTTP 将未知大小的数据从客户端流式传输到服务器

    不幸的是 我之前的问题因是问题的 精确副本 而被关闭 而它绝对不是 特此再次 它不是重复的Python HTTP 使用流式传输大文件 那个处理的是大文件的流传输 我想将文件的任意块一一发送到同一个 http 连接 所以我有一个 20 MB
  • 带 switch 和 ForEach 的 Golang 模板

    我需要创建bash sh来自 golang 程序的文件 应该执行以下操作 Create ForEach循环依赖项并读取类型并根据类型 打印不同的回显消息 命令 我需要它来使用switch on the type与 Golang 的依赖关系
  • 如何将SQL Server数据库迁移到MySQL? [关闭]

    Closed 这个问题是无关 目前不接受答案 我有一个SQL服务器数据库有大量数据和空数据MySQL数据库 现在我想将SQL Server数据库的所有数据 包括数据库架构 复制到MySQL数据库 我考虑过使用原始 SQL 转储 但 SQL
  • 如何在我的网站上显示来自 Amazon S3 的图像?

    我的照片存储在 Amazon S3 上 这些图片是私人的 不公开 所以我无法通过直接链接显示它们s3 amazonaws bucket name key name image name jpg 我知道 Amazon S3 上的图像名称 如何
  • 通过 IN 子句对 SQL Server 结果进行排序

    我有一个使用 IN 子句的存储过程 在我的 ASP NET 应用程序中 我有一个多行文本框 它向存储过程提供值 我希望能够按文本框中输入的值进行排序 我找到了如何在 mySQL 中轻松执行此操作 使用 FIELD 函数 但没有找到 SQL
  • PHP:Adobe Reader 无法打开使用 mpdf 创建的 PDF 文件

    我正在使用 mpdf 即时创建 PDF 文件 文件可以在浏览器中正常打开 但 Adob e 给我一个错误 Adobe Acrobat Reader DC 无法打开 example filename pdf 因为它不是受支持的文件类型 或者因