数据库logo:PHP将徽标添加到存储在数据库中的现有PDF( MySQL)

我正在做一个基本的系统,工作人员上传一个带有一些描述的 pdf 文件,这些数据存储在数据库 MySQL 中。

管理员将查看此 pdf 并单击批准,如果一切正常。

将在 PDF 文件中插入带有批准徽标的图像。

我使用 fpdf 和 fpdi 类来做到这一点,我设法做到这一点,如果 PDF 文件存储在实际路径中,如的代码所示。

<?php
use setasign\Fpdi\Fpdi;
require_once('fpdf/fpdf.php');
require_once('fpdi2/src/autoload.php');
// initiate FPDI
$pdf = new Fpdi();
// add a page
$pdf->AddPage();
// set the source file
$pdf->setSourceFile('PdfDocument.pdf');
// import page 1
$tplIdx = $pdf->importPage(1);
// use the imported page and place it at position 10,10 with a width of 100 mm
$pdf->useTemplate($tplIdx, 10, 10, 100);
// now write some text above the imported page
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'This is just a simple text');
$pdf->Output();

但是,当我尝试使用 $pdf-& GT;setSourceFile($字符串)或其他实际的文件,例如(PDF $内容从字符串(数据库)或 URL)我不能管理这样做。

    // set the source file
//$pageCount = $pdf->setSourceFile("http://localhost/pdf/getpicture.php?fid=2");
$stream = fopen('data:text/plain,' . urlencode("http://localhost/pdf/getPDF.php?fid=2"), 'rb');
//$reader = new SetaPDF_Core_Reader_Stream($stream);
$pageCount = $pdf->setSourceFile($stream);

我的问题是如何从 MySQL 字符串导入 PDF 以通过 fpdf 和 fpdi 或任何其他免费的 PDF 类进行编辑。

注意:我尝试使用 stream_wrapper_register 到目前为止没有运气。如在此链接https://www.setasign.com/support/faq/miscellaneous/using-a-pdf-from-a-php-variable-instead-of-a-file/

请帮我一个简单的例子,因为我不是很熟悉 PDF 类。

非常感谢。

0

我认为你的麻烦的根源在于:

$stream = fopen('data:text/plain,' . urlencode("http://localhost/pdf/getPDF.php?fid=2"), 'rb');

PHP 的 fopen 函数返回一个文件指针,而不是给你你想要的 PDF 文件的名称。

所以后来当你打电话

$pageCount = $pdf->setSourceFile($stream);

$stream 不是带有 PDF 文件名的字符串。

如果您的http://localhost/pdf/getPDF.php?fid=2URL 返回 PDF 的文件名,请尝试使用 file_get_contents 获取该值,如下所示:

$pdf_file = file_get_contents('http://localhost/pdf/getPDF.php?fid=2');

然后调用

$pdf->setSourceFile($pdf_file);
0

您不应该使用额外的 HTTP 请求从数据库访问文件!

FPDI 2 允许您通过StreamReader类从任何源读取:

// use a resource
$fh = fopen('a/path/to/a.pdf', 'rb');
$pdf->setSourceFile(new StreamReader($fh));
// same as
$pdf->setSourceFile($fh);
// don't forget to call fclose($fh);
// use a path
$path = 'a/path/to/a.pdf';
$pdf->setSourceFile(StreamReader::createByFile($path));
// same as
$pdf->setSourceFile($path);
// use a string
$pdfString = '%%PDF-1.4...';
$pdf->setSourceFile(StreamReader::createByString($pdfString));

所以不要调用外部脚本,而是查询你的数据库的 PDF,并通过它,例如作为一个字符串。

PS:You cannot edit a PDF with FPDI!

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(554)
Macro:#if定义的MACRO是否等效于 #ifdefMACRO
上一篇
Classic是什么:Azure云服务(经典)的替代方案是什么
下一篇

相关推荐

  • php自学网视频教程从零开始学习PHP编程

    PHP自学网视频教程是一套全面的PHP视频课程,由专业的讲师以步骤式的方式向学习者提供PHP基础知识,从最基本的变量、数据类型、数组、函数到面向对象的编程、MySQL数据库操作、Cookie和Session等,内容涵盖了PHP的所有基础知识,适合初学者学习。…

    2023-05-06 11:58:32
    0 75 12
  • php开发培训好吗学习如何利用php技术提升职业技能

    PHP开发培训是一种学习PHP语言的有效方式,它可以帮助学习者更好地理解和使用PHP语言。PHP开发培训可以让学习者快速掌握PHP语言的基本概念、变量、数据类型、控制结构、函数、数据库等,从而更好地实现自己的项目开发。…

    2023-02-22 13:04:36
    0 82 28
  • php高端培训学校:学习PHP,提升职业技能,就来高端培训学校!

    PHP高端培训学校是专门为初学者提供PHP编程语言的培训机构。它们通常会提供一些有关PHP编程语言的课程,包括基础课程、高级课程、实践课程和实践项目等。这些课程可以帮助学生学习如何使用PHP编程语言来开发Web应用程序,以及如何使用PHP编程语言来构建和维护数据库。此外,这些学校还会提供一些实践项目,以帮助学生更好地理解PHP编程语言的基本原理。…

    2023-09-19 03:30:01
    0 70 17
  • php 注册:如何使用 PHP 注册新用户?

    PHP 注册是指用户在网站上注册账号,以便于登录网站,并使用网站的服务。下面是一个简单的 PHP 注册代码:…

    2023-08-01 06:19:45
    0 36 27
  • php暑期培训班参加php暑期培训班

    PHP暑期培训班是一个针对初学者的课程,旨在帮助学生们更好地理解和使用PHP。它将涵盖PHP的基础知识,如变量、数组、函数、循环等,以及更高级的主题,如MySQL数据库、AJAX、XML等。…

    2023-07-31 04:12:05
    0 18 40
  • php虚拟主机管理系统快速搭建和管理您的 PHP 虚拟主机

    php虚拟主机管理系统是一种使用php语言来管理虚拟主机的系统。它可以帮助用户快速建立和管理虚拟主机,并且提供了一套完整的管理工具,可以帮助用户更好地管理虚拟主机。…

    2023-09-21 07:11:05
    0 21 18
  • debian安装php:Debian系统中安装PHP的步骤

    使用apt-get命令安装php:检查php是否正确安装:…

    2023-07-01 01:03:24
    0 17 60
  • php 数组查找:如何使用 PHP 数组来提高效率

    PHP 数组查找是指在 PHP 数组中搜索特定的元素或值。PHP 提供了多种函数来搜索数组,这些函数可以根据需要返回元素或值的键或位置。…

    2023-01-14 02:08:58
    0 14 46

发表评论

登录 后才能评论

评论列表(20条)