Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melakukan penukaran PDF di Golang

Bagaimana untuk melakukan penukaran PDF di Golang

PHPz
PHPzasal
2023-04-05 14:36:441942semak imbas

Dalam era Internet, PDF telah menjadi format dokumen yang sangat penting. Dengan populariti PDF, semakin ramai pengaturcara mula memberi perhatian kepada cara menambah sokongan PDF pada projek mereka. Di Golang, permintaan untuk penukaran kepada PDF juga semakin meningkat, jadi artikel ini akan memperkenalkan cara menukar PDF di Golang.

1. Gunakan perpustakaan pihak ketiga

Pertama sekali, kami boleh menggunakan perpustakaan pihak ketiga di Golang untuk mencapai penukaran PDF. Antaranya, yang paling biasa digunakan ialah go-fpdf. Ia ialah perpustakaan pihak ketiga yang ringan yang boleh digunakan untuk mengodkan grafik dinamik sepenuhnya di Golang. Untuk pembangun Golang, gunakan perpustakaan ini untuk menjana dokumen PDF dengan cepat.

Berikut ialah kod asas untuk menjana dokumen PDF menggunakan perpustakaan 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)
    }
}

Kod ini menjana fail PDF dan menulis teks "Hello, dunia!" .

2. Gunakan HTML/CSS untuk menukar PDF

Kaedah lain ialah menggunakan alat pihak ketiga untuk menukar dokumen HTML dan CSS kepada PDF. Dalam sistem Windows dan Linux, wkhtmltopdf ialah alat penukaran PDF yang sangat baik.

Di Golang, kami boleh menggunakan perpustakaan os/exec untuk memanggil baris arahan untuk menukar dokumen HTML/CSS kepada format PDF. Kodnya adalah seperti berikut:

package main

import (
    "os/exec"
)

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

Di sini kami menggunakan alat baris arahan wkhtmltopdf untuk menukar fail HTML index.html kepada output fail PDF.pdf. Perlu diingatkan bahawa apabila menggunakan kaedah ini, anda perlu memasang alat pihak ketiga yang sepadan.

3. Gunakan perkhidmatan awan

Kaedah terakhir adalah menggunakan perkhidmatan awan untuk mencapai penukaran PDF Terdapat banyak perkhidmatan awan yang tersedia di pasaran. Contohnya, CloudConvert ialah perkhidmatan awan popular yang menyediakan penukaran antara pelbagai format, termasuk PDF.

Di Golang, kami boleh menggunakan perpustakaan pihak ketiga untuk memanggil API perkhidmatan awan CloudConvert untuk mencapai penukaran PDF. Kodnya adalah seperti berikut:

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)
}

Kod di atas menggunakan perkhidmatan awan CloudConvert untuk menukar fail a.pdf kepada format pdf.

Ringkasan

Artikel ini memperkenalkan tiga kaedah berbeza untuk menukar PDF dalam Golang. Pembangun boleh memilih salah satu kaedah penukaran berdasarkan keperluan dan pilihan mereka. Walau bagaimanapun, perlu diingat bahawa apabila menggunakan perpustakaan pihak ketiga dan perkhidmatan awan, anda perlu membaca dokumen yang berkaitan dan memahami risiko yang berkaitan.

Atas ialah kandungan terperinci Bagaimana untuk melakukan penukaran PDF di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn