2015-09-08 3 views
0

Я создаю сайт на основе drupal 7 с модулем для создания pdf - я использую библиотеку fpdf. Я не знаю, как я могу сделать форму для отправки некоторых данных на узел, где у меня есть PHP-код для генерации pdf. Также я все еще получаю сообщение об ошибке:drupal generate fpdf файлы

FPDF error: Some data has already been output, can't send PDF file (output started at Z:\xampp\htdocs\domain\includes\common.inc:2748) 

, где я нашел:

ob_flush(); 

, когда я пытаюсь изменить его

ob_clean() 

все узлы генерировать PDF:/

ответ

0

Вы можете попробовать использовать другой модуль, который является простым - pdf_using_mpdf С в этом модуле вы можете получить PDF-код какого-либо узла, вызывающего www.YOUR_SITE.DOMAIN/node/NID_ID/pdf - где NID_ID - это идентификатор узла, который вы хотите отображать как PDF.

Или же вы можете использовать hook_menu(), если вам нужно вынести в PDF только некоторые поля вашего узла - добавить элемент, как

$items['%node/create_pdf'] = array(
    'title' => '', 
    'description' => '', 
    'page callback' => 'custom_callback_create_pdf', 
    'page arguments' => array(1), 
    'access callback' => 'node_access', 
    'type' => MENU_CALLBACK, 
); 

Определение вы обратного вызова, как

function custom_callback_create_pdf($node) { 
    // Check if current node has needed field. 
    if (isset($node->field_my_custom_field_of_node)) { 
    // Render only field 'field_my_custom_field_of_node'; 
    $view = node_view($node); 
    $output = render($view['field_my_custom_field_of_node']); 
    return pdf_using_mpdf_api($output, $node->title); 
    } 
    else { 
    return pdf_using_mpdf_api("<html><body>Current page do not required field.</body></html>", $node->title); 
    } 
} 

и кнопки печати для загрузки:

$pdf_button = l(t('Download as PDF'), 'node/' . $node->nid . '/create_pdf', array(
    'attributes' => array(
     'target' => '_blank', 
     'class' => array('render_as_pdf'), 
    ), 
)); 
    echo '<p>' . $pdf_button . '</p>'; 
Смежные вопросы