คําถามที่พบบ่อย

คําถามที่พบบ่อย

การอนุญาตและแหล่งเปิด

ใบอนุญาตของ Aspose.PDF FOSS for Go คืออะไร?

Aspose.PDF FOSS for Go is released under the อนุญาต MIT.ใบอนุญาตเต็มข้อความคือ รวมในเรปซิทอรี่ที่ github.com/aspose-pdf-foss/assume- pdf-Foss-for-go. ไม่จําเป็นต้องลงทะเบียน, ไฟล์การประสิทธิภาพ หรือคีย์เวลาทํางาน.

ผมสามารถใช้ Aspose.PDF FOSS for Go ในสินค้าการขายได้หรือไม่?

ใช่ ใบอนุญาต MIT ให้การใช้งานทางธุรกิจ ไม่จํากัด การปรับเปลี่ยน แจ้ง และการใช้อิสระ คุณจะต้องรวมข้อความประกาศลิขสิทธิ์และคํานิเทศลิขาสัญญัติ MIT ในทุกสําเนาหรือส่วนใหญ่ของโปรแกรม.

มีเวอร์ชั่นธุรกิจไหม?

Aspose.PDF FOSS is the open-source, MIT-licensed edition. A separate commercial Aspose.PDF product is available as the Aspose.PDF — Enterprise Product Family ด้วยการสนับสนุนองค์กร การครอบคลุมรูปแบบขยาย และการบูรณาการกับระบบเมฆ.


XLSX: wb.save("output.xlsx")

ผมติดตั้ง Aspose.PDF FOSS for Go ได้อย่างไร?

ใช้ `GetChildNodes ((()⌒ เพื่อหาลูกโน้ตที่ถูกชนิดในระดับใด ๆ ของต้นไม้:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

นําเข้าด้วยชื่อล่อในไฟล์แหล่งของคุณ:

import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"

ต้องใช้รุ่น Go ไหน?

Go 1.24 หรือหลังกว่านี้จําเป็นต้องใช้. ยืนยันเวอร์ชั่นของคุณกับ go version.

มีการพึ่งพาห้องสมุดพื้นบ้านหรือระบบหรือไม่?

ไม่มี Aspose.PDF FOSS for Go เป็นการนําไปใช้งานแบบ pure-Go โดยไม่มีความพึ่งพาของ C, C++ หรือ CGo มันไม่ต้องการห้องสมุดระบบใด ๆ, ผู้ชม PDF หรือเครื่องมือภายนอก.


การใช้ไฟ

ผมเปิด PDF ที่มีอยู่อย่างไร?

การใช้งาน pdf.Open สําหรับ PDF แบบมาตรฐาน และ pdf.OpenWithPassword สําหรับไฟล์ที่คุ้มครองด้วยคําลับ:

doc, err := pdf.Open("document.pdf")
if err != nil {
    panic(err)
}
fmt.Println(doc.PageCount())

ผมอ่านเมตาเดต้าของหน้าได้อย่างไร เช่น ผู้เขียนและเวลาสร้าง?

Document.Split กลับ a []*Document, หนึ่งต่อหน้า:

doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
    p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}

มีข้อจํากัดอะไรบ้างที่ผมควรรู้ไหมครับ?

Document.Append การรวมเอกสารแหล่งในสถานที่:

base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")

ผมทําการเติมฟิลด์ AcroForm ได้อย่างไร?

การใช้งาน Document.Form().Field(name) และประกาศชนิดของคอนกรีต:

doc, _ := pdf.Open("form.pdf")
text := doc.Form().Field("customer_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")

check := doc.Form().Field("agree").(*pdf.CheckboxField)
check.SetChecked(true)

doc.Save("form_filled.pdf")

ประเภทสนามที่รองรับ: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.

ผมเพิ่มตัวกระจกยังไง?

สร้าง OutlineItemCollection และตั้ง a Destination:

doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)

bm := pdf.NewOutlineItemCollection(doc)
bm.SetTitle("Chapter 1")
bm.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(bm)
doc.Save("manual_with_bookmarks.pdf")

ความปลอดภัยและการเข้ารหัส

ผมใช้รหัสผ่านป้องกัน PDF ได้อย่างไร?

การใช้งาน Document.SetEncryption มีตัวเลข 1 EncryptionOptions struct เพื่อใช้การคุ้มครองคําผ่านและสัญญากระจายอนุญาต. ให้รหัสผู้ใช้ในการเปิดไฟล์ และรุมเจ้าของสําหรับสิทธิแก้ไข:

doc, _ := pdf.Open("doc.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
    UserPassword:  "userpass",
    OwnerPassword: "ownerpass",
    Permissions:   &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("doc_protected.pdf")

อัลโกทิมการเข้ารหัสอะไรที่รองรับ?

มีอัลโกทิม 3 แบบที่สามารถใช้ได้ผ่านทาง EncryptionOptions.Algorithm:

AlgorithmConstantStandard
AES-128EncryptionAlgAES128 (ตามปกติ)ISO 32000-1
AES-256EncryptionAlgAES256ISO 32000-2 (PDF 2.0 ออก)
RC4-128EncryptionAlgRC4_128Legacy

ผมจะเปิดไฟล์ที่คุ้มครองด้วยรหัสผ่านอย่างไร?

การใช้งาน pdf.OpenWithPassword เมื่อไฟล์ต้องการการรับรองตัวจริง. ย้ายรหัสใช้งานเป็น argument ครั้งที่สอง; มันส่งกลับค่าธรรมดา *Document เมื่อการปลดรหัสสําเร็จ:

doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
    panic(err)
}
fmt.Println(doc.PageCount())

ผมเอาการเข้ารหัสจาก PDF ออกได้อย่างไร?

Call Document.RemoveEncryption หลังจากเปิดไฟล์ด้วยรหัสผ่านที่ถูกต้อง. เก็บผลการเขียนสําเนาไม่เข้ารบ:

doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")

การทํารูปและข้อความ

ผมทําหน้า PDF เป็นภาพอย่างไร?

ใช้เครื่องมือที่ใช้: BmpDevice, PngDevice, JpegDevice, TiffDevice,หรือ GifDevice. สร้างอุปกรณ์ด้วย a Resolution ค่าและเรียกที่ตรงกัน Render* วิธีการที่มี io.Writer และ RenderOptions:

doc, _ := pdf.Open("report.pdf")
page, _ := doc.Page(1)
f, _ := os.Create("page1.png")
defer f.Close()
page.RenderPNG(f, pdf.RenderOptions{DPI: 150})

ผมค้นหาข้อความใน PDF ได้อย่างไร?

Call Document.SearchText ด้วยรุ่นคําถาม และ SearchOptions.ผลคือ ผักสลัด TextMatch ทุกตัวมีข้อความที่ตรงกัน, ตัวอัตราการแสดงหน้า และตัวอักษรของมัน กล่องกําหนด.

doc, _ := pdf.Open("doc.pdf")
matches, _ := doc.SearchText("total", pdf.SearchOptions{CaseInsensitive: true})
for _, m := range matches {
    fmt.Printf("page %d: %q\n", m.PageNumber, m.Text)
}

ขั้นตอนที่ 3: สร้างเอกสาร PDF ใหม่?

Call Document.Flatten หลังจากที่เติมหรือตรวจสอบแบบฟอร์ม วิธีการ bakes ทั้งหมดสนาม ค่าในภาพกราฟิกหน้า และลบสนามแบบออนไลน์ที่ใช้ปฏิสัมพันธ์:

doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")

ข้อ จํากัด ที่รู้จักกันดี

มีการสนับสนุนทุกรูปแบบ PDF ไหม?

ห้องสมุดครอบคลุมการจัดการเอกสารที่ทั่วไปที่สุด: เปิด, สร้าง, เก็บ, แบ่ง, ผสมรวม, การสกัดหน้า, อัคโรฟอร์ม, ตาราง, ลิงค์พิมพ์, คําบรรยาย, ทําลายรูปภาพ, ค้นหาข้อความและการแผ่ใบ. คุณสมบัติสูงสุด เช่น ทะเบียนดิจิตอล, เนื้อหา 3D และการแปลง PDF / A อาจจะไม่ถูกนํามาใช้งานอย่างเต็มที่ในฉบับปัจจุบัน เช็คสถานการณ์ของตัวเก็บ README เพื่อดูคุณสมรรถนะปรับปรุงระดับปริมาณนี้.

เกิดอะไรขึ้นถ้าผมใช้การประกาศแบบสนามที่ไม่ตรงกัน?

การประกาศแบบที่ Field ที่ไม่ตรงกับชนิดสนามจริง จะตกใจ. การใช้งาน pdf.FieldType(f) การตรวจสอบชนิดก่อนการประกาศ หรือใช้เครื่องเปลี่ยนแบบ:

doc, _ := pdf.Open("form.pdf")
for _, f := range doc.Form().Fields() {
    switch v := f.(type) {
    case *pdf.TextBoxField:
        fmt.Println("text:", v.Value())
    case *pdf.CheckboxField:
        fmt.Println("checked:", v.Checked())
    }
}
 ภาษาไทย