适用于 Go 的 PDF 处理 API

在 Go 应用程序中无缝生成、修改、保护 PDF 文档并将其转换为各种格式

概述

Aspose.PDF 是 Go 的 PDF 文档生成库,它使创建复杂的多页可打印文档变得容易。

API 的设计非常简单,因此生成复杂的文档就像调用几个函数一样简单。顾名思义,该库是基于 C++ 程序代码开发的。这使我们能够使其尽可能快,也使其可移植到不同的操作系统。

通过 C++ 功能实现 Go 版 Aspose.PDF

如何通过 C++ 使用 Aspose.PDF for Go 在后端操作 PDF 文件

Aspose.PDF for Go 通过 C++ 支持对 PDF 文件进行后端操作。 通过 C++ 使用 Aspose.PDF for Go,你可以优化 PDF 文件、修复损坏的 PDF、添加或提取文本,以及将 PDF 转换为常用格式。

从 PDF 中提取文本

  • 通过 C++ 使用 Aspose.PDF for Go,你可以从 PDF 中提取带格式的文本或作为原始数据。

将文档从 PDF 转换为其他格式

该库允许将 PDF 存储为

  • 微软 Office 文档(DOCX/DOC、XLSX、PPTX),
  • BMP、PNG、JPEG、TIFF 和 SVG 格式的图像,
  • 各种文档(XPS、EPUB、TEX/LaTex)。

整理 PDF

Aspose.PDF for Go 通过 C++ 允许你执行以下文档组织功能:

  • 优化 PDF 文档内容,
  • 使用灰色阴影转换 PDF 文档,
  • 旋转 PDF 文档中的整页,
  • 设置 PDF 文档的背景颜色,
  • 修复 PDF 文档。

页面操作

通过 C++ 实现 Aspose.PDF for Go 允许你

  • 添加新页面
  • 移除页面。

将 PDF 转换为 JPG 和其他图像格式

Aspose.PDF for Go 通过 C++ 允许你以尽可能高的保真度呈现 PDF 文件的每一页并将其转换为传统的图像格式,例如 BMP、JPG 和 PNG。除图像外,PDF 文件还可以轻松保存为 DOC 和 DOCX 格式。

在 Go 中将 PDF 页面另存为 JPEG 图像

加载现有的 PDF 文档。将 PDF 页面转换为图像,并将每个页面保存为 JPG 格式。

使用 Go 将 PDF 转换为 JPG

package main

import (
    "fmt"
    "log"

    asposepdf "github.com/aspose-pdf/aspose-pdf-go-cpp"
)

const (
    inputPDFFile      = "sample.pdf"
    outputImagePrefix = "sample_page"
    imageQuality      = 300
)

func main() {
    if err := convertPDFToImages(inputPDFFile); err != nil {
        log.Fatal(err)
    }
}

func convertPDFToImages(pdfFile string) error {
    pdfDocument, err := asposepdf.Open(pdfFile)
    if err != nil {
        return fmt.Errorf("failed to open PDF file: %w", err)
    }
    defer pdfDocument.Close()

    pageCount, err := pdfDocument.PageCount()
    if err != nil {
        return fmt.Errorf("failed to get page count: %w", err)
    }

    for pageIndex := int32(1); pageIndex <= pageCount; pageIndex++ {
        if err := savePageAsImage(pdfDocument, pageIndex); err != nil {
            return err
        }
    }
    return nil
}

func savePageAsImage(pdfDocument *asposepdf.Document, pageIndex int32) error {
    imageFileName := fmt.Sprintf("%s%d.jpg", outputImagePrefix, pageIndex)
    if err := pdfDocument.PageToJpg(pageIndex, imageQuality, imageFileName); err != nil {
        return fmt.Errorf("failed to save page %d as image: %w", pageIndex, err)
    }
    return nil
}

支持和學習資源

为什么是 Aspose.PDF?