Maison  >  Article  >  développement back-end  >  Comment faire une conversion PDF dans Golang

Comment faire une conversion PDF dans Golang

PHPz
PHPzoriginal
2023-04-05 14:36:441942parcourir

À l'ère d'Internet, le PDF est devenu un format de document très important. Avec la popularité du PDF, de plus en plus de programmeurs commencent à s'intéresser à la manière d'ajouter le support PDF à leurs projets. Dans Golang, la demande de conversion en PDF augmente également, c'est pourquoi cet article présentera comment convertir un PDF dans Golang.

1. Utiliser des bibliothèques tierces

Tout d'abord, nous pouvons utiliser des bibliothèques tierces dans Golang pour réaliser la conversion PDF. Parmi eux, le plus couramment utilisé est go-fpdf. Il s'agit d'une bibliothèque tierce légère qui peut être utilisée pour coder entièrement des graphiques dynamiques dans Golang. Pour les développeurs Golang, utilisez cette bibliothèque pour générer rapidement des documents PDF.

Ce qui suit est le code de base pour générer des documents PDF à l'aide de la bibliothèque go-fpdf :

package main

import (
    "github.com/jung-kurt/gofpdf"
)

func main() {
    pdf := gofpdf.New("P", "mm", "A4", "") //创建PDF对象
    pdf.AddPage() //添加一页
    pdf.SetFont("Times", "B", 16) //设置字体格式
    pdf.Cell(40, 10, "Hello, world!") //写入文本

    err := pdf.OutputFileAndClose("hello.pdf") //保存并关闭文件
    if err != nil {
        panic(err)
    }
}

Ce code génère un fichier PDF et écrit le texte "Bonjour le monde dedans !"

2. Utilisez HTML/CSS pour convertir un PDF

Une autre méthode consiste à utiliser un outil tiers pour convertir des documents HTML et CSS en PDF. Sur les systèmes Windows et Linux, wkhtmltopdf est un très bon outil de conversion PDF.

Dans Golang, nous pouvons utiliser la bibliothèque os/exec pour appeler la ligne de commande afin de convertir les documents HTML/CSS au format PDF. Le code est le suivant :

package main

import (
    "os/exec"
)

func main() {
    command := exec.Command("wkhtmltopdf", "index.html", "output.pdf") //调用命令行
    err := command.Run()
    if err != nil {
        panic(err)
    }
}

Ici, nous utilisons l'outil de ligne de commande wkhtmltopdf pour convertir le fichier HTML index.html en fichier PDF output.pdf. Il convient de noter que lors de l'utilisation de cette méthode, vous devez installer les outils tiers correspondants.

3. Utiliser les services cloud

La dernière méthode consiste à utiliser les services cloud pour réaliser la conversion PDF. Il existe de nombreux services cloud disponibles sur le marché. Par exemple, CloudConvert est un service cloud populaire qui permet la conversion entre différents formats, y compris PDF.

Dans Golang, nous pouvons utiliser une bibliothèque tierce pour appeler l'API du service cloud CloudConvert afin de réaliser la conversion PDF. Le code est le suivant :

package main

import (
    "fmt"
    "github.com/cloudconvert/cloudconvert-go/sdk"
    "github.com/cloudconvert/cloudconvert-go/sdk/operations"
)

func main() {
    // 创建API客户端
    client, err := sdk.NewClient("<API KEY>")
    if err != nil {
        panic(err)
    }

    // 配置操作
    op := operations.NewConvertOperation()
    op.SetInput("upload", "a.pdf")

    // 设置输出格式
    op.SetOutputFormat("pdf")

    // 执行操作并检查错误
    conversion, err := client.Convert(op)
    if err != nil {
        panic(err)
    }

    // 打印输出URL
    fmt.Println(conversion.Output.Url)
}

Le code ci-dessus utilise le service cloud CloudConvert pour convertir un fichier .pdf au format pdf.

Résumé

Cet article présente trois méthodes différentes pour convertir des PDF dans Golang. Les développeurs peuvent choisir l'une des méthodes de conversion en fonction de leurs besoins et préférences. Cependant, il convient de noter que lorsque vous utilisez des bibliothèques tierces et des services cloud, vous devez lire les documents pertinents et comprendre les risques associés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn