Php PDF表单解析或提交PDF并打开浏览器
我找遍了,找不到解决办法。我正在使用PHP和TCPDF库动态创建一个简单表单,如下所示: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(
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表单。