1. 製品
  2.   PDF
  3.   GO
  4.   unipdf  
 
  

PDF ドキュメントの作成と処理のための Go API 

開発者が PDF ドキュメントを作成、編集、操作、変換できるオープンソースの Go ライブラリ。

unipdf は、PDF ドキュメントの作成と操作に関連するすべてのクエリを簡単に処理できる、オープンな Source Go ライブラリです。このライブラリは、オープン ソース ソフトウェア開発に AGPL ライセンスを使用できるデュアル ライセンスで利用できます。このライブラリは、高レベルのテキスト、図、画像を含む PDF ドキュメントの生成を完全にサポートします。

オープン ソースの unipdf ライブラリは、PDF レポートの作成、PDF レポートの生成、請求書の作成、段落の作成と処理、PDF ページの結合と分割、ページの回転、PDF からのテキストの抽出など、PDF ドキュメントの処理と最適化のためのいくつかの一般的な機能と高度な機能をサポートしています。 PDF ファイル、PDF から CSV へのエクスポート、画像から PDF への変換、PDF の圧縮と最適化、PDF ファイルへのウォーターマーク、複合フォント (Unicode 文字) のサポート、デジタル署名など。

.

Previous Next

unipdf を使い始める

システムに unipdf をインストールするには、次のコマンドを実行してください。 

GitHub 経由で gofpdf をインストールする

go get github.com/unidoc/unipdf/v3

最新のアップデートについては、製品のリリース ページにアクセスしてください。

Go API 経由で PDF レポートを生成

オープン ソースの unipdf API は、開発者が独自の Go アプリケーション内で PDF レポートを作成する機能を提供します。このライブラリを使用すると、開発者は PDF ドキュメントを効率的に操作でき、画像、テーブル、ヘッダー、フッターなどを PDF レポートに簡単に追加するためのサポートが含まれています。また、わずか数行のコードで動的コンテンツを PDF レポートに配置することもできます。

Go API 経由で PDF ファイルを CSV に変換

unipdf ライブラリを使用すると、ソフトウェア開発者は、独自の Go アプリケーション内で PDF ファイルを CSV ファイル形式に変換できます。 PDF から Excel へのコンバーターは、ビジネスや研究機関にとって非常に便利なツールです。非常に使いやすく、PDF から TextMark を抽出し、それらを単語、行、および列にグループ化して CSV データを抽出する機能を提供します。

画像を PDF に挿入

オープン ソースの unipdf API により、ソフトウェア プログラマーは、独自に選択した画像を GO アプリケーション内の PDF ドキュメントに追加することができます。座標を気にすることなく、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 により、開発者は Go コマンドを使用して PDF ドキュメントにパスワードを適用することで、PDF ドキュメントを保護することができます。ユーザーが 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
}
  
 日本