福昕开发者中心 · 一站式文档开发底座
一个 SDK 引擎,终结 PDF 与 OFD 双格式开发难题
福昕 PDF&OFD SDK v12.0 是面向中国区桌面与服务器场景的一体化文档开发库:一次集成、一套授权即可同时处理 PDF 与 OFD,支持离线本地部署与国产化环境,适用于电子政务、电子证照、档案归档等场景。
PDF 与 OFD 统一打开与显示
同一套方式打开 PDF 和 OFD,自动识别格式;统一取页、预览、缩略图与导出图片(FLD 模块)。
完整的 OFD 深度处理能力
签名签章、数字证书与验签
公文语义、标引树与信封
水印、安全权限与附件管理
PDF 与 OFD 双向互转
PDF 与 OFD 可互相转换,一步到位;还能把 OFD 的指定页导出成图片,方便预览与归档。
平台与语言全覆盖
支持 Windows、Linux 与国产龙芯平台
提供 C/C++、Java、.NET、Python、Node.js、Go 等语言支持与功能示例
从内容生产到合规归档,一套 PDF 能力全覆盖
福昕 PDF SDK v12.0 是面向政企、金融、制造、能源等文档密集型场景的企业级 PDF 开发库,支持离线本地部署与多平台交付,助力业务系统快速集成稳定、高效的 PDF 处理能力。
多种文件都能转成 PDF
Markdown、矢量图、CAD 图纸都能转成 PDF
版式与图框完整保留
Markdown 与 PDF 支持双向转换
Word / Excel / PPT 转 PDF 跨平台一致
Windows 与 Linux 下效果、用法完全一致
无需分别适配,一套方案通用
长期存档与防篡改
支持 PDF/A-4e、PDF/A-4f 长期存档标准
新增 ISO/TS 32004 完整性保护,可发现被篡改
无障碍阅读更友好
PDF 可被读屏软件正确识别与朗读
支持无障碍检查、修复与阅读顺序调整
打开更快、印刷更高效
大文件打开速度最高提升约 99.7%
印刷级色彩(CMYK)渲染性能显著提升
配套组件:福昕文档转换 SDK v4.0
新增 PDF 与 Markdown 双向流转,PDF ↔ Office 转换更贴近源文;转换更快、结果更精简,无需第三方办公软件,支持离线私有化部署。
// 福昕 PDF SDK V11.1 初始化与文档加载示例
String sn = "";
String key = "";
int error_code = Library.initialize(sn, key);
if (error_code != e_ErrSuccess) {
return;
}
// 加载 "Sample.pdf" 文档
PDFDoc doc = new PDFDoc("Sample.pdf");
error_code = doc.load(null);
if (error_code != e_ErrSuccess) {
return;
}
// 获取文档的第一页
PDFPage page = doc.getPage(0);
// 解析页面
page.startParse(e_ParsePageNormal, null, false);
...
// 福昕 PDF SDK V11.1 初始化与文档加载示例
NSString* sn = @" ";
NSString* key = @" ";
// 初始化库
FSErrorCode code = [FSLibrary initialize:sn key:key];
if (code != FSErrSuccess) {
return -1;
}
// 加载一个 PDF 文档,并解析文档的第一页
NSString* pdfpath = [[NSBundle mainBundle] pathForResource:@"Sample" ofType:@"pdf"];
FSPDFDoc* doc = [[FSPDFDoc alloc] initWithPath:pdfpath];
FSErrorCode errorCode = [doc load:nil];
if (errorCode != FSErrSuccess) {
return -1;
}
FSPDFPage* page = [doc getPage:0];
[page startParse:FSPDFPageParsePageNormal pause:nil is_reparse:NO];
...
// 福昕 PDF SDK V11.1 初始化与文档加载示例
string sn = "";
string key = "";
// 初始化SDK
ErrorCode error_code = Library.Initialize(sn, key);
if (error_code != ErrorCode.e_ErrSuccess) {
Console.WriteLine("Library Initialize Error: {0}\n", error_code);
return;
}
// 加载“Sample.pdf”文档
using (PDFDoc doc = new PDFDoc(@"Sample.pdf")) {
error_code = doc.Load(null);
if (error_code != ErrorCode.e_ErrSuccess) {
return;
}
// 获取文档的第一页并解析
using (PDFPage page = new PDFPage(doc.GetPage(0))) {
page.StartParse(0, null, true);
...
}
}
var pdfui = new UIExtension.PDFUI({
viewerOptions: {
libPath: './lib', // web sdk的库路径。
jr: {
licenseSN: licenseSN,
licenseKey: licenseKey
}
},
renderTo: '#pdf-ui' // the div (id="pdf-ui")
});
// 根据需要修改文件路径。
fetch('/docs/FoxitPDFSDKforWeb_DemoGuide.pdf').then(function (response) {
response.arrayBuffer().then(function (buffer) {
pdfui.openPDFByFile(buffer);
})
})
//初始化SDK
NSString *sn = @"";
NSString *key = @"";
FSErrorCode eRet = [FSLibrary initialize:sn key:key];
if (FSErrSuccess != eRet) {
return; }
//以全屏尺寸初始化一个FSPDFViewCtrl对象
FSPDFViewCtrl* pdfViewCtrl;
pdfViewCtrl = [[FSPDFViewCtrl alloc] initWithFrame: [self.view bounds]];
//打开PDF进行显示
NSString* pdfPath = [[NSBundle mainBundle] pathForResource:@"Sample" ofType:@"pdf"];
[pdfViewCtrl openDoc:pdfPath password:nil completion:nil];
[self.view addSubview:pdfViewCtrl];
...
// 初始化库。
int errorCode = Library.initialize(sn, key);
if (errorCode != Constants.e_ErrSuccess)
return;
// 实例化一个 PDFViewCtrl 对象。
pdfViewCtrl = new PDFViewCtrl(this);
// 设置 RMS UI 操作的关联活动。
pdfViewCtrl.setAttachedActivity(this);
uiExtensionsManager = new UIExtensionsManager(this.getApplicationContext(), pdfViewCtrl);
uiExtensionsManager.setAttachedActivity(this);
uiExtensionsManager.onCreate(this, pdfViewCtrl, savedInstanceState);
pdfViewCtrl.setUIExtensionsManager(uiExtensionsManager);
// 打开并渲染 PDF 文档。
String path = Environment.getExternalStorageDirectory().getPath() + "/FoxitSDK/Sample.pdf";
uiExtensionsManager.openDocument(path, null);
...
// 福昕文档转换 SDK 3.1 初始化与 PDF 转 Word 示例
#include "../../../include/conversion/fs_pdf2office.h"
using namespace foxit;
using namespace conversion::pdf2office;
static const char* sn = "***";
static const char* key = "***";
int main(int argc, char* argv[]) {
int err_ret = 0;
ErrorCode error_code = Library::Initialize(sn, key);
if (error_code != foxit::e_ErrSuccess) {
return 1;
}
try {
// Convert PDF file to Word format file.
PDF2OfficeSettingData setting_data;
PDF2Office::StartConvertToWord(L"word.pdf", nullptr, L"pdf2word_result.docx", setting_data, nullptr);
} catch (const Exception& e) {
err_ret = e.GetErrCode();
} catch (...) {
err_ret = 1;
}
Library::Release();
return err_ret;
}
//初始化SDK
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
axFoxitPDFSDK1.UnLockActiveX("Licence_ID", "Unlock_code"); // The license key
axFoxitPDFSDK1.OpenFile("C:/FoxitBigPreview.pdf", "");
axFoxitPDFSDK1.SetPageRotate(0, 1);
}
}
}
//初始化SDK
import { FoxitRDKNative } from 'foxit_rdk';
const pdfpath: string = "xxx/Sample.pdf";
// 加载PDF文档
const doc: FoxitRDKNative.PDFDoc = new FoxitRDKNative.PDFDoc(pdfpath);
doc.Load();
// 获取PDF文档页面
const pdfPage: FoxitRDKNative.PDFPage = doc.GetPage(1);
// 添加注释
const rect: FoxitRDKNative.RectF = new FoxitRDKNative.RectF(100, 100, 120, 120);
const note: FoxitRDKNative.Note = new FoxitRDKNative.Note(
pdfPage.AddAnnot(FoxitRDKNative.Annot.e_Note, rect)
);
// 设置注释属性
note.SetIconName("Comment");
note.SetBorderColor(0xff0000ff);
// ... 其他操作
福昕为开发者提供高性能、全离线、国产化环境适配、跨平台统一的文档处理底座:从版式文档解析与处理,到格式转换与内容生产,覆盖多终端场景。助力政企、金融、OA、档案、协同办公等行业,快速构建专业、可控、可持续演进的文档应用。