Skip to content

Início / Optitravel / Framework V2

PDF Viewer

Todos os ficheiros de configuração para o PDF deverão ser criados em online/common/documents/pdf_viewer/pdf_calls/

Segue um exemplo do pdf dos Bilhetes de Aviação:

Configuração Base

// Instantiate Class
$pdf_viewer = new PDFViewer($vt);
// Set all parameters
$session_id = $pdf_viewer->setParams($_GET, $_SESSION);
// Set parameters to be sent to pdf file
$pdf_viewer->setURLParams($_GET, $_SESSION, $session_id);
// Set path to pdf file
$pdf_viewer->setPDFUrl('/optitravel/online/backoffice/modules/data_management/documentacao/individuais/plan_ticket.php', $_SESSION, $session_id);

Existe 3 botões fixos o Enviar email, download e personalizar, nem todos os pdfs precisam dos 3, podendo ocultá-los.Também é possível criar botões dinâmicos para cada pdf, o exemplo cria um botão com 2 opções para mudar a linguagem e não mostra o botão Personalizar.

// Set optional buttons to change pdf language
$optional_btns = [
    [
        "label" => "Idioma", // In case no option is selected, set label to show
        "name"  => "lang",
        "type"  => "select",
        "class" => "version_select",
        "related" => "version_opts",
        "form_url" => "/optitravel/online/common/documents/pdf_viewer/pdf_calls/pdf_set_avi_doc_params.php", // Url definido para si mesmo para processar os novos parâmetros de linguagem e enviar para o ficheiro pdf
        "options" => [
            [
                'label' => 'Português', // Label de opção
                'value' => 'PT', // Valor da opção
                'selected' => $_GET['lang'] == 'PT' ? 'selected' : '' // Verificação se está selecionado
            ],
            [
                'label' => 'Inglês',
                'value' => 'ENG',
                'selected' => $_GET['lang'] == 'ENG' ? 'selected' : ''
            ],
        ]
    ]
];
$ignore_btns = ['personalize'];  // Doesn’t show personalize button
$pdf_viewer->setPDFBtns($_SESSION, $session_id, $ignore_btns, $personalized_fields, $optional_btns); // Build pdf buttons

Terminar configuração

Por fim, configuramos o nome do ficheiro pdf.

O nome definido só terá efeito na opção de download no iframe. O nome definido deverá ser igual ao botão “Download”.

// Set pdf filename on download from iframe
$filename = 'ticket_'.str_replace('/','_', $rsInfo->Fields('pax')).'.pdf';
$pdf_viewer->setFilename($filename, $_SESSION, $session_id);

// Redirect to PDF Viewer
header("Location: ../pdf_viewer.php?session_id=".$session_id);
exit();

Envio por email

Para configurar o envio por email, é necessário indicar o caminho para o ficheiros e os parâmetros $_GET para o mesmo

// Set pdf send email button link              
$email_url_params = [
               'reserve' => $_GET['reserve'],
               'ticket' => $_GET['ticket'],
               'avi_id' => $_GET['aviacao_id'],
               'cod_cli' => $rsInfo->Fields('client_user'),
];
$base_url = '/optitravel/online/backoffice/modules/common/documentation_send.php';
$pdf_viewer->setSendEmailUrl($base_url, $email_url_params, $_SESSION, $session_id);

Botões que podem ser ignorados

personalize
send_email
download

(Última atualização: 17/03/2025)