Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan fungsi templat dalam bahasa Go untuk menjana dokumen Word dan mengeksport PDF secara dinamik?

Bagaimana untuk menggunakan fungsi templat dalam bahasa Go untuk menjana dokumen Word dan mengeksport PDF secara dinamik?

WBOY
WBOYasal
2023-07-31 17:36:273335semak imbas

Bagaimana untuk menggunakan fungsi templat dalam bahasa Go untuk menjana dokumen Word dan mengeksport PDF secara dinamik?

Pengenalan:
Semasa proses pembangunan, kami selalunya perlu menjana dokumen Word berdasarkan templat dan mengeksportnya ke PDF. Artikel ini akan memperkenalkan cara menjana dan mengeksport dokumen PDF secara dinamik melalui contoh fungsi templat dalam bahasa Go.

1. Pasang perpustakaan dan alatan yang diperlukan
Sebelum bermula, kami perlu memasang dan mengkonfigurasi perpustakaan dan alatan berikut:

  1. Bahasa Go: Pastikan persekitaran bahasa Go telah dipasang dan dikonfigurasikan dengan betul.
  2. GoDoc: Digunakan untuk menjana dokumentasi secara automatik dan melihat butiran pustaka bahasa Go.
  3. Go-PDF: Pustaka untuk memanipulasi fail PDF dalam bahasa Go. Anda boleh memasang Go-PDF menggunakan arahan berikut:
    go get -u github.com/signintech/gopdf

2. Buat fail templat Word
Sebelum kita mula, kita perlu mencipta fail templat Word (format .docx ), dan Tentukan kandungan yang perlu dijana secara dinamik. Penanda boleh disertakan dalam templat supaya kita boleh menggantikannya menggunakan fungsi templat dalam langkah seterusnya.

Berikut ialah kandungan contoh mudah fail templat Word:

欢迎您,{{.Name}}!

以下是您的订单详情:
订单号:{{.OrderNumber}}
订单总价:{{.TotalPrice}}

Sila ambil perhatian bahawa {{.Name}}, {{.OrderNumber}} dan {{.TotalPrice}} ialah teg dan kami akan menggunakan fungsi templat untuk menukar mereka Gantikan dengan data dinamik.

3. Gunakan fungsi templat untuk menjana dokumen Word
Pertama, kita perlu mengimport pakej dan perpustakaan yang diperlukan:

package main

import (
    "fmt"
    "os"
    "text/template"
)

Kemudian, kami mentakrifkan struktur untuk menyimpan data dinamik:

rreee

Seterusnya, kami menggunakan fungsi templat untuk menjana Word dokumen :

type Order struct {
    Name        string
    OrderNumber string
    TotalPrice  float64
}

4 Eksport dokumen Word ke PDF
Untuk mengeksport dokumen Word yang dijana ke PDF, kita perlu menggunakan perpustakaan Go-PDF.

Pertama, kami perlu mengimport pakej dan perpustakaan yang diperlukan:

func main() {
    // 定义模板文件路径
    tmpl := "./template.docx"

    // 定义动态数据
    order := Order{
        Name:        "张三",
        OrderNumber: "2021123456789",
        TotalPrice:  100.00,
    }

    // 解析模板文件
    t := template.Must(template.ParseFiles(tmpl))

    // 生成Word文档
    docxFile, err := os.Create("./output.docx")
    if err != nil {
        fmt.Println("创建Word文档失败:", err)
        return
    }
    defer docxFile.Close()

    // 渲染模板并写入Word文档
    err = t.Execute(docxFile, order)
    if err != nil {
        fmt.Println("生成Word文档失败:", err)
        return
    }

    fmt.Println("Word文档生成成功!")
}

Kemudian, kami menggunakan kod berikut untuk menukar dokumen Word kepada PDF:

package main

import (
    "fmt"
    "github.com/signintech/gopdf"
)

Sila ambil perhatian bahawa arialuni.ttf yang digunakan dalam kod di atas ialah Unicode fail fon, Digunakan untuk menyokong paparan aksara Cina. Anda perlu memuat turun fail fon dan menyimpannya dalam direktori akar projek anda.

5. Test run
Selepas melengkapkan langkah di atas, kami menggunakan arahan go run untuk menjalankan kod. Selepas operasi berjaya, dua fail, output.docx dan output.pdf, akan dijana dalam direktori akar projek.

Sila ambil perhatian bahawa output.docx yang dijana ialah dokumen Word yang dijana secara dinamik dan output.pdf ialah hasil daripada mengeksport dokumen Word ke PDF.

Kesimpulan:
Artikel ini memperkenalkan cara menggunakan fungsi templat dalam bahasa Go untuk menjana dokumen Word secara dinamik dan mengeksportnya ke PDF. Pendekatan ini sangat fleksibel dan boleh memenuhi pelbagai keperluan penjanaan dan eksport yang dinamik. Saya harap artikel ini akan membantu anda menjana dokumen Word dan mengeksport PDF dalam pembangunan bahasa Go.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi templat dalam bahasa Go untuk menjana dokumen Word dan mengeksport PDF secara dinamik?. 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