透明な四角形を描画することにより、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 にテキストまたは画像が含まれていることを認識する方法は?