1. מוצרים
  2.   PDF
  3.   GO
  4.   unipdf  
 
  

עבור ל-API ליצירה ועיבוד של מסמכי PDF 

ספריית Go Open Source שמעניקה למפתחים את היכולת ליצור, לערוך, לטפל ולהמיר מסמכי PDF.

ה-unipdf היא ספריית קוד פתוח Go שיכולה לטפל בקלות בכל השאילתות שלך הקשורות ליצירה ולמניפולציה של מסמכי PDF. הספרייה זמינה ברישיון כפול שבו ניתן להשתמש ברישיון AGPL לפיתוח תוכנה בקוד פתוח. הספרייה מספקת תמיכה מלאה להפקת מסמכי PDF עם רמה גבוהה של טקסט, שרטוטים ותמונות.

ספריית הקוד הפתוח unipdf תומכת במספר תכונות נפוצות כמו גם מתקדמות לעיבוד ואופטימיזציה של מסמכי PDF, כגון יצירת דוחות PDF, הפקת דוחות PDF, יצירת חשבוניות, יצירה וטיפול בפסקאות, מיזוג ופיצול דפי PDF, סיבוב דפים, חילוץ טקסט מתוך קבצי PDF, ייצא PDF ל-CSV, המר תמונות ל-PDF, דחיסה ואופטימיזציה של PDF, קובצי PDF עם סימן מים, תמיכה בגופנים מורכבים (תווי Unicode), חתימות דיגיטליות ועוד רבים.

.

Previous Next

תחילת העבודה עם unipdf

כדי להתקין את ה-unipdf במערכת שלך, הפעל את הפקודה הבאה. 

התקן gofpdf דרך GitHub

go get github.com/unidoc/unipdf/v3

לעדכון האחרון, בקר בדף הגרסאות של המוצר.

הפק דוח PDF באמצעות Go API

ה-API של unipdf בקוד פתוח מספק למפתחים את היכולת ליצור דוחות PDF בתוך יישומי Go שלהם. הספרייה מאפשרת למפתחים לעבוד ביעילות עם מסמכי PDF וכללה תמיכה בהוספת תמונות, טבלאות, כותרות עליונות, כותרות תחתונות ועוד הרבה יותר לדוחות ה-PDF שלך בקלות. אתה יכול גם למקם תוכן דינמי בדוחות ה-PDF שלך עם כמה שורות קוד בלבד.

המר קובץ PDF ל-CSV באמצעות Go API

ספריית unipdf מאפשרת למפתחי תוכנה להמיר קבצי PDF לפורמטים של קבצי CSV בתוך יישומי Go משלהם. ממירי PDF ל-Excel הוא כלי שימושי מאוד עבור מוסדות עסקים ומחקר. זה קל מאוד לשימוש ומספק את היכולת לחלץ סימני טקסט מ-PDF, ולקבץ אותם יחד למילים, שורות ועמודות לחילוץ נתוני CSV.

הכנס תמונות ל-PDF

ה-API של unipdf בקוד פתוח נותן למתכנתי תוכנה את היכולת להוסיף תמונות לפי בחירתם למסמכי 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

ה-API החינמי של unipdf נותן למפתחים את הכוח להגן על מסמכי ה-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
}
  
 עִברִית