Foxit PDF SDK(Linux版)

Foxit PDF SDK(Linux版)是为Linux企业或云应用程序设计的PDF解决方案,提供强大的渲染、数字签名、表单填写、文本处理等功能。Foxit PDF SDK(Linux版)提供了实用的PDF演示代码,帮助开发人员通过我们的核心API实现强大的功能。Foxit PDF SDK(Linux版)功能丰富,对于任何想要在嵌入式Linux操作系统和云应用程序中创建一个完全可定制的PDF阅读器或后台应用的Linux开发人员来说都是非常理想的解决方案。

使用Foxit PDF SDK(Linux版)开发PDF软件

将Foxit PDF SDK(Linux版)嵌入到Linux应用程序中十分简单。只需打开任意一款Linux集成开发环境,复制您所需要的库就可以用C++或Java进行开发。同时SDK提供的文档和示例项目会指导您使用PDF SDK(Linux版)进行项目创建及开发。我们的开发库适用于32位操作系统和64位操作系统。

PDF SDK for Linux Support

功能

查看PDF

我们的核心API针对桌面和移动平台进行了优化,可以提供高保真度PDF文档渲染体验。

数字签名

无需打印文件,用户可以在其电子设备上签署文件,加速业务处理,并给用户带来舒适的体验。

PDF表单

支持使用电子设备填写数字表单,使之更高效、快捷。

权限管理

Foxit PDF SDK可以通过加密/解密服务或集成自定义数字权限管理(DRM)或信息权限管理(IRM)系统生成受保护的PDF文件。福昕的PDF SDK集成了微软权限管理服务(RMS)。

PDF注释

Foxit PDF SDK提供全面的注释和标记功能,支持创建、编辑、导入和导出注释等。
 
 

全文搜索

对任何语言或编码类型PDF文档支持快速全文搜索功能。即使是搜索各类数字设备上的文件库,基于SQLite的全文搜索都能提供近乎即时的结果。
 

Announcing PDF SDK 6.2 

Foxit PDF SDK 6.2 introduces a brand-new Objective-C API for development in Mac, and extended support for Microsoft AD RMS 2.1.

Additionally, in Android and iOS we have added UI improvements, full support for multimedia annotations (audio, video, and voice!) as well as full XFA form support.

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,就能实时保护文档、访问分析数据和协同处理文档。
 

转换

利用我们的转换和压缩技术更快地转换和存储文件。支持将TIFF、JPEG、Word、Email、HTML、ASCII文本等格式文件转换PDF和PDF/A等文件。
 

优点

完整的Linux支持

得益于其强大、灵活和高效的功能,福昕可以专门为已针对硬件产品进行优化的嵌入式Linux操作系统和可扩展云应用提供强大的解决方案。

占用内存小

PDF SDK(Linux版)即使处理复杂任务也只占用很小的运行内存。此外,我们的内存溢出管理功能确保您的应用程序能够完美地从内存异常中恢复。

功能丰富

我们的产品功能在移动端、服务器端、桌面端保持一致,使得跨平台开发更加简单顺畅。我们会不断更新功能集,欢迎关注我们的产品页面。

福昕核心技术支持

Foxit PDF SDK的核心技术已经存在多年,并且受到许多知名公司的信任。福昕强大的引擎使文档在所有平台上都可以快速查看并且保持一致。

系统要求

  • Linux 32位和Linux 64位
  • 测试环境:Centos 6.4 32位和Centos 6.5 64位
  • PDF SDK(Linux版)包括32位和64位的版本库

在Linux中加载PDF文件或添加图像

    public static void main(String[] args) throws PDFException, IOException {
        createResultFolder(output_path);
        int error_code = Library.initialize(sn, key);
        if (error_code != e_ErrSuccess) {
            System.out.println(String.format("Library Initialize Error: %d\n", error_code));
            return;
        }

        String input_file = input_path + "AboutFoxit.pdf";
        String output_file1 = output_path + "bookmark_add.pdf";
        String output_file2 = output_path + "bookmark_change.pdf";
        String bookmark_info_file = output_path + "bookmark_info.txt";

        try {
            PDFDoc doc = new PDFDoc(input_file);
            error_code = doc.load(null);
            if (error_code != e_ErrSuccess) {
                System.out.println(String.format("The Doc [%s] Error: %d\n", input_file, error_code));
                return;
            }

            // Show original bookmark information.
            showBookmarksInfo(doc, bookmark_info_file);

            //Get bookmark root node or Create new bookmark root node.
            Bookmark root = doc.getRootBookmark();
            if (root.isEmpty()) {
                root = doc.createRootBookmark();
            }
            for (int i = 0; i < doc.getPageCount(); i += 2) {
                Destination dest = Destination.createFitPage(doc, i);

                String ws_title = String.format("A bookmark to a page (index: %d)", i);
                Bookmark child = root.insert(ws_title,
                        e_PosLastChild);
                child.setDestination(dest);
                child.setColor(i * 0xF68C21);
            }
            doc.saveAs(output_file1, e_SaveFlagNoOriginal);

            // Get first bookmark and change properties.
            Bookmark first_bookmark = root.getFirstChild();
            first_bookmark.setStyle(e_StyleItalic);
            first_bookmark.setColor(0xFF0000);
            first_bookmark.setTitle("Change bookmark title, style, and color");

            // Remove next sibling bookmark
            if (!first_bookmark.getNextSibling().isEmpty()) {
                doc.removeBookmark(first_bookmark.getNextSibling());
            }

            bookmark_info_file = output_path + "bookmark_info1.txt";
            showBookmarksInfo(doc, bookmark_info_file);

            doc.saveAs(output_file2, e_SaveFlagNoOriginal);
            System.out.println("Bookmark demo.");


        } catch (Exception e) {
            e.printStackTrace();

        }
        Library.release();
        return;
    } 
public class pdf2image {


    private static String key = "";
    private static String sn = "";
    private static String output_path = "../output_files/pdf2image/";
    private static String input_path = "../input_files/";
    private static String input_file = input_path + "AboutFoxit.pdf";
    private static String[] support_image_extends = {".bmp", ".jpg", ".jpeg", ".png", ".jpx", ".jp2"};
	private static String[] support_multi_image = {".tif", ".tiff"};

    public static void main(String[] args) throws PDFException {

        createResultFolder(output_path);

        int error_code = Library.initialize(sn, key);
        if (error_code != e_ErrSuccess) {
            System.out.println("Library Initialize Error: " + error_code);
            return;
        }
        PDFDoc doc = new PDFDoc(input_file);
        error_code = doc.load(null);
        if (error_code != e_ErrSuccess) {
            System.out.println("The Doc " + input_file + " Error: " + error_code);
            return;
        }

        Image image = new Image();
        int nPageCount = doc.getPageCount();
        for (int i = 0; i < nPageCount; i++) {
            PDFPage page = doc.getPage(i);
            // Parse page.
            page.startParse(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.

            Bitmap bitmap = new Bitmap(width, height, e_DIBArgb, null, 0);
            bitmap.fillRect(0xFFFFFFFF, null);

            // 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);
            }
        }
        for (int j = 0; j < support_multi_image.length; j++) {
            String extend = support_multi_image[j];
            Save2Image(image, extend);
        }

        Library.release();
    }

    private static void createResultFolder(String output_path) {
        File myPath = new File(output_path);
        if (!myPath.exists()) {
            myPath.mkdir();
        }
    }

    private static void Save2Image(Bitmap bitmap, int nPageIndex, String sExt) throws PDFException {
        Image image = new Image();
        image.addFrame(bitmap);
        String s = "AboutFoxit_" + nPageIndex;
        s = output_path + s + sExt;
        image.saveAs(s);

		System.out.println("Save page " + nPageIndex + " into a picture of " + sExt + " format.");
    }

	private static void Save2Image(Image image, String sExt) throws PDFException {
        String s = "AboutFoxit";
        s = output_path + s + sExt;
        image.saveAs(s);

		System.out.println("Save pdf file into a picture of " + sExt + " format.");
    }
}