福昕 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
使配置生效
运行示例
运行所有示例
- 请参阅 示例,其中包含了示例工程简介,特定示例的依赖信息,以及如何通过命令行运行示例。
快速创建工程
创建项目目录:
- 新建一个名为
test
的文件夹作为项目目录。
- 新建一个名为
准备 PDF 文件:
- 将
/example/simple_demo/input_files
目录下的SamplePDF.pdf
文件复制到test
文件夹中。
- 将
复制库文件:
- Linux x86/x64 用户: 将
foxitpdfsdk_xx_x_linux_go
文件夹中的lib
文件夹复制到项目test
文件夹中。 - Mac x64 用户: 将
foxitpdfsdk_xx_x_mac_go
文件夹中的lib
文件夹复制到项目test
文件夹中。
- Linux x86/x64 用户: 将
设置库路径:
- 参考配置环境变量部分设置库路径到环境变量,只需替换库的路径即可。
创建 Go 文件:
- 在
test
文件夹中添加以下 Go 文件test.go
。
注意:
- 在
test.go
中设置sn
的值为gsdk_sn.txt
中 "SN=" 后面的字符串。 - 在
test.go
中设置key
的值为gsdk_key.txt
中 "Sign=" 后面的字符串。
[test.go]
goimport ( "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 }
- 在
初始化 Go 模块:
- 在
test
项目的根目录下,打开终端并运行以下命令:
bashgo mod init test
- 在
编辑 Go 模块:
- 以 Linux x64 为例:
bashgo mod edit -replace foxit.com/fsdk=./lib/x64 go mod edit -require foxit.com/fsdk@v0.0.0
清理和组织 Go 依赖:
bashgo mod tidy
运行项目:
bashgo run test.go
- 运行成功后,将在当前文件夹中生成
testpage.jpg
文件。
- 运行成功后,将在当前文件夹中生成