【问题标题】:How do I generate a pdf-file from a binary file如何从二进制文件生成 pdf 文件
【发布时间】:2015-12-16 06:47:29
【问题描述】:

二进制数据只是实际的文件,或者更确切地说是该文件的重要内容,只是没有文件名。

$base64 = /* some base64 encoded data fetched from somewhere */;
$binary = base64_decode($base64);

你在 $binary 变量中有文件数据/文件内容。从这里开始,这取决于你想做什么。您可以将数据写入文件,并获得“实际”PDF 文件:

file_put_contents('my.pdf', $binary);

您可以使用适当的标题将数据发送到浏览器,用户将收到类似于 PDF 文件的内容:

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="my.pdf"');
echo $binary;

它生成一个 pdf 文件,但它没有打开..它显示错误发生。 //下面是php文件

 <?php
 $base64 = "/here binary code/";
 $binary = base64_decode($base64);
 file_put_contents('my.pdf',$binary);
 header('Content-type: application/pdf');
 header('Content-Disposition: attachment; filename="my.pdf"');
 echo $binary;
 ?>

那么如何比较下载的文件和原始文件。

【问题讨论】:

  • 这是在 PHP 中吗?还有什么?您是否将保存的文件与原始文件进行了比较,包括长度、哈希等?
  • 所以请把它放在问题标签中......然后添加我要求的其他信息,关于保存的文件与原始文件的比较。
  • 你的说法,用你的信息问问题标签
  • 我不确定您的意思,但我是说您应该编辑您的问题以包含 php 标签,并包含有关下载文件与原始文件比较的信息。跨度>
  • 我不知道如何比较文件和二进制代码在数据库代码中

标签: php pdf


【解决方案1】:

我认为您的问题是 $base64 变量中没有正确的数据。您只是在做出 PDF 响应,但该响应的内容不是 PDF 文件。

(您可以尝试从一些真实的 PDF 中读取内容,将此数据填充到 $binary,它应该可以工作。)

【讨论】:

  • 您 100% 确定您使用的变量中的 PDF 数据有效吗?我的意思是,如果你想用 PHP 生成 PDF,那么你应该使用 mPDFtcpdf 之类的东西。
  • hai 我正在从数据库表中获取二进制代码并使用该二进制代码生成 pdf 文件。
  • 我了解,您从 DB 中获取 base64 编码的二进制数据,然后您对其进行 base64 解码,然后您希望将其作为 PDF 内容回显。但是您是否 100% 确定您用作二进制代码的 DB 字段是 有效 PDF 内容?我没有你的数据,但我的第一步是读取一些 pdf 文件到变量,并使用这个变量而不是 $binary 来检查问题出在哪里。
  • 这是表列(content_pdf) 二进制码值([BLOB - 41.9 KiB])
  • $content = $row['content_pdf'];回声$内容;如果我回应这个,我会得到这样的答案 %PDF-1.7 3 0 obj /Resources 2 0 R /Contents 4 0 R>> endobj 4 0 obj .......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
  • 2017-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2021-01-06
相关资源
最近更新 更多