跳到内容
  • 福昕首页
  • 开发中心
  • SDK文档资料
  • 福昕首页
  • 开发中心
  • SDK文档资料
申请试用
  • 企业自动化
    • Compressor
  • 福昕CloudAPI
  • 福昕PDF SDK 软件开发工具包
    • 福昕PDF SDK(ActiveX)
    • 福昕PDF SDK(桌面/服务器)
    • 福昕PDF SDK(Plug-in)
    • 福昕 PDF SDK(安卓)
    • 福昕PDF SDK(iOS)
    • 福昕PDF SDK(Web)
  • 福昕管理控制台
    • 公有云
    • 私有云
    • 通用情况
  • 福昕阅读器
    • RMS插件
  • 福昕高级编辑器
    • AI助手
    • Mac版本
      • 常规问题
    • windows版本
      • ECM集成
      • 互联PDF
      • 企业管理指南
      • 保护
      • 内容编辑
      • 创建PDF
      • 压缩
      • 图章
      • 安装与卸载
      • 常见问题
      • 打印
      • 注释/评论
      • 福昕插件
      • 翻译助手
      • 翻译助手教程
      • 试用与激活
      • 转换
      • 页面管理
    • 教育用户
      • 论文查重
      • 论文畅
      • 操作指南
    • 网页版
      • Foxit eSign
      • 电子签章
    • 订阅
    • 资源
  • 福昕高级编辑器Linux版本
  • 福船图纸管理系统
  • 福昕PDF SDK 软件开发工具包 | 福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(Web)
  • 标签:
  • exportToFile,importFromFile,pdfdoc,pdfform,PDFViewer,PDF表单,xml文件,导入,导出,数据填充,表单数据

如何导入导出表单数据

  • 福昕知识库
  • 2025-11-12

本文档详细介绍如何通过 Foxit PDF Web SDK 11 版本接口,实现 PDF 表单数据的导入(从 XML 文件加载数据到表单)和导出(将表单数据保存为 XML 文件)功能。

1. 导入表单数据(从 XML 文件加载)

/**
* 导入表单数据(WebSDK 11 版本)
* 从指定 XML 文件读取表单数据,并填充到当前 PDF 表单中
*/
async function importFormData() {
try {
// 1. 配置 XML 数据源路径(本地文件需放在项目可访问目录,远程文件需处理跨域)
const formDataPath = "./form/openfile-copy.xml"; // 替换为实际文件路径

// 2. 读取文件并转换为 ArrayBuffer(SDK 要求的二进制格式)
const response = await fetch(formDataPath);
if (!response.ok) {
throw new Error(`文件加载失败:${response.statusText}`);
}
const fileBuffer = await response.arrayBuffer();

// 3. 获取 SDK 核心实例(异步获取,确保实例已初始化)
const pdfViewer = await pdfui.getPDFViewer();
const pdfDoc = await pdfViewer.getCurrentPDFDoc(); // 获取当前打开的 PDF 文档
const pdfForm = pdfDoc.getPDFForm(); // 获取表单操作对象

// 4. 导入表单数据(指定数据格式为 XML)
await pdfForm.importFromFile(fileBuffer, PDFViewCtrl.commons.FileFormat.xml);

console.log("表单数据导入成功!");
} catch (error) {
console.error("表单数据导入失败:", error.message);
alert("导入失败,请检查文件路径或网络连接!");
}
}

2. 导出表单数据(保存为 XML 文件)

/**
 * 导出表单数据(WebSDK 11 版本)
 * 将当前 PDF 表单中的数据导出为 XML 文件,并触发浏览器下载
 */
async function exportFormData() {
  try {
    // 1. 获取 SDK 核心实例
    const pdfViewer = await pdfui.getPDFViewer();
    const pdfDoc = await pdfViewer.getCurrentPDFDoc(); // 获取当前 PDF 文档
    const pdfForm = pdfDoc.getPDFForm(); // 获取表单操作对象

    // 2. 导出表单数据(指定导出格式为 XML,返回 Blob 类型文件)
    const formDataBlob = await pdfForm.exportToFile(
      PDFViewCtrl.commons.FileFormat.xml
    );

    // 3. 触发浏览器下载文件
    const downloadUrl = URL.createObjectURL(formDataBlob); // 创建临时下载链接
    const downloadLink = document.createElement("a");
    downloadLink.href = downloadUrl;
    downloadLink.download = "form-data.xml"; // 下载文件名(可自定义)
    downloadLink.rel = "noopener"; // 安全配置,防止窗口劫持
    downloadLink.target = "_blank";

    // 4. 模拟点击下载,下载完成后清理临时资源
    document.body.appendChild(downloadLink);
    downloadLink.click();
    document.body.removeChild(downloadLink);
    URL.revokeObjectURL(downloadUrl); // 释放临时 URL,避免内存泄漏

    console.log("表单数据导出成功!");
  } catch (error) {
    console.error("表单数据导出失败:", error.message);
    alert("导出失败,请确保当前 PDF 包含表单!");
  }
}

相关内容

Conversion SDK Linux C++版本如何执行样例代码?

GSDK的OCR能力如何支持多进程?

如何截取PDF中的表格导出为Excel?

如何将注释中的富文本格式设置为默认格式

PDF文档如何设置数字签名?

WebSDK 实现注释组合与取消组合

如何获取签名的日期、签名人等信息?

如何使用PDF格式文件作为图标来源?

如何将彩色PDF一键转为黑白版?

PDF转word因权限限制报错:any unknown error occurs.

推荐内容

Conversion SDK Linux C++版本如何执行样例代码?

GSDK的OCR能力如何支持多进程?

如何导入导出表单数据

如何截取PDF中的表格导出为Excel?

如何将注释中的富文本格式设置为默认格式

PDF文档如何设置数字签名?

WebSDK 实现注释组合与取消组合

如何获取签名的日期、签名人等信息?

如何使用PDF格式文件作为图标来源?

如何将彩色PDF一键转为黑白版?

产品
  • 应用行业
  • 白皮书
开发支持
  • 开发中心
  • SDK文档资料

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

©2025 福建福昕软件开发股份有限公司 版权所有

隐私策略