Foxit PDF SDK(Windows版)
Foxit PDF SDK(Windows版)提供了功能强大、简单易用核心层API,提供了C++、C#和Java 语言的接口,支持PDF渲染、查看、编辑、注释、签名、保护和表单操作。此外,Foxit PDF SDK(Windows版) 还提供演示Demo和示例代码,以帮助用户开发PDF阅读程序以及PDF相关的解决方案。
使用Foxit PDF SDK(Windows版)开发PDF软件
Foxit PDF SDK(Windows版) 提供三种库:C++库、C#(.NET)库、和Java库,在客户端和服务端环境下均可运行(32位和64位系统)。

功能
查看PDF
我们的核心API针对桌面和移动平台进行了优化,可以提供高保真度PDF文档渲染体验。
数字签名
无需打印文件,用户可以在其电子设备上签署文件,加速业务处理,并给用户带来舒适的体验。
PDF表单
支持使用电子设备填写数字表单,使之更高效、快捷。



权限管理
Foxit PDF SDK可以通过加密/解密服务或集成自定义数字权限管理(DRM)或信息权限管理(IRM)系统生成受保护的PDF文件。福昕的PDF SDK集成了微软权限管理服务(RMS)。
PDF注释
Foxit PDF SDK提供丰富的注释和标记功能,支持创建、编辑、导入和导出注释等。
全文搜索
采用SQLite数据库,支持对多种语言类型的PDF文档进行全文检索,提供快速、便捷的搜索体验。
FOXIT PDF SDK 8.5简介
Foxit PDF SDK 8.0是PDF领域中一个具有变革性的版本,无论是Web端基于JavaScript的Web Viewer还是桌面端SDK 和移动端SDK,都带来了许多新增功能和升级改进。我们还为PDF SDK(Web版)提供了全新的Viewer Demo。
在 Web端,我们新增了一个全新的Viewer Demo,向您展示如何充分利用我们基于JavaScript的 PDF 库。
我们还增强了协作功能,让您可以在 PDF查看器的多个实例之间同步注释和页面操作。您可以在自己的应用程序中轻松部署我们的SDK和管理所有用户的实时访问。另外,Web端SDK还提供了全新的辅助功能,如高对比度的支持和“文本到语音”转换工具。
我们的桌面端SDK提供了对 ARM Linux平台的支持、对HTMLtoPDF功能的重大升级、将表单数据导出到 CSV 功能等等。
在移动端,我们推出了新的UI,风格与桌面端UI以及福昕的其他产品的更加统一,签名功能中新增了一个用于检测是否已应用签名的事件,以及UI 上提供了注释小结功能。立即下载试用吧!

FOXIT PDF SDK 6.3
PDF SDK6.3增加了不少新功能,包括:从URL打开PDF时存储缓存的支持,新增了阅读视图模式,以及JavaScript中增加了SignatureInfo和Doc / WillClose功能,等等!
同时全面更新了文档资料,为您提供新版的开发人员指南以及大量新的代码示例,帮助开发人员快速上手。

高级技术
XFA表单
XFA表单是基于XML的表单。能够安全获取、呈现、移动、处理、输出、更新和打印与静态和动态XFA表单相关的信息。使用XFA表单能简化您的数据共享、数据和获取。
权限管理
将应用程序和文件连接到微软的权限管理服务平台,保护PDF文档的安全。Foxit PDF SDK支持集成自定义IRM和DRM解决方案。
OCR文字识别
利用福昕高度精确的文字识别(OCR)引擎将扫描的文档转换成可搜索的PDF文件。这一强大的功能是为扫描文件、存档和文件数字化而设计的,支持输出PDF和PDF/A等13种格式文件。
密文处理
出于合法或安全的考虑,通过编程实现搜索和审查文档的敏感信息,确保您的客户和员工的信息安全。通过福昕强大的技术加密文档,使得文档符合通用数据保护条例(GDPR)。
互联PDF
利用福昕的先进技术,通过编程,为PDF文件提供智能管理、安全保护和协同合作服务。只需一个SDK,就能实时保护文档、访问分析数据和协同处理文档。
PDF/A标准
通过我们的转换和验证技术可将常规PDF转换为符合PDF-A标准的文档。如果您的工作流程要求PDF文档符合PDF-A标准,您可以立即开始验证您的文档是否符合PDF-A标准。
同时适用于Windows服务器和桌面
Foxit PDF SDK是市场上功能丰富的PDF SDK。
桌面
允许终端用户迅速、方便地在应用程序中查看、导览、编辑、注释、签名、填写表单、保护、加密、管理、标记和打印PDF文档。
服务器
通过我们的C++、C#(.NET)或Java库编程,创建、合并、拆分(或执行桌面应用程序支持的任一操作)数百万份PDF文档。
特定功能产品
Foxit PDF SDK(Windows版) 功能强大、可跨平台。如果您只是想使用ActiveX执行简单的任务,您可能需要了解:
PDF .NET SDK
使用.NET执行基本操作
- .NET Viewer
- .NET Merger
- .NET Generator
- .NET Print Manager
- .NET Rasterizer
PDF ActiveX SDK
即时PDF查看
- 快速投放市场
- 可视化编程组件
- 体积小
- 速度快
- 高质量
知名企业选择福昕PDF软件

系统要求
操作系统
- Windows XP、Vista、Windows 7、Windows 8和 Windows 10(32位和64位)
- Windows Server 2003、2008、2012和2016(32位和64位)

Foxit PDF SDK(Windows版)样例
static void Main(string[] args) { string input_path = "../input_files/"; string output_path = "../output_files/bookmark/"; System.IO.Directory.CreateDirectory(output_path); string sn = ""; string key = ""; ErrorCode error_code = Library.Initialize(sn, key); if (error_code != ErrorCode.e_ErrSuccess) { Console.WriteLine("Library Initialize Error: {0}\n", error_code); return; } try { string input_file = input_path + "AboutFoxit.pdf"; string output_file1 = output_path + "bookmark_add.pdf"; string output_file2 = output_path + "bookmark_change.pdf"; using (PDFDoc doc = new PDFDoc(input_file)) { error_code = doc.Load(null); if (error_code != ErrorCode.e_ErrSuccess) { Console.WriteLine("The PDFDoc [{0}] Error: {1}\n", input_file, error_code); Library.Release(); return; } // Show original bookmark information. ShowBookmarksInfo(doc, output_path + "bookmark_info.txt"); //Get bookmark root node or Create new bookmark root node. Bookmark root = doc.GetRootBookmark(); if (root.IsEmpty()) { root = doc.CreateRootBookmark(); } using (root) { for (int i = 0; i < doc.GetPageCount(); i += 2) { using (Destination dest = Destination.CreateFitPage(doc, i)) { string ws_title = string.Format("A bookmark to a page (index: {0})", i); Bookmark child; using (child = root.Insert(ws_title, Bookmark.Position.e_PosLastChild)) { child.SetDestination(dest); child.SetColor(i * 0xF68C21); } } } doc.SaveAs(output_file1, (int)PDFDoc.SaveFlags.e_SaveFlagNoOriginal); // Get first bookmark and change properties. Bookmark first_bookmark; using (first_bookmark = root.GetFirstChild()) { first_bookmark.SetStyle((int)Bookmark.Style.e_StyleItalic); first_bookmark.SetColor(0xFF0000); first_bookmark.SetTitle("Change bookmark title, style, and color"); // Remove next sibling bookmark using (Bookmark nextsibling_bookmark = first_bookmark.GetNextSibling()) { if (!nextsibling_bookmark.IsEmpty()) { doc.RemoveBookmark(nextsibling_bookmark); } } string bookmark_info_file = output_path + "bookmark_info1.txt"; ShowBookmarksInfo(doc, bookmark_info_file); } } doc.SaveAs(output_file2, (int)PDFDoc.SaveFlags.e_SaveFlagNoOriginal); Console.WriteLine("Bookmark demo."); } } catch (foxit.PDFException e) { Console.WriteLine(e.Message); } Library.Release(); } }
namespace pdf2imageCS { class pdf2image { private const string input_path = "../input_files/"; private const string output_path = "../output_files/pdf2image/"; public static void Save2Image(System.Drawing.Bitmap bitmap, int nPageIndex, string sExt) { string save_name = output_path + string.Format("AboutFoxit_{0}{1}", nPageIndex, sExt); // Add the bitmap to image and save the image. foxit.common.Image image = new foxit.common.Image(); image.AddFrame(bitmap); image.SaveAs(save_name); Console.WriteLine("Save page {0} into a picture of {1} format.", nPageIndex, sExt); } public static void Save2Image(foxit.common.Image image, string sExt) { string save_name = output_path + string.Format("AboutFoxit{0}", sExt); // Add the bitmap to image and save the image. image.SaveAs(save_name); Console.WriteLine("Save pdf file into a picture of {0} format.", sExt); } static void Main(string[] args) { System.IO.Directory.CreateDirectory(output_path); string sn = ""; string key = ""; ErrorCode error_code = Library.Initialize(sn, key); if (error_code != ErrorCode.e_ErrSuccess) { Console.WriteLine("Library Initialize Error: {0}\n", error_code); return; } string[] support_image_extends = { ".bmp", ".jpg", ".jpeg", ".png", ".jpx", ".jp2" }; string[] support_multi_image = { ".tif", ".tiff" }; try { string input_file = input_path + "AboutFoxit.pdf"; using (PDFDoc doc = new PDFDoc(input_file)) { error_code = doc.Load(null); if (error_code != ErrorCode.e_ErrSuccess) { Console.WriteLine("The PDFDoc [{0}] Error: {1}\n", input_file, error_code); Library.Release(); return; } foxit.common.Image image = new foxit.common.Image(); // get page count int nPageCount = doc.GetPageCount(); for(int i=0;i<nPageCount;i++) { using (PDFPage page = doc.GetPage(i)) { // Parse page. page.StartParse((int)foxit.pdf.PDFPage.ParseFlags.e_ParsePageNormal, null, false); int width = (int)(page.GetWidth()); int height = (int)(page.GetHeight()); Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation()); // Prepare a bitmap for rendering. System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); Graphics draw = Graphics.FromImage(bitmap); draw.Clear(Color.White); // Render page Renderer render = new Renderer(bitmap, false); render.StartRender(page, matrix, null); image.AddFrame(bitmap); for (int j = 0; j < support_image_extends.Length; j++) { string extend = support_image_extends[j]; Save2Image(bitmap, i, extend); } draw.Dispose(); } } for (int j = 0; j < support_multi_image.Length; j++) { string extend = support_multi_image[j]; Save2Image(image, extend); } } } catch (foxit.PDFException e) { Console.WriteLine(e.Message); } Library.Release(); } } }