我们在网站上使用TCPDF生成PDF,我们在使用它来附加文件时遇到了一些困难。我们在PDF中添加空白注释,然后链接到下载(也可以作为PDF附件视图的一部分查看)
我们的问题是,当我们添加附件时,它还会添加一个带有附件链接的注释,因此实质上我们会获得双重附件,其中一些链接是直接链接以下载附件和一些链接到不可见的注释。如果我们尝试删除注释,那么我们只显示一个下载链接,但有时某些链接将不会下载文件,这似乎是完全随机且无意义的。
有没有人遇到类似的TCPDF问题,我们发现源代码非常难以解密,因为整个功能都包含在25,000行文件中。
编辑以添加代码示例
Route::get('/pdf', function() {
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$file_path = storage_path() . '/exports/pdf';
if (!File::exists($file_path)) {
File::makeDirectory($file_path, 0775, true);
}
$file = "http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg";
$pdf->Annotation(0, 0, 0, 0, 'attachment', array('Subtype' => 'FileAttachment', 'FS' => $file));
$file_no = rand(0, 500);
$file_name = "test{$file_no}.pdf";
$file_location = "{$file_path}/{$file_name}";
$output_type = "F";
$pdf->Output($file_location, $output_type);
});
示例输出:http://www.filedropper.com/test96 *请下载并在Acrobat中打开以查看附件
答案 0 :(得分:1)
我现在知道这很古老,但这是我研究类似问题时在Google上发现的第一批结果之一。因此,我希望这会对遇到类似问题的其他人有所帮助。
基于附件注释被放置在左上角且没有大小的事实,我认为这里的目的根本不是添加注释,而是附加文件,然后在附件的“附件”部分中查看它。读者。
我们遇到了一个类似的问题,即假设(对PDF规范了解得不多,并且看到的是相同的库文档)假定附件总是作为注释添加。但是事实并非如此。当添加附件 作为注释时,acrobat Reader似乎会为附件注释渲染一行,并且也是一条通用附件行。当您实际上不想要注释时,可以通过将其作为附件添加来解决。
虽然tcpdf仅允许将附件添加为注释,但是我们在此处添加了pull请求,以允许添加无注释的附件:https://github.com/tecnickcom/TCPDF/pull/236