C++ で Haru ライブラリを使用してテーブル構造を作成し、データを埋める必要があります。Haru ライブラリを使用してテーブル構造を作成するサンプル例を教えてください。
2 に答える
少し前に、Haru PDF を使用して別のプロジェクトの一部としていくつかのデータ テーブルを作成する必要がありました。複雑なテーブルの作成を簡素化するために、複雑なテーブルの作成を大幅に簡素化する Haru PDF ライブラリで使用する小さなユーティリティ モジュールを作成しました。このモジュールでは、テーブルの完全なカスタマイズが可能で、セル スパニング (行と列の両方) などをサポートしています。また、テーマ コンセプトによってレイアウトとルック アンド フェルを分離することもできます。
簡単な使用例(アイデアを与えるため)は次のようになります
int num_rows=5;
int num_cols=4;
char *table_title="Example 1: Basic table with default theme";
hpdf_table_t t = hpdf_table_create(num_rows,num_cols,table_title);
hpdf_table_set_content(t,content);
hpdf_table_set_labels(t,labels);
HPDF_REAL xpos=100;
HPDF_REAL ypos=630;
HPDF_REAL width=400;
HPDF_REAL height=0; // Calculate height automatically
hpdf_table_stroke(pdf_doc,pdf_page,t,xpos,ypos,width,height);
この回答でコードについて詳しく説明することは範囲外ですが、かなり自己文書化する必要があります。
このモジュールでは、純粋にプログラムによるテーブルだけでなく、完全にデータ駆動型のテーブルの作成も可能です (すべてのレイアウトとルック アンド フィールは構造から取得されます)。これにより、ライトウェイ モデル ビュー コントローラー アプローチが可能になり、メンテナンスが容易になります。これを完全に使用するには、対応するデータを取得するためにモジュールが呼び出すコールバック関数を実装するクライアントに依存します。
これは別個のユーティリティとしてリリースされることを意図したものではなかったので、(まだ) 完全なドキュメントを作成していませんが、いくつかの機能を示す簡単なスタンドアロンの例をまとめました。サンプルを実行した結果の PDF は、github に含まれています。ただし、すべてのパブリック API は完全に Doxygen のコメントが付けられているため、どのように組み合わせるかについていくつかのアイデアが得られるはずです。
モジュールは ( https://github.com/johan162/hpdf_table )にあります。
例として、 encoding_list.cデモのdraw_graph関数を使用できます。ソース tar ボールの一部です。