3

透明な四角形を描画することにより、FPDI および TCPDF ライブラリを使用して既存の pdf ファイルを編集します。

$pdf = new FPDI(); 
$pagecount = $pdf->setSourceFile('my.pdf'); 
$unserialized = unserialize($questionaire['cordinates']); 
for ($page_counter = 1; $page_counter <= $pagecount; $page_counter++) {
    $tplidx = $pdf->ImportPage($page_counter);
    $s = $pdf->getTemplatesize($tplidx);
    $pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L', array($s['w'], $s['h']));
    $pdf->useTemplate($tplidx, 0, 0, 0, 0, true);

    for ($i = 0; $i < sizeof($unserialized); $i++) {
        $selection = (object)$unserialized[$i];
        if ($page_counter == $selection->current_frame) {
            switch ($selection->type) {
                case "Rect":
                    $pdf->SetAlpha(0.3);
                    $color = int2rgb($selection->select_color);
                    $pdf->Rect(($selection->left), ($selection->top), ($selection->width), ($selection->height), 'F', NULL, $color);
                            break;
                    case "Comment":
                        break;
            }
        }
    }
}

問題は次のとおりです。
長方形がテキストを覆っているため、出力PDFファイルの読み取り中に選択することはできません。TCPDF にはレイヤー メソッドがありますが、要素をグループ化し、それらの可視性を管理することしかできません。
また、一部の PDF ファイルにはテキスト要素が含まれており、他のファイルには画像 (ページのスナップショット) が含まれています。

質問:
インポートされたページからのストリームを最上位レイヤーとして設定し、下のレイヤーまたは背景として四角形を描画することは可能ですか?
インポートされた PDF にテキストまたは画像が含まれていることを認識する方法は?

4

0 に答える 0