Foxit - Создать динамический ответ при отправке PDF

Я пытаюсь вернуть динамическую строку в качестве ответа, когда PDF отправляется через Adobe Reader или Foxit6. Я написал код для выполнения этого для Adobe, но Foxit отображает только окно с предупреждением, в котором указывается, была ли отправка успешной ("Ваша отправка формы прошла успешно!") Или нет (мне не удалось вызвать это приглашение). Я хотел бы по возможности манипулировать текстом подсказки, в противном случае представить ответное сообщение.

В коде получения отправки я буду выполнять некоторые проверки и запросы MYSQL, и я хочу иметь возможность сообщать пользователю о любых ошибках или красных флажках.

Кроме того, я использую pdftk для создания динамического pdf, так как он уже находится на сервере, и я хотел бы избежать использования дополнительной библиотеки, хотя процесс, который я использую, действительно немного усложняется.

Вот поток:

  1. Пользователь отправляет PDF-файл, используя закладку "Отправить форму" в формате экспорта: HTML.
  2. PHP:
    • Собирает значения $_POST
    • Подтверждает
    • Сохраняет в базу данных
    • Создает ответ в формате PDF

Мой код работает для Adobe, но не Foxit:

<?php
ob_start();
foreach($_POST as $key=>$val){
    if(!$reader && strpos($key,"Content-Disposition:_form-data;_name")){
        $reader="Foxit";
        $regex="/\"(.*)\"\r\n\r\n(.*)\r\n/";
        if(preg_match_all($regex,$val,$matches)){
            $count=sizeof($matches[1]);
            for($x=0; $x<$count; ++$x){
                $array[$matches[1][$x]]=$matches[2][$x];
            }
        }
        break;
    }else{
        $array["$key"]=$val;
        if(!$reader){$reader="Adobe";}
    }
}

// validation section, redflags are added to $alert

// connect to DB and INSERT INTO mysql query, errors added to $alert

if($reader!="Foxit"){   // hands tied at the moment -- no way to directly display a response to user
    /* Submitting URL must be appended with "#FDF" so source pdf knows to expect an FDF as response */
    header("Content-type: application/vnd.fdf");
    if(!$alert){$alert="Submission Successful";}
    echo "%FDF-1.2\n%âãÏÓ\n1 0 obj\n<<\n/FDF\n<<\n/Status($alert)\n>>\n>>\nendobj\ntrailer\n<</Root 1 0 R>>\n%%EOF";
}

ob_end_flush();
?>

1 ответ

Решение

Кажется, мой желаемый результат невозможен на Foxit.

Другие вопросы по тегам