【问题标题】:TCPDF - adding annotations for files causes duplicate attachmentsTCPDF - 为文件添加注释会导致重复附件
【发布时间】:2015-09-21 01:31:10
【问题描述】:

我们在我们的网站上使用 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 中打开查看附件

【问题讨论】:

  • 好问题包含代码
  • 嗨,Dragon,对不起,我们无权发布实际代码,所以我编写了一个代码示例来模拟我们正在努力实现的目标,还包括一个示例输出,谢谢

标签: php laravel pdf laravel-4 tcpdf


【解决方案1】:

我知道这已经很古老了,但这是我在研究类似问题时在 Google 上找到的首批结果之一。所以我希望这可以帮助遇到类似问题的其他人。

基于附件注释被放置在没有大小的左上角的事实,我认为这里的意图根本不是添加注释,而是附加一个文件,然后在附件部分查看它读者。

假设(不太了解 PDF 规范并看到相同的库文档)附件总是作为注释添加时,我们遇到了类似的问题。但事实并非如此。当附件 添加为注释时,acrobat 阅读器似乎会为附件注释呈现一条线,并且 也 为通用附件线。当您实际上不需要注释时,可以通过将其添加为附件来解决此问题。

虽然 tcpdf 目前只允许添加附件作为注释,但我们在此处添加了一个拉取请求以允许添加不带注释的附件:https://github.com/tecnickcom/TCPDF/pull/236

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 2015-01-02
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多