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)