PDF表单解析或提交PDF并打开浏览器

时间:2014-10-07 22:42:59

标签: php forms parsing pdf browser

我已经搜遍过,无法找到解决方案。我正在使用PHP和TCPDF库动态创建一个简单的表单,如下所示:

    function getPDF() {
    // create new PDF document
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

    // set document information
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('EnTax');
    $pdf->SetTitle('SRED Score');
    $pdf->SetSubject('SRED Score Application');
    $pdf->SetKeywords('TCPDF, PDF, example, test, guide');

    // set default header data
    $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);

    // set header and footer fonts
    $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
    $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

    // set default monospaced font
    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

    // set margins
    $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
    $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

    // set auto page breaks
    $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

    // set image scale factor
    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

    // IMPORTANT: disable font subsetting to allow users editing the document
    $pdf->setFontSubsetting(false);

    // set font
    $pdf->SetFont('helvetica', '', 10, '', false);

    // add a page
    $pdf->AddPage();
    $html = '';
    $html .= '<form method="POST" action="http://localhost/index.php?method=submit_form">';
    $html .= '<label for="question1" class="control-label">Question 1</label><textarea id="question1" name="question1" style="width:100%;height:100px;" class="ccm-input-textarea form-control">'.$this->post('question1').'</textarea>';
    $html .= '<input type="submit" class="btn ccm-input-submit btn-default" id="getpdf" name="getpdf" value="Launch Website"></form>';
    $pdf->writeHTML($html, true, false, true, false, '');
    $pdf->Ln(6);
    $pdf->Output('sred_score.pdf', 'D');        
}

这在使用Adobe Acrobat时工作正常但是当我提交嵌入在PDF文件中的表单时,如果这打开了带有URL的浏览器,那将是理想的。可悲的是,它打开了另一个带有服务器页面的Adobe Acrobat - 当然看起来很糟糕。是否有一种神奇的方式告诉Acrobat我真的想打开浏览器? ...我可以使用TCPDF执行此操作吗?

--- ---- OR

...我也试图弄清楚如何使用PHP PDFParser库从表单字段中获取值,但是当我可以获得静态测试文本时,我似乎无法访问表单。这是否可以使用TCPDF或PDFParser?解析代码的示例如下所示:

    $parser = new \Smalot\PdfParser\Parser();
    $pdf = $parser->parseFile($file);
    $pages  = $pdf->getPages();

    // Loop over each page to extract text.
    $out = '';
    foreach ($pages as $page) {
        $out .= $page->getText() . '<br/>';
        foreach($page->getXObjects() as $o) {
            $out .= 'OBJ: '.$o->getText().'<br/>';
        }
    }
    echo $out;

0 个答案:

没有答案