アプリケーションの説明: ユーザーがレポートをドキュメントに出力できるアプリケーションがあります。ドキュメントに書き込まれるデータは、テーブルの形式です。テーブル内の列の数と、テーブル内の各セルに含まれる文字列の幅は、実行時まで不明です (ユーザーが実行するクエリ、レポートに何を表示するかなどによって異なります)。
Delphi XE と Gnostice の eDocEngine を使用して PDF ドキュメントを作成し、ドキュメントにテーブルを作成してレポート データを書き込みます。
問題: 私が抱えている問題は、特定の数の列 (6 または 7) しか文書に書き込むことができず、文書の右側から消えることです。ユーザーがテーブルに 30 列または 40 列を含むレポートを作成することはよく知られているため (これらの列はクエリを実行するデータベースのフィールドに対応するため)、テーブルが収まるようにする必要があります。ドキュメントに含まれる列の数に関係なく、完全にドキュメントに挿入されます。
PDF はズームできるので、ユーザーが PDF リーダーを使用してズームインし、テーブルをスクロールできるので、フォント サイズと列幅を縮小して、すべてをそのように合わせることができると思います。私が知る必要があるのは:
- テーブル全体を 1 ページに収めるより良い方法はありますか?
- 縮小/ズームがこれを行うための最良/唯一の方法である場合、ドキュメントを奇妙に見せることなくすべてを確実に収める最も効率的な方法は何ですか (つまり、テーブルは左に束ねられるのではなく、理想的にはページ全体に広がる必要があります)いくつかのランダムスケーリングアルゴリズムのためです)。
編集 さらに掘り下げたところ、ドキュメント内のキャンバスのスケールを変更する「inputXRes」および「inputYRes」プロパティが見つかりました。これは有望に見えますが、一瞬。これらのプロパティがどのように使用されているかについて、誰かが光を当てることができますか? テキスト自体はスケーリングされていますが、テーブルのサイズは同じままです。つまり、巨大なテーブル セルの中央に小さなテキストが表示され、テーブルはまだレポートに 7 列しか表示されていません。