【问题标题】:How to make setSignatureAppearance() location to be dynamic depending on the page content?如何根据页面内容使 setSignatureAppearance() 位置动态?
【发布时间】:2019-11-17 16:06:41
【问题描述】:

我正在尝试在使用 tcpdf 生成的 pdf 中添加 setSignatureAppearance()。但是签名卡在一个地方,而我希望它与签名图像一起动态移动,因为我的 pdf 中的数据是完全动态的。

我调用了 setSignatureAppearance() 并在将其与我添加到标签中的图像“sign2.png”匹配后传递了高度和宽度值。但是,如果数据增加,图像会随着数据向下移动,并且签名外观会保持在原来的位置。我希望它与图像一起移动。

$html.="<td colspan=\"4\" nowrap style=\"text-align: center;border: 1px solid black\">
<b>For B4U Broadband (India) Pvt. Ltd.</b>
<br /><br /><br/>
<div id="digitalSignature">
<img src="C:/Apache24/htdocs/rapid/sign2.png" class="center" width="190" height="85">
</div>
</td> 
</tr>";
$html.="</table>";
}
$html = utf8_decode($html);
$pdf->writeHTML($html, true, 0, true, 0);
$pdf->setSignatureAppearance(110, 217, 90, 50,$page = -1);
$pdf->lastPage();
$pdf->Output('Invoice.pdf', 'I');

签名外观应随图像动态移动。

【问题讨论】:

    标签: php mysql tcpdf


    【解决方案1】:

    您可以根据页面高度(Y)/页边距/所需内容计算 setSignatureAppearance(x,y,w,h) 值,然后使用 writeHtmlCell 在相同位置写入内容(例如签名详细信息)。

    <?php
        $pdf->writeHTML($html);
    
        $getMargins = $pdf->getMargins();
        $pageWidth = $pdf->getPageWidth();
        $lMargin = $getMargins['left'];
        $rMargin = $getMargins['right'];
    
        $pdf->SetFontSize(7);
        $pdf->setSignatureAppearance($x = $lMargin, $y = $pdf->GetY()-8, $w = ($pageWidth - $lMargin - $rMargin)/2, $h = 10, -1, 'signature_for_provider');
        $pdf->setAlpha(0.5,'Normal');
        $pdf->Image('AdobeDS.png',$x+3.5,$y,0,$h);
        $pdf->setAlpha(1,'Normal');
        $pdf->writeHTMLCell($w, $h, $x, $y, $html_cell = '<blockquote>Digitally signed by '.$CN.' <br/>DN: '.$DN.'<br/>Date: '.$SigningTime.'</blockquote>', $border = 0, $ln = 0, $fill = 0);
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      相关资源
      最近更新 更多