1. 製品
  2.   PDF
  3.   C++
  4.   PDFGen
 
  

新しいPDFを生成し、画像/バーコードを追加するための無料C PDF API。

PDF文書の生成と管理のための強力なオープンソース軽量C PDF処理ライブラリです。テキスト、画像、バーコード、図形をPDF文書に無料で追加することをサポートします。

PDFGen ライブラリとは何ですか?

プログラムで PDF 文書を作成・管理することは、ソフトウェア開発の分野で一般的な要件です。請求書やレポートの生成から複雑な文書の作成まで、信頼できる PDF 生成ライブラリはソフトウェア開発者の必須ツールです。機能が豊富なライブラリは多数存在しますが、複雑な依存関係や学習コストが高いことが多いです。そこで PDFGen C ライブラリの出番です。PDF の生成と管理のために設計された、小規模で自己完結型のオープンソース C ライブラリです。フットプリントが最小で外部依存がゼロのため、シンプルなアプリケーションや組み込みシステム、あるいは重厚な PDF ライブラリの導入を避けたいケースに最適です。PDFGen はコンパクトなコードベースにもかかわらず、PDF へのテキスト追加、基本的なベクターグラフィックスの操作、バーコードや画像の埋め込み、ブックマークの追加、新しいページの追加など、堅実な機能セットを提供します。

ライブラリが圧倒的に複雑になるエコシステムにおいて、PDFGen は爽快なアプローチを取ります。ライブラリ全体が単一の C ファイルと対応するヘッダーファイルに収められています。これにより、どのプロジェクトへの統合も非常にシンプルになります。PDFGen は自己完結型で、外部ライブラリに依存しません。これにより依存関係の管理という頭痛の種がなくなり、スムーズなコンパイルプロセスが保証されます。その小さなフットプリントと単一ファイル構成のおかげで、余分なオーバーヘッドなしに基本的な PDF 出力が必要な大規模アプリケーションへの組み込みに最適です。このライブラリは Unlicense の下でリリースされており、パブリックドメインに相当するライセンスです。つまり、商用・非商用を問わず、あらゆる目的でコードを自由に使用、変更、配布でき、制限は一切ありません。

Previous Next

PDFGen の開始方法

PDFGen の推奨インストール方法は GitHub を使用することです。スムーズなインストールのために、以下のコマンドをご利用ください。

GitHub から PDFGen をインストールする

 Git clone https://github.com/AndreRenaud/PDFGen.git

手動でインストールすることもできます。最新のリリースファイルを直接 GitHub リポジトリからダウンロードしてください。

C API を使用して基本的な PDF ファイルを作成する

PDFGen は、PDF ドキュメントの生成と管理を簡単に行えるように特別に設計された、オープンソースで軽量な C ライブラリです。テキストや画像の挿入、新しいページの追加、フォントの管理など、PDF ドキュメントを操作するためのさまざまな機能をサポートしています。以下の例は、ソフトウェア開発者が C アプリケーション内でタイトルと本文を持つ単一ページの PDF を作成する方法を示しています。

C ライブラリを使用してシンプルな PDF を作成する方法

#include 
#include "pdfgen.h"

int main(void) {
    // 1. Create a new PDF document with A4 page size
    struct pdf_info info = {
        .creator = "My App",
        .producer = "My App",
        .title = "My First PDF",
        .author = "John Doe",
    };
    struct pdf_doc *pdf = pdf_create(PDF_A4_WIDTH, PDF_A4_HEIGHT, &info);
    
    // 2. Set up a font
    const int font_size = 20;
    
    // 3. Add a new page
    pdf_append_page(pdf);
      
    // 6. Save the PDF to a file
    pdf_save(pdf, "hello_world.pdf");
    
    // 7. Free the allocated memory
    pdf_destroy(pdf);
    
    printf("PDF generated successfully!\n");
    return 0;
}

C ライブラリによる PDF テキスト操作

オープンソースの PDFGen ライブラリは、C++ ライブラリを通じて PDF ドキュメント内のテキスト処理を完全にサポートしています。ライブラリは強力なテキスト処理機能を提供し、Times-Roman、Helvetica、Courier などの標準 PDF フォントを使用し、フォントサイズ、色、テキストの回転を設定してテキストの外観を制御できます。また、ページ上の特定座標にテキストを追加することもサポートしています。以下の例は、C コマンドを使用して PDF ドキュメント内にテキストを追加する方法を示しています。

C ライブラリで PDF ファイルにテキストを追加する方法は?

#include "pdfgen.h"

int main(void) {
    struct pdf_info info = {
        .creator = "My Application",
        .title = "My First PDF",
        .author = "Me"
    };
    struct pdf_doc *pdf = pdf_create(PDF_A4_WIDTH, PDF_A4_HEIGHT, &info);
    pdf_set_font(pdf, "Times-Roman");
    pdf_append_page(pdf);
    pdf_add_text(pdf, NULL, "Hello, PDFGen!", 12, 50, 20, PDF_BLACK);
    pdf_save(pdf, "hello.pdf");
    pdf_destroy(pdf);
    return 0;
}

 

PDF に図形を描画し画像を埋め込む

オープンソースの PDFGen ライブラリは、PDF ドキュメント内で形状を描画し画像を追加するための強力なサポートを簡単に提供します。テキストだけでなく、形状や線の描画が必要なドキュメント向けに、PDFGen は基本的な形状や線を描くための関数群を提供します。数行のコードを書くだけで、ソフトウェア開発者は線、矩形、円を描画し、アプリケーション内で形状、チャート、または枠線を作成できます。以下の例は、ソフトウェア開発者がグラフィックを描画し、C アプリ内で JPEG 画像を追加する方法を示しています。

C ライブラリで PDF ドキュメントに図形を描く方法は?

#include "pdfgen.h"

int main(void) {
    // ... (PDF creation boilerplate as above) ...
    pdf_append_page(pdf);
    // Draw a red line
    pdf_add_line(pdf, NULL, 50, 50, 200, 50, 3, PDF_RED);
    // Draw a blue-filled rectangle
    pdf_add_filled_rect(pdf, NULL, 50, 100, 150, 50, PDF_BLUE);
    // ... (Save and destroy PDF) ...
    return 0;
}

C ライブラリを使用した PDF 内のバーコード生成

PDFGen の際立った機能は、PDF ドキュメント内でバーコードを生成する組み込みサポートです。これは、請求書、出荷ラベル、在庫タグを作成する必要があるアプリケーションに特に有用です。このライブラリは、一般的なバーコード規格である Code-128(高密度の線形バーコードシンボル)と Code-39(可変長の離散バーコードシンボル)をサポートしています。以下は、C アプリケーション内で PDF ファイルにバーコードを追加する方法を示す有用な例です。

C アプリで PDF ファイルにバーコードを追加する方法は?

#include "pdfgen.h"

int main(void) {
    // ... (PDF creation boilerplate) ...
    pdf_append_page(pdf);
    pdf_add_barcode(pdf, NULL, PDF_BARCODE_128, 50, 200, 200, 50, "PDFGen-12345", PDF_BLACK);
    // ... (Save and destroy PDF) ...
    return 0;
}
 日本