1

特定の解像度でメンバーIDカード(自分自身を識別するために使用されるクレジットカードのようなもの)を表示するpdfファイルを生成できるPHPスクリプトをコーディングする必要があります。

説明させてください:
私はカードの基本的な設計図を png ファイル形式で持っています。台本にはメンバーの名前と生年月日、連載を入れる必要があります。これまでのところ、問題はありません。適切に機能する PHP ライブラリがたくさんあります。

私の問題は、結果のpdf(正確には、カードの生成された画像)が特定の解像度(できれば300dpi)を満たしていることを確認して、印刷が正しく見えるようにすることです。

何か案は?

編集
特定の解像度で画像をスケーリングできるTCPDFライブラリを使用して解決しました。
ここから入手してください: http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf

@ドンを編集

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');
4

1 に答える 1

1

この目的にはImagemagickを使用し、 Imagickを使用して 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サイトのどこかに文書化する必要があります。

于 2010-02-03T10:48:15.510 に答える