0

我正在尝试在 PDF 文件中生成一个表单,其中包含具有默认值的可编辑文本字段。这是代码的摘录:

$pdf = new TCPDF('P','mm','A5',true,'UTF-8',false);

$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Author');
$pdf->SetTitle('Document');

$pdf->SetMargins(0,0,0);
$pdf->setImageScale(1);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetAutoPageBreak(FALSE, 0);
$pdf->setLanguageArray($l);

$pdf->TextField('field',100,30,array(),array(V=>'hello world'),10,10);

$pdf->Output('out.pdf','I');

我正在 Chrome 的 PDF 查看器和 Adob​​e Reader X 中对此进行测试,结果是默认文本没有出现,尽管当我单击该字段时它会出现。当我更改初始值并取消聚焦该字段时,文本字段将可见。如果我不更改初始字段并且只是取消焦点而不更改任何内容,则文本字段仍然不可见。

另一个问题是场地周围的丑陋边界。

我基本上想要实现的是:

<input type="text" value="hello world" style="border:0"/>

这是生成的 PDF:doc.pdf

4

4 回答 4

2

$pdf->TextField('field',100,30,array(),array( 'v' =>'hello world'),10,10);

于 2012-08-22T07:55:46.690 回答
2

请参阅第 424 页上的Acrobat API 参考的TCPDF 文档和官方Javascript

或使用

$pdf->TextField('customer', 159, 7, array('multiline'=>true, 'lineWidth'=>0, 'borderStyle'=>'none', 'defaultStyle' => array('textFont'=>array('fontWeight'=>'bold'))), array('v' => $customer_name));
于 2016-04-05T15:36:15.553 回答
0

刚开始使用 TCPDF,遇到了同样的问题。

将您的文本字段更改为此

$pdf->TextField('field',100,30,array(),array('V'=>'hello world','dv'=>'hello world'),10,10);

您需要 'v'=> 设置和 'dv' => 设置。

您可以在 TCPDF 附带的示例代码 example_014.php 中看到它的示例

于 2012-09-27T20:24:35.820 回答
0

就我而言,我们将 html 转换为 pdf(其中包含许多可编辑字段)。
此代码禁用了转换后的 pdf 中所有字段的边框:

$pdf->setFormDefaultProp(array('lineWidth' => 0, 'borderStyle' => 'none'));

于 2019-01-08T11:52:08.523 回答