Skip to content

福昕 PDF SDK Go 库

本节主要介绍如何使用福昕 PDF SDK Go 库运行示例及创建一个基础的工程。该工程演示如何将 PDF 文档的首页渲染成 bitmap,并将其另存为 JPG 图片。

先决条件

开发环境

  • 安装 Go: 确保 Go 语言版本 ≥ 1.18。
  • 福昕 PDF SDK Go 库: 请从福昕官方网站下载并安装与您的操作系统和架构匹配的 Go 语言库。

系统支持

我们提供和 Linux 和 Mac 平台的详细系统支持信息,包括操作系统版本、编译器要求等。请选择您的操作系统平台,查看详细信息。

Linux 平台 Mac 平台

配置

配置环境变量

下载福昕 PDF SDK Go 语言库后,需要配置环境变量以确保系统能够找到动态链接库。请根据您的操作系统平台选择相应的配置方法:

Linux

  • x64 系统: 运行以下命令设置库路径:
    bash
    export LD_LIBRARY_PATH=/home/user/Desktop/foxitpdfsdk_xx_x_linux_go/lib/x64:$LD_LIBRARY_PATH
  • x32 系统: 运行以下命令设置库路径:
    bash
    export LD_LIBRARY_PATH=/home/user/Desktop/foxitpdfsdk_xx_x_linux_go/lib/x86:$LD_LIBRARY_PATH

MacOS

  • x64 系统: 运行以下命令设置库路径:
    bash
    export DYLD_LIBRARY_PATH=/Users/user/Desktop/foxitpdfsdk_xx_x_mac_go/lib:$DYLD_LIBRARY_PATH

注意:

  • 请将上述命令中的路径替换为您实际的 SDK 安装路径
  • 建议将这些环境变量设置添加到您的 shell 配置文件中(如 ~/.bashrc~/.zshrc),以便永久生效
  • 设置完成后,请重新打开终端或运行 source ~/.bashrc 使配置生效

运行示例

运行所有示例

  • 请参阅 示例,其中包含了示例工程简介,特定示例的依赖信息,以及如何通过命令行运行示例。

快速创建工程

  1. 创建项目目录:

    • 新建一个名为 test 的文件夹作为项目目录。
  2. 准备 PDF 文件:

    • /example/simple_demo/input_files 目录下的 SamplePDF.pdf 文件复制到 test 文件夹中。
  3. 复制库文件:

    • Linux x86/x64 用户:foxitpdfsdk_xx_x_linux_go 文件夹中的 lib 文件夹复制到项目 test 文件夹中。
    • Mac x64 用户:foxitpdfsdk_xx_x_mac_go 文件夹中的 lib 文件夹复制到项目 test 文件夹中。
  4. 设置库路径:

    • 参考配置环境变量部分设置库路径到环境变量,只需替换库的路径即可。
  5. 创建 Go 文件:

    • test 文件夹中添加以下 Go 文件 test.go

    注意:

    • test.go 中设置 sn 的值为 gsdk_sn.txt 中 "SN=" 后面的字符串。
    • test.go 中设置 key 的值为 gsdk_key.txt 中 "Sign=" 后面的字符串。
    [test.go]
    go
    import (
        "fmt"
        . "foxit.com/fsdk"
    )
    
    // Assuming PDFDoc doc has been loaded.
    // The value of "sn" can be got from "gsdk_sn.txt" (the string after "SN=").
    // The value of "key" can be got from "gsdk_key.txt" (the string after "Sign=").
    const (
        sn = " "
        key = " "
    )
    
    func main() int {
        code := LibraryInitialize(sn, key)
        if code != E_ErrSuccess {
            return 0
        }
    
        // Load a PDF document, and parse the first page of the document.
        doc := NewPDFDoc("SamplePDF.pdf")
        defer DeletePDFDoc(doc)
        error_code := doc.Load("")
        if error_code != E_ErrSuccess {
            return 0
        }
    
        page := doc.GetPage(0)
        page.StartParse(PDFPageE_ParsePageNormal)
    
        width := int(page.GetWidth())
        height := int(page.GetHeight())
        matrix := page.GetDisplayMatrix(0, 0, width, height, page.GetRotation())
    
        // Prepare a bitmap for rendering.
        bitmap := NewBitmap(width, height, BitmapE_DIBArgb)
        bitmap.FillRect(0xFFFFFFFF)
        // Render page.
        render := Renderer(bitmap, false)
        render.StartRender(page, matrix)
    
        // Add the bitmap to image and save the image.
        img := NewImage()
        img.AddFrame(bitmap)
        img.SaveAs("testpage.jpg")
        LibraryRelease()
        return 0
    }
  6. 初始化 Go 模块:

    • test 项目的根目录下,打开终端并运行以下命令:
    bash
    go mod init test
  7. 编辑 Go 模块:

    • 以 Linux x64 为例:
    bash
    go mod edit -replace foxit.com/fsdk=./lib/x64
    go mod edit -require foxit.com/fsdk@v0.0.0
  8. 清理和组织 Go 依赖:

    bash
    go mod tidy
  9. 运行项目:

    bash
    go run test.go
    • 运行成功后,将在当前文件夹中生成 testpage.jpg 文件。