|
PDF 1.5 以降の AcroForm リッチテキストテキストウィジェット (ISO 32000-1 12.7.4.3 + Annex L) を現在のページに追加します。このウィジェットは、リッチテキストを解析しないリーダーで使用される標準の /V + /DV プレーンテキストフォールバックと、Acrobat および Foxit がスタイル付きテキストをレンダリングするために直接消費する新しい /RV リッチテキスト XHTML ボディおよび /DS デフォルトスタイルエントリを保持します。/Ff RichText ビット (26) は自動的に OR 演算されます。
Delphi 構文:
procedure AddRichTextField(const Field名前, InitialValue: AnsiString; const RichValue, DefaultStyle: AnsiString; Rectangle: TRect; MaxLen: Integer = 0; Flags: THPDFFormFieldFlags = []);
C++ 構文:
void AddRichTextField(const AnsiString& Field名前, const AnsiString& InitialValue, const AnsiString& RichValue, const AnsiString& DefaultStyle, const TRect& Rectangle, int MaxLen = 0, THPDFFormFieldFlags Flags = THPDFFormFieldFlags());
説明
ウィジェットは、/FT /Tx、/DA (/Helv 12 Tf 0 0 0 rg)、RichText ビットが設定された /Ff、/V と /DV の両方として提供された InitialValue、/RV としての RichValue、および /DS としての DefaultStyle を持つ Tx フォームフィールドとして出力されます。InitialValue、RichValue、および DefaultStyle はマルチバイトコンテンツを自動検出し、必要に応じて UTF-16BE 16進文字列エンコーディングに切り替えます (国際化プレーンテキストフィールドに対する既存の AddTextField の動作と一致します)。
リッチテキストのレンダリングはリーダーで行われます。Acrobat / Foxit / Edge / Chrome の PDF ビューアーはすべて、RichText ビットがオンのときに /RV を解析し、システムから Unicode フォントのフォールバックを取得します。そのため、HotPDF が /DR Resources に CID フォントを埋め込まなくても、CJK、キリル文字、アラビア語、およびアクセント付きのラテン文字のコンテンツは正しく表示されます。HotPDF 独自の AutoFormAppearances パスについては、マルチバイトテキスト用のプレースホルダーの空の AP ブランチが引き続き配置されます (v2.56.0 以降のタスク)。リッチテキスト対応のリーダーはその AP を無視し、/RV から直接レンダリングします。
Field名前 - PDF フォームフィールドの /T 部分名 (親内で一意である必要があります)。スペースと非 ASCII バイトが受け入れられます。非 ASCII は、出力される /T 文字列に対して UTF-16BE エンコーディングをトリガーします。
InitialValue - /V および /DV に書き込まれるプレーンテキストの PDF テキスト文字列。/RV を解析しないリーダーは、表示のためにこの値にフォールバックします。
RichValue - PDF 1.7 Annex L タグ付き XHTML ボディ (最も移植性の高い形式は <?xml version="1.0"?> で始まり、xfa:contentType="text/html" 名前空間属性を持つ XHTML <body> ルートが続きます)。インラインスタイルは、CSS プロパティ (font-family、font-size、font-weight、font-style、color など) とともに <span style="..."> を使用します。
DefaultStyle - /RV に文字ごとのスタイルが存在しない場合に、入力時にユーザーが入力した文字に適用される CSS に似たスタイル文字列。例: 'font: 12pt Helvetica; color: #000000'。
Rectangle - HotPDF 画面座標 (左上原点) でのウィジェットの /Rect。四角形が PDF ユーザースペースに変換されるときに Y 投影が自動的に行われます。
MaxLen - オプション。ゼロより大きい場合、ユーザーが入力した文字数を制限する /MaxLen エントリを出力します。デフォルトは 0 (無制限) です。
Flags - オプション。自動追加される RichText ビットを超えて /Ff に OR 演算される追加のフィールドフラグ。一般的な追加フラグ: 複数段落のリッチテキストボディ用の ffMultiline、表示専用の書式設定されたテキスト用の ffReadOnly。ffRichText フラグは常に追加されるため、呼び出し元がそれを含める必要はありません。
コード例
// Rich-text Tx widget with bold + italic markup
var
Rich, DS: AnsiString;
R: TRect;
begin
HPDF.BeginDoc;
Rich :=
'<?xml version="1.0"?>' +
'<body xmlns="http://www.w3.org/1999/xhtml" ' +
'xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" ' +
'xfa:contentType="text/html">' +
'<p style="font-family:Helvetica;font-size:12pt">' +
'<span style="font-weight:bold">Bold</span> and ' +
'<span style="font-style:italic">italic</span> text.' +
'</p></body>';
DS := 'font: 12pt Helvetica; color: #000000';
R.Left := 60; R.トップへ := 60; R.Right := 280; R.Bottom := 100;
HPDF.CurrentPage.AddRichTextField(
'Biography', 'Plain biography text', Rich, DS, R);
HPDF.EndDoc;
end;
関連項目
AddTextField, AutoFormAppearances, バージョン, AcroForm サポート
|