【问题标题】:FPDF FPDM - Merge Error due to PDFTKFPDF FPDM - 由于 PDFTK 导致的合并错误
【发布时间】:2023-03-31 16:35:01
【问题描述】:

首先:这是我的第一个问题,如果代码合成器不容易阅读,请不要找到使其干净的方法。

我正在尝试填充我使用 Adob​​e Creator 制作的大型 PDF 模板。

FPDM 与包含在 fpdm 库中的 template.php 工作正常,但是当我将 PDF 模板更改为我的模板时,会出现此错误,经过 pdftk。

FPDF 合并错误:找不到注释对象的当前值 (/v) 288,解析过程中出现问题(解压缩您的 pdf 并 重试)或您的 pdf 已损坏。

我在互联网上没有找到任何关于这个问题的主题。

错误来自我的 PDF 模板,原因是他的编码方式。 在我的文本编辑器中打开我的 PDF 后,我看到对象 288(和其他对象)没有 /v 属性,正如错误所暗示的那样。那么我想编码方式不是FPDM等待的方式。 在使用 pdftk 之前,错误是:“PDF 为空”之类的。

定义('DRUPAL_ROOT',getcwd()); include_once DRUPAL_ROOT 。 '/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // #1 不是必须的 require_once 'fpdf/src/fpdf.php'; require_once 'fpdf/examples/form_filling/fpdm.php'; // 测试胜利后使用 $sid = '58'; $node = new stdClass(); $节点->nid = '270'; $temp_submission = webform_menu_submission_load($sid, $node->nid); // NOM 是我的模板 PDF 的第一个字段 id。 $字段 = 数组( 'NOM' => '我的名字' ); $pdf = new FPDM('Dossier_de_candidature_2ndaire_2014_adaptev1_fpdf.pdf'); $pdf->加载($fields, TRUE); $pdf->合并(); $pdf->输出('formulaire.pdf', 'D'); ?>

谢谢!

【问题讨论】:

  • EDIT #2:我在 PDFTK 文档中看到 pdftk 不适用于 PDF 1.6 版本。这就是我的情况。我试图找到一种方法来更改我的 pdf 版本或使用 PDFTK 以外的其他东西。总是需要帮助,但如果我的小搜索可以帮助某人,我会很高兴:)

标签: php pdf encoding fpdf pdftk


【解决方案1】:

我赢了!

我最终还是选择了忘记FPDF,直接自己做系统,这简直就是我想的FPDF。 别担心,这根本不难。

看看这个网站,了解 fdf 是如何填充 pdf 模板(映射)和.. 做的:)

http://doc.ubuntu-fr.org/pdftk

第 1 步:在 PhP 中创建 FDF 内容

/* A FDF content empy */
$xfdf_head = '<?xml version="1.0" encoding="UTF-8"?><xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"><fields>';
$xml_data = '';
$xfdf_end = '</fields></xfdf>';

/* Generate all fields with field_key form webform and value form submission */
foreach ($webform['#node']->webform['components'] as $key => $value) {

    if ($webform['#submission']->data[$key]['value'][0]){
        $valeur = $webform['#submission']->data[$key]['value'][0];
    } else {
        $valeur = '';
    }

    $xml_data .= '
        <field name="'.$webform['#node']->webform['components'][$key]['form_key'].'">
            <value>'.$valeur.'</value>
        </field>';
}


$FDF_content = $xfdf_head.$xml_data.$xfdf_end;

第 2 步:创建一个 FDF 文件并在其中写入您的内容

$FDF_file = fopen('new_fdf.fdf', 'w');
fwrite($FDF_file, $FDF_content);
fclose($FDF_file);

第 3 步:在 Php 中使用 PDFTK 命令(检查网站顶部)[在之前填充这 2 个变量..]

$pdftk_command = '/usr/bin/pdftk '. $pdf_template .' fill_form new_fdf.fdf output '.$new_fillup_pdf;
shell_exec($pdftk_command);

第 4 步:强制下载或在 PHP 中打开新的 PDF。 (我让你找到方法,这很容易)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多