HotXLS ドキュメント / API リファレンス

ポータブル印刷プラン

論理ページ分割をネイティブ出力から分離します。lxPortablePrint が切り離されたレンダリング スナップショットから不変の印刷プランを作成し、lxPortableCairo がそのページを Linux と macOS で PDF、SVG、PNG として描画します

プランナーは物理ポイントと完全なセル境界を使い、結合範囲を保持し、行・列タイトルを繰り返し、離散した印刷範囲、手動改ページ、用紙の向き、余白、中央揃え、拡大縮小、ページ順を、ソース ワークブックを変えずに適用します

ワークブックのページ設定を使う

lxPortableWorkbookPrint の CreateXLSPortableWorkbookPrintPlan には、借用の TXLSWorkbook と TXLSXWorkbook 向けのオーバーロードがあります。どちらも SheetIndex、OriginRow、OriginColumn、Snapshot、Defaults を受け付けます

シート インデックスとスナップショットの原点は 1 始まりです。アダプターは、現在のワークブック世代のスナップショットと、すべての完全な印刷範囲と繰り返しタイトル範囲を含むキャプチャ矩形を要求します

スナップショットの同一性には世代が含まれ、一致するシートと原点は呼び出し側が供給します。スナップショット形式はワークブックやワークシートの同一性をエンコードしないため、転送時には正しいシート コンテキストを保持してください

Snapshot := CaptureXLSPortableRenderSnapshot(Owner, 1, 1, 1, 30, 6,
  XLSDefaultPortableRenderLimits, Geometry);
Plan := CreateXLSPortableWorkbookPrintPlan(Workbook, 1, 1, 1,
  Snapshot, XLSDefaultPortablePrintOptions);
Layout := PrepareXLSPortableCairoLayout(Plan, Fonts,
  XLSDefaultPortableCairoOptions);
try
  Files := Layout.Save('/srv/output/report.pdf', xpcfPDF);
  Files := Layout.Save('/srv/output/report.svg', xpcfSVG);
  Files := Layout.Save('/srv/output/report.png', xpcfPNG);
finally
  Layout.Free;
end;

Linux や macOS でのキャプチャには、ネイティブ ワークブックの直接キャプチャ で説明する、明示的なフォント基盤ジオメトリ プロバイダーを使ってください。ページ分割自体に Cairo、フォント ファイル、Excel、プリンター ドライバーは不要です

ワークブック アダプターは一時的な読み取りリースを取得し、既存メタデータを読み、切り離されたデータを返します。所有インターフェースを通じた raw ワークブックの引き取りも、結果へのワークブック リースの保持も行いません

引用符付きシート名、エスケープされた引用符、カンマ区切りの印刷範囲は、選択されたワークシートについてだけ受け付けられます。キャプチャ矩形の外への参照、外部シート参照、不完全なタイトル範囲、不正な形式の範囲は明示的に拒否されます

認識される用紙サイズは、Letter、Tabloid、Ledger、Legal、A3、A4、A5、B4、B5 です。未指定の用紙サイズは Defaults.PageWidthPoints と Defaults.PageHeightPoints を使い、認識できない明示的用紙サイズは拒否されます

ヘッダーとフッターの内容、行/列番号の印刷、印刷目盛線の有効化、白黒やドラフト表示、コメント印刷、エラー置換は現在拒否されます。このアダプターはそれらの設定を忠実に描画できないためです。Classic ワークブックは印刷目盛線がデフォルトで有効なため、この対応契約では PageSetup.PrintGridlines を無効にしてください

拡大縮小モードとネイティブ デフォルト

TXLSXWorksheet.PageFitToPages は寸法とは独立にフィット モードを選択します。FitToWidth や FitToHeight の設定がフィット モードを選び、PageScale の設定が倍率スケーリングを選びます

XLSX インポートは sheetPr/pageSetUpPr/@fitToPage と、省略されたフィット寸法に対する OOXML デフォルト値 1 を保持します。エクスポートは明示的なゼロ寸法を保持し、XLS/XLSX 変換は選択されたモードを保ちます

倍率スケーリングは古いフィット寸法を無視します。フィット モードは保存された倍率を無視し、正のフィット寸法は手動改ページを無視します。両軸がゼロなら 100% 倍率で手動改ページを保持し、正の上限は小さな範囲を拡大せずに、はみ出した内容を縮小します

論理ページ分割は供給されたスナップショット ジオメトリに依存します。プリンター ドライバーのメトリクスや Excel PDF エクスポートの拡大縮小は物理出力を変え得るため、正確な視覚的等価性の保証にはなりません

切り離されたプランを直接組み立てる

CreateXLSPortablePrintPlan(Snapshot, Areas, Options) は、ゼロ始まり両端を含む TXLSPortablePrintRanges を受け付けます。空の Areas 配列はスナップショット全体を選択し、各 TXLSPortablePrintRange は FirstRow、FirstColumn、LastRow、LastColumn を含みます

XLSDefaultPortablePrintOptions から始め、その後で以下の TXLSPortablePrintOptions のフィールドを設定してください

フィールド契約
PageWidthPoints, PageHeightPointsポイント単位の正の物理用紙寸法です。デフォルトは A4 です
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPoints正の印刷可能矩形を残す負でない余白です。デフォルトは 36 ポイントです
Landscape, CenterHorizontally, CenterVerticallyLandscape は縦向きの寸法を入れ替えます。中央揃えは各ページ本文とその繰り返しタイトルに適用されます
ScalePercent10 から 400、デフォルトは 100 です。どちらのフィット寸法も正でないときに適用されます
FitToPagesWide, FitToPagesTall負でないページ上限で、制限なし軸はゼロです。正の上限は 10% から 100% の間で実現可能な倍率を探します
TitleFirstRow, TitleLastRow, TitleFirstColumn, TitleLastColumn完全なゼロ始まり両端を含むタイトル範囲です。両端点を -1 にするとその軸が無効になります
RowBreaks, ColumnBreaks新しいページが始まる、厳密に昇順で一意なゼロ始まり位置の TXLSPortablePrintBreaks 配列です。ワークブック アダプテーションはシートを編集せずに切り離されたメタデータを並べ替えます
OrderTXLSPortablePrintOrder の値で、xppoDownThenOver か xppoOverThenDown です
MaxPages正の合計ページ上限です。デフォルトは 256、最大は 100,000 です
MaxPlanBytes作業ストレージ、切り離しスナップショット ペイロード、ページ レコードがこの正のメモリ予算を共有します。デフォルトは 64 MiB、最大は 1 GiB です
MaxPlanningSteps正の上限付き計画作業予算です。デフォルトは 64 Mi ステップ、最大は 2 Gi ステップです。超えると EXLSPortablePrintBudget が発生します

ジオメトリは有限でなければなりません。非表示の寸法はサイズ 0 となり、改ページが結合を分断してはならず、範囲やタイトルが結合と部分的に交差してはなりません。過大なセルや結合は、黙って切り取られる代わりに拒否されます

結果の検査とレンダリング

IXLSPortablePrintPlan.Snapshot は切り離された不変レンダリング スナップショットを所有し、PageCount が論理ページ数を報告します。ゼロ始まりの Pages[Index] は、切り離されたタイル配列を持つ TXLSPortablePrintPage を返します

各ページは AreaIndex、AcrossIndex、DownIndex、ゼロ始まり両端を含む Body、Scale、PageWidthPoints、PageHeightPoints、Tiles を公開します

TXLSPortablePrintTiles は、繰り返し角、タイトル行、タイトル列、本文に対応する最大 4 つの TXLSPortablePrintTile レコードを含みます。各タイルは未スケールのソース SourceLeft、SourceTop、SourceRight、SourceBottom と、物理的な宛先 DestinationLeft、DestinationTop を公開します

PrepareXLSPortableCairoLayout(Plan, Fonts, Options) オーバーロードは切り離されたページ レコードを保持し、タイルごとにシーン内容をクリップして拡大縮小し、プランの用紙寸法と余白を使います。ラスター、フォント、シェーピング、描画の各予算は、繰り返しコンテンツにも引き続き適用されます

Layout.PageCount はプランと一致します。PDF は 1 つの複数ページ ファイルを生み出し、SVG と PNG は論理ページごとに 1 つのファイルを生み出します。レイアウトのテキスト行検査は、ページごとの繰り返し位置ではなく、未スケールのスナップショット座標を保持します

既存の出力ファイルは拒否され、Windows のネイティブ Cairo エントリ ポイントは明示的に未対応のままです。依存関係、フォント マッピング、シーン、出力上限については ポータブル ヘッドレス出力 を参照してください