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

Php PDF表单解析或提交PDF并打开浏览器,php,forms,parsing,pdf,browser,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(

我找遍了,找不到解决办法。我正在使用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');        
}
函数getPDF(){ //创建新的PDF文档 $pdf=新的TCPDF(pdf页面方向,pdf单元,pdf页面格式,真,'UTF-8',假); //设置文档信息 $pdf->SetCreator(pdf\u CREATOR); $pdf->SetAuthor('EnTax'); $pdf->SetTitle(“SRED分数”); $pdf->SetSubject(“SRED分数应用程序”); $pdf->SetKeywords('TCPDF,pdf,示例,测试,指南'); //设置默认标题数据 $pdf->SetHeaderData(pdf\u页眉\u徽标、pdf\u页眉\u徽标\u宽度、pdf\u页眉\u标题、pdf\u页眉\u字符串); //设置页眉和页脚字体 $pdf->setHeaderFont(数组(pdf\u FONT\u NAME\u MAIN',pdf\u FONT\u SIZE\u MAIN)); $pdf->setFooterFont(数组(pdf字体名称数据),pdf字体大小数据); //设置默认的单间距字体 $pdf->SetDefaultMonospacedFont(pdf\u字体\u等距); //设置边距 $pdf->SetMargins(pdf\u MARGIN\u左、pdf\u MARGIN\u上、pdf\u MARGIN\u右); $pdf->SetHeaderMargin(pdf\u MARGIN\u HEADER); $pdf->SetFooterMargin(pdf\U MARGIN\U FOOTER); //设置自动分页符 $pdf->SetAutoPageBreak(TRUE,pdf\u MARGIN\u BOTTOM); //设置图像比例因子 $pdf->setImageScale(pdf图像比例); //重要提示:禁用字体子集设置以允许用户编辑文档 $pdf->setFontSubsetting(假); //设置字体 $pdf->SetFont('helvetica','',10',,false); //添加页面 $pdf->AddPage(); $html=''; $html.=''; $html.=“问题1”。$this->post('question1'); $html.=''; $pdf->writeHTML($html,true,false,true,false,”); $pdf->Ln(6); $pdf->Output('sred_score.pdf','D'); } 当使用AdobeAcrobat时,它工作得很好,但是当我提交嵌入在PDF文件中的表单时,如果它打开一个带有URL的浏览器,那将是非常理想的。不幸的是,它打开了另一个带有服务器页面的AdobeAcrobat,这当然看起来很可怕。有没有神奇的方法告诉Acrobat我真的想打开浏览器。。。我可以用TCPDF来做这件事吗

---或----

…我还试图找出如何使用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;
$parser=new\Smalot\PdfParser\parser();
$pdf=$parser->parseFile($file);
$pages=$pdf->getPages();
//在每页上循环以提取文本。
$out='';
foreach($页为$页){
$out.=$page->getText()。
; foreach($page->getXObjects()作为$o){ $out.='OBJ:'.$o->getText()。
; } } 回音$out;
只需将for action url设置为您的实际站点我正在使用fpdf创建pdf,但我不太确定,但我想它可能相当相等。在最后一行$pdf->Output('sred_score.pdf','D');D通常告诉pdf您希望结果显示在哪里。应有一个内联开启选项,fpdf为“I”。抱歉,如果这是错误的,但可能是个主意。@Dagon:您是指HTML表单标记的操作URL吗?目前它实际上是本地主机。是否可以设置特定于PDF的操作?@michael:谢谢,但我不想内联显示PDF文件,即下载到我电脑上的文件,这正是我想要的。使用AdobeAcrobat查看时,我希望Acrobat使用HTML表单标记URL指定的URL打开浏览器。我最终尝试获取表单结果并预填充web表单。