从PDF文件扫描PHP二维码

从PDF文件扫描PHP二维码,php,pdf,qr-code,Php,Pdf,Qr Code,我有一个带有二维码的PDF文件。我在名为“tmp”的服务器文件夹中加载了该文件,现在我需要通过PHP扫描并转换该QR 我发现这个图书馆: include_once('lib/QrReader.php'); $qrcode = new QrReader('/var/tmp/qrsample.png'); $text = $qrcode->text(); //return decoded text from QR Code print $text; 但这只适用于png/jpeg文件。 有没

我有一个带有二维码的PDF文件。我在名为“tmp”的服务器文件夹中加载了该文件,现在我需要通过PHP扫描并转换该QR

我发现这个图书馆:

include_once('lib/QrReader.php');
$qrcode = new QrReader('/var/tmp/qrsample.png');

$text = $qrcode->text(); //return decoded text from QR Code
print $text;
但这只适用于png/jpeg文件。 有没有办法扫描PDF?有没有办法只在我需要的时候将PDF转换成png


谢谢大家!

您可能希望将PDF转换为支持的图像类型,或者查找支持PDF的二维码读取库。在海事组织,第一种选择更容易。通过快速搜索,我找到了PDF->img转换器。

首先,使用将您的PDF转换为图像,然后使用对其中的QR码进行解码:

include_once('lib/QrReader.php');
//the PDF file
$pdf = 'mypdf.pdf';
//retrieve the first page of the PDF as image
$image = new imagick($pdf.'[0]');
//pass it to the QRreader library
$qrcode = new QrReader($image, QrReader::SOURCE_TYPE_RESOURCE);

$text = $qrcode->text(); //return decoded text from QR Code
print $text;
//clear the resources used by Imagick
$image->clear();

大概二维码作为图像嵌入在PDF中。您可以使用命令行工具(如
pdfimages
)首先提取图像,然后在提取的图像上运行QRReader库。如果PDF中有多个图像,您可能需要反复尝试才能确定哪个图像是二维码


有关更多详细信息,请参阅。

已测试,这对我来说是有效的,而不是源代码类型的BLOB$qrcode=new QrReader($image,QrReader::SOURCE\u TYPE\u RESOURCE);