当前位置: 首页 > wzjs >正文

网站建设亼仐团百度一下电脑版首页

网站建设亼仐团,百度一下电脑版首页,网站上传发生一个ftp错误,用discuz做门户网站不使用SOAP协议,通过XFDF格式实现PDF表单与数据库交互的方法。该方法兼容免费的Adobe Reader,且无需特殊权限设置。 背景与问题 历史方案: Adobe曾提供ADBC接口(基于ODBC),但在Acrobat 9后被移除。SOAP方案在免费版Rea…

不使用SOAP协议,通过XFDF格式实现PDF表单与数据库交互的方法。该方法兼容免费的Adobe Reader,且无需特殊权限设置。


背景与问题

  • 历史方案:

    • Adobe曾提供ADBC接口(基于ODBC),但在Acrobat 9后被移除。
    • SOAP方案在免费版Reader中无法使用。
  • 新方案核心:
    使用XFDF(XML版本的FDF)作为数据交换格式,通过PHP脚本作为中间层连接PDF表单与数据库。


FDF与XFDF格式对比

FDF示例

%FDF-1.2
%âãÏÓ
1 0 obj
<</FDF<</F (testXFDF.pdf)/Fields[<</T (Field 1)/V (test data)>>]>>
>>
endobj

XFDF示例

<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"><fields><field name="Field 1"><value>test data</value></field></fields>
</xfdf>

优势: XFDF基于XML,更易解析和生成。


提交XFDF数据
查询/更新
返回XFDF数据
PDFForm
+submitForm()
PHPScript
+parseXFDF()
+generateXFDF()
+queryDatabase()
Database
+getNextSerial()

实现步骤

1. 提交表单数据到服务器

PDF表单通过submitForm()方法以XFDF格式提交数据到PHP脚本。

2. 服务器端处理(PHP)

基础接收脚本
<?php$myXFDF = file_get_contents("php://input");echo "Received some data.";
?>
返回数据到表单
<?phpheader('Content-type: application/vnd.adobe.xfdf');$returnXFDF = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"><fields><field name="Field 1"><value>Updated Value</value></field></fields>
</xfdf>
EOT;echo $returnXFDF;
?>

关键点: URL需附加#XFDF以告知Acrobat返回格式。


完整PHP解决方案

功能

  • 解析接收的XFDF数据。
  • 生成数据库唯一序列号。
  • 返回更新后的XFDF数据。

核心代码

<?phpfunction getNextSerial($userName) {$mysqli = new mysqli("localhost", "theUser", "thePassword", "serialnumbers");if (mysqli_connect_errno()) {printf("Connect failed: %s\n", mysqli_connect_error());exit();}$query = "INSERT INTO serialnumbers (username, date) VALUES (\"" . $mysqli->real_escape_string($userName) . "\", NOW())";$mysqli->query($query);$idx = $mysqli->insert_id;$mysqli->close();return $idx;}function createXFDF($info, $enc='UTF-8', $file=''){$domtree = new DOMDocument('1.0', $enc);$xmlRoot = $domtree->createElement("xfdf");$xmlRoot->appendChild($domtree->createAttribute('xmlns'))->appendChild($domtree->createTextNode("http://ns.adobe.com/xfdf/"));$xmlRoot = $domtree->appendChild($xmlRoot);$fields = $domtree->createElement("fields");addXFDFData($domtree, $fields, $info);$xmlRoot->appendChild($fields);header('Content-type: application/vnd.adobe.xfdf');echo $domtree->saveXML();}$myXFDF = new DOMDocument('1.0');$myXFDF->load("php://input");$xpath = new DOMXpath($myXFDF);$xpath->registerNameSpace('xfdf', 'http://ns.adobe.com/xfdf/');$elements = $xpath->query("//xfdf:fields/xfdf:field[@name='UserName']")->item(0);$userName = "";if ($elements instanceof DomElement) {$userName = $elements->nodeValue;}if (strcmp($userName, "") !== 0) {$serialNumber = getNextSerial($userName);$info = array("SerialNumber" => $serialNumber);createXFDF($info);}
?>

注意事项

  1. 浏览器兼容性:
    Chrome/Firefox等浏览器内置PDF查看器不支持此功能,必须使用Adobe Acrobat或Reader。

  2. 安全性:
    Acrobat会提示用户确认是否允许提交操作。

  3. 部署建议:

    • 确保服务器支持PHP。
    • 根据实际需求调整数据库连接和字段映射。

最后

通过XFDF和PHP中间层,实现了PDF表单与数据库的无缝交互,解决了SOAP和ADBC的限制问题。适用于需要动态填充或提交数据的PDF表单场景。

http://www.dtcms.com/wzjs/566062.html

相关文章:

  • 如何找专业的网站建设公司天津市住房与城乡建设厅网站
  • 好的网站设计题目网络设计报告的研究意义
  • 乐器销售网站模板做网站还有价值吗
  • 烟台网站建设技术支持工作室是个体户还是公司
  • 中山市智能h5网站建设公司莱州环球网站建设
  • 成都网站设计精选柚v米科技苏州网站建设找哪家
  • 企业网站策划方案校园网站开发的目的
  • 广告公司网站官网中国软文网官网
  • 四川网站建设的公司哪家好施工企业上市公司有哪些
  • 工信部备案网站打不开宜家家居官网网上商城app
  • 做网站的字体怎么查找网站的根目录
  • 换网站公司软件开发需求分析常用的工具
  • 电子商务网站开发教案汽车网站建设论文
  • nodejs做的网站手机个别网页打不开
  • 为什么要做一个营销型网站外国网站架构
  • vps网站权限原创文章代写平台
  • 报名网站开发多钱wordpress如何加广告
  • 网站建设找哪家启明星网站建设
  • 怎么增加网站反链利用微博做网站排名
  • 怎么看网站发的外链中国核工业第二二建设有限公司待遇
  • 装饰公司做网站小程序搭建步骤
  • 网站开发基本流程图怀化网站设计
  • 怎么制作网线水晶头为什么要做网站优化
  • 建设网站花多少钱哪个博客可以做单页网站
  • 做阿里巴巴网站电话公司网站首页怎么设置
  • 安徽省住房和城乡建设厅网站查询网站建设与应用
  • 全包家装原创装修网站想要一个免费的网站
  • 江宁招网站建设58新媒体平台
  • 网站怎样秒收录wordpress上传大文件
  • 深圳网站设计公司发展历程用html编写淘宝网站怎么做