使用PHP动态创建pdf格式的会员身份证?

使用PHP动态创建pdf格式的会员身份证?,php,pdf,dynamic,resolution,Php,Pdf,Dynamic,Resolution,我需要编写一个PHP脚本,让我生成一个pdf文件,以一定的分辨率显示会员身份证(类似于用于识别自己身份的信用卡) 让我解释一下: 我有png文件格式的卡的基本蓝图。脚本需要输入成员的姓名和生日以及序列号。到目前为止,没有问题——有很多很好的PHP库 我的问题是确保生成的pdf(准确地说是生成的卡片图像)符合一定的分辨率(最好是300dpi),以便打印时看起来正确 有什么想法吗 编辑 我使用TCPDF库解决了这个问题,该库允许您以特定分辨率缩放图像。 在这里获取: 编辑@Don require_o

我需要编写一个PHP脚本,让我生成一个pdf文件,以一定的分辨率显示会员身份证(类似于用于识别自己身份的信用卡)

让我解释一下:
我有png文件格式的卡的基本蓝图。脚本需要输入成员的姓名和生日以及序列号。到目前为止,没有问题——有很多很好的PHP库

我的问题是确保生成的pdf(准确地说是生成的卡片图像)符合一定的分辨率(最好是300dpi),以便打印时看起来正确

有什么想法吗

编辑
我使用TCPDF库解决了这个问题,该库允许您以特定分辨率缩放图像。
在这里获取:

编辑@Don

require_once(dirname(__FILE__).'/tcpdf/config/lang/eng.php');
require_once(dirname(__FILE__).'/tcpdf/tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,
                 true, 'UTF-8', false); 

// set document information
$pdf->SetCreator('SO-youth');
// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 

// set font
$pdf->SetFont('courier', '', 10);

// add a page
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(100);

$cred = <<<EOT
    <p>
        <b>{$userdata->first_name} {$userdata->last_name}</b><br/>
        <span style="font-size: 80%;">{$userdata->geburtstag}</span>
    </p>
EOT;
$id = <<<EOT
    <span style="font-size: 60%;">{$userdata->club_id}</span>
EOT;

$pdf->Image(dirname(__FILE__).'/img/clubcard.jpg',
            10, 10, 85.6, 53.98, null, null, null, false, 300);

$pdf->writeHTMLCell(60, 15, 50.5, 20.5, $cred);
$pdf->writeHTMLCell(50, 20, 77, 50.5, $id);

//Close and output PDF document
$pdf->Output($userdata->filename, 'F');
require_once(dirname(__文件)。'/tcpdf/config/lang/eng.php');
require_once(dirname(__文件)'/tcpdf/tcpdf.php');
//创建新的PDF文档
$pdf=新的TCPDF(pdf页面方向、pdf单元、pdf页面格式、,
正确,“UTF-8”,错误);
//设置文档信息
$pdf->SetCreator(“所谓的青年”);
//删除默认页眉/页脚
$pdf->setPrintHeader(假);
$pdf->setPrintFooter(false);
//设置默认的单间距字体
$pdf->SetDefaultMonospacedFont(pdf\u字体\u等距);
//设置边距
$pdf->SetMargins(pdf\u MARGIN\u左、pdf\u MARGIN\u上、pdf\u MARGIN\u右);
//设置自动分页符
$pdf->SetAutoPageBreak(TRUE,pdf\u MARGIN\u BOTTOM);
//设置图像比例因子
$pdf->setImageScale(pdf图像比例);
//设置字体
$pdf->SetFont('courier','',10);
//添加页面
$pdf->AddPage();
//设置JPEG质量
$pdf->setJPEGQuality(100);
$cred=geburtstag}

EOT; $id=writeHTMLCell(60,15,50.5,20.5,$cred); $pdf->writeHTMLCell(50,20,77,50.5,$id); //关闭并输出PDF文档 $pdf->Output($userdata->filename,'F');
我将用于此目的,并且能够直接从php访问它

然后,您将能够获取原始图像,向其中添加一些文本,并以pdf格式输出(或存储),如下所示:

    $image = new Imagick($filename);
    $draw = new ImagickDraw();
    $draw->setFont($font);
    $draw->setFontSize($fontSize);
    $image->annotateImage($draw, $xpos, $ypos, $rotation, $text);
    // Changes the dpi
    $image->setImageResolution(200,200);
我找不到快速输出/存储为pdf格式的正确代码,但应该在Imagemagick网站的某个地方进行记录。

我将使用它,同时可以直接从php访问它

然后,您将能够获取原始图像,向其中添加一些文本,并以pdf格式输出(或存储),如下所示:

    $image = new Imagick($filename);
    $draw = new ImagickDraw();
    $draw->setFont($font);
    $draw->setFontSize($fontSize);
    $image->annotateImage($draw, $xpos, $ypos, $rotation, $text);
    // Changes the dpi
    $image->setImageResolution(200,200);

我找不到将其快速输出/存储为pdf的正确代码,但应该在Imagemagick网站上的某个地方进行记录。

这肯定会起作用,坏的是lib没有也不能安装(低成本hoster:/)。这肯定会起作用,坏的是lib没有也不能安装(低成本hoster:/)。