Go API สำหรับการสร้างและประมวลผลเอกสาร PDF
Open Source Go Library ที่ให้นักพัฒนาสามารถสร้าง แก้ไข จัดการ และแปลงเอกสาร PDF ได้
unipdf เป็นไลบรารีโอเพ่นซอร์ส Go ที่สามารถจัดการคำถามทั้งหมดของคุณที่เกี่ยวข้องกับการสร้างและจัดการเอกสาร PDF ได้อย่างง่ายดาย ไลบรารีนี้พร้อมใช้งานภายใต้สิทธิ์ใช้งานแบบคู่ ซึ่งใบอนุญาต AGPL สามารถใช้สำหรับการพัฒนาซอฟต์แวร์โอเพ่นซอร์สได้ ห้องสมุดให้การสนับสนุนอย่างสมบูรณ์สำหรับการสร้างเอกสาร PDF ที่มีข้อความ ภาพวาด และรูปภาพในระดับสูง
ไลบรารี unipdf แบบโอเพ่นซอร์สรองรับคุณสมบัติทั่วไปหลายประการเช่นเดียวกับคุณสมบัติขั้นสูงสำหรับการประมวลผลและปรับแต่งเอกสาร PDF เช่น การสร้างรายงาน PDF การสร้างรายงาน PDF การสร้างใบแจ้งหนี้ การสร้างและการจัดการย่อหน้า การรวมและแยกหน้า PDF การหมุนหน้า การดึงข้อความจาก ไฟล์ PDF, ส่งออก PDF เป็น CSV, แปลงรูปภาพเป็น PDF, บีบอัดและเพิ่มประสิทธิภาพ PDF, ไฟล์ PDF ลายน้ำ, รองรับฟอนต์ผสม (อักขระ Unicode), ลายเซ็นดิจิทัลและอีกมากมาย
.
เริ่มต้นใช้งาน unipdf
ในการติดตั้ง unipdf บนระบบของคุณ โปรดเรียกใช้คำสั่งต่อไปนี้
ติดตั้ง gofpdf ผ่าน GitHub
go get github.com/unidoc/unipdf/v3
สำหรับการอัปเดตล่าสุด โปรดไปที่หน้าการเผยแพร่ของผลิตภัณฑ์
สร้างรายงาน PDF ผ่าน Go API
unipdf API แบบโอเพ่นซอร์สช่วยให้นักพัฒนาสามารถสร้างรายงาน PDF ภายในแอปพลิเคชัน Go ของตนเองได้ ไลบรารีช่วยให้นักพัฒนาทำงานกับเอกสาร PDF ได้อย่างมีประสิทธิภาพ และได้รวมการสนับสนุนสำหรับการเพิ่มรูปภาพ ตาราง ส่วนหัว ส่วนท้าย และอื่นๆ อีกมากมายในรายงาน PDF ของคุณได้อย่างง่ายดาย คุณยังสามารถวางเนื้อหาแบบไดนามิกลงในรายงาน PDF ของคุณด้วยโค้ดเพียงไม่กี่บรรทัด
แปลงไฟล์ PDF เป็น CSV ผ่าน Go API
ไลบรารี unipdf ช่วยให้นักพัฒนาซอฟต์แวร์สามารถแปลงไฟล์ PDF เป็นรูปแบบไฟล์ CSV ภายในแอปพลิเคชัน Go ของตนเองได้ ตัวแปลง PDF เป็น Excel เป็นเครื่องมือที่มีประโยชน์มากสำหรับธุรกิจและสถาบันวิจัย ใช้งานง่ายมากและให้ความสามารถในการแยก TextMarks จาก PDF และจัดกลุ่มเป็นคำ แถว และคอลัมน์สำหรับการดึงข้อมูล CSV
แทรกรูปภาพลงใน PDF
unipdf API แบบโอเพ่นซอร์สช่วยให้โปรแกรมเมอร์ซอฟต์แวร์สามารถเพิ่มรูปภาพที่พวกเขาเลือกลงในเอกสาร PDF ภายในแอปพลิเคชัน GO ได้ ทำให้งานของนักพัฒนาง่ายขึ้นในขณะที่วางภาพในเอกสาร PDF โดยไม่ต้องกังวลเรื่องพิกัด คุณเพียงแค่ต้องระบุเส้นทางและขนาดของภาพโดยไม่ต้องกังวลเกี่ยวกับพิกัด ไลบรารีได้รวมการรองรับรูปแบบรูปภาพยอดนิยม เช่น JPEG, PNG, GIF, TIFF และอื่นๆ
// Images to PDF.
func imagesToPdf(inputPaths []string, outputPath string) error {
c := creator.New()
for _, imgPath := range inputPaths {
common.Log.Debug("Image: %s", imgPath)
img, err := c.NewImageFromFile(imgPath)
if err != nil {
common.Log.Debug("Error loading image: %v", err)
return err
}
img.ScaleToWidth(612.0)
// Use page width of 612 points, and calculate the height proportionally based on the image.
// Standard PPI is 72 points per inch, thus a width of 8.5"
height := 612.0 * img.Height() / img.Width()
c.SetPageSize(creator.PageSize{612, height})
c.NewPage()
img.SetPos(0, 0)
_ = c.Draw(img)
}
err := c.WriteToFile(outputPath)
return err
}
เพิ่มรหัสผ่านในเอกสาร PDF
unipdf API ฟรีช่วยให้นักพัฒนาสามารถปกป้องเอกสาร PDF ของตนได้โดยการใช้รหัสผ่านกับพวกเขาโดยใช้คำสั่ง Go คุณสามารถจำกัดผู้ใช้ไม่ให้เปิดและอ่านเอกสาร PDF คุณยังสามารถตั้งรหัสผ่านของเจ้าของเพื่อให้สิทธิ์ในการเข้าถึงไฟล์ PDF ได้อย่างเต็มที่ นอกจากนี้ คุณยังสามารถจำกัดผู้ใช้ไม่ให้ทำการเปลี่ยนแปลงใดๆ กับบางส่วนของเอกสาร PDF ได้อีกด้วย
func protectPdf(inputPath string, outputPath string, userPassword, ownerPassword string) error {
permissions := security.PermPrinting | // Allow printing with low quality
security.PermFullPrintQuality |
security.PermModify | // Allow modifications.
security.PermAnnotate | // Allow annotations.
security.PermFillForms |
security.PermRotateInsert | // Allow modifying page order, rotating pages etc.
security.PermExtractGraphics | // Allow extracting graphics.
security.PermDisabilityExtract // Allow extracting graphics (accessibility)
encryptOptions := &model.EncryptOptions{
Permissions: permissions,
}
f, err := os.Open(inputPath)
if err != nil {
return err
}
defer f.Close()
pdfReader, err := model.NewPdfReader(f)
if err != nil {
return err
}
isEncrypted, err := pdfReader.IsEncrypted()
if err != nil {
return err
}
if isEncrypted {
return fmt.Errorf("The PDF is already locked (need to unlock first)")
}
// Generate a PdfWriter instance from existing PdfReader.
pdfWriter, err := pdfReader.ToWriter(nil)
if err != nil {
return err
}
// Encrypt document before writing to file.
err = pdfWriter.Encrypt([]byte(userPassword), []byte(ownerPassword), encryptOptions)
if err != nil {
return err
}
// Write to file.
err = pdfWriter.WriteToFile(outputPath)
return err
}