この包括的なガイドでは、HotPDFコンポーネントを使用して、開発者がPDFドキュメントでUnicode縦書きテキストを簡単に生成する方法を実演します。
縦書き組版は、日本語では縦書きまたはたてがきとも呼ばれ、2000年以上前の古代中国で生まれた伝統的なテキストレイアウト方法です。この書字体系は上から下、右から左に流れ、深い文化的意義を持つ独特の視覚的外観を作り出します。
縦書きシステムは東アジアの文学と文書において重要な役割を果たしてきました:
横書きへの世界的な傾向にもかかわらず、縦書きテキストレイアウトはいくつかの文脈で関連性を保っています:
HotPDF Delphiコンポーネントは、PDFドキュメントでの縦書きテキストレイアウトの包括的なサポートを提供し、多言語アプリケーションや伝統的な文書形式で作業する開発者にとって理想的なソリューションです。
以下の包括的なDelphiコード例では、HotPDFコンポーネントを使用して縦書きテキストレンダリングを実装する方法を実演します。この例では、複数言語での横書きと縦書きの両方のテキストレイアウトを紹介します。
{***********************************************************} // HotPDF PDFコンポーネント // Copyright(c)2007-2025, https://www.loslab.com {***********************************************************} { ユニット: uVerticalText 目的: HotPDFでの縦書きテキスト出力機能を実演 機能: - 横書きと縦書きテキストレンダリング - 多言語サポート(英語、韓国語、日本語、中国語) - Unicode文字処理 - 適切な表示のためのフォント埋め込み } unit uVerticalText; interface {$I ..\..\..\Lib\HotPDF.inc} uses {$IFDEF XE2+} WinApi.Windows, WinApi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.StdCtrls, Vcl.Controls, Vcl.Dialogs, Vcl.Forms, {$ELSE} Windows, Messages, SysUtils, Graphics, Controls, StdCtrls, Classes, Dialogs, Forms, {$ENDIF} HPDFDoc; // PDF生成用HotPDFコンポーネント type // 縦書きテキスト実演用メインフォームクラス TForm1 = class(TForm) Button1: TButton; // PDF生成をトリガーするボタン procedure Button1Click(Sender: TObject); private {プライベート宣言} public {パブリック宣言} end; var Form1: TForm1; // メインフォームインスタンス HotPDF: THotPDF; // HotPDFコンポーネントインスタンス implementation {$R *.DFM} // 重要な注意:古いバージョンのDelphiはUnicode文字を正しく処理できません。 // このファイルを開くにはDelphi 2009以上が必要です。 { メソッド: Button1Click 目的: 複数言語での縦書きと横書きテキスト出力を実演 パラメータ: Sender - イベントをトリガーしたオブジェクト 機能: - 横書きと縦書きテキストの両方でPDFを作成 - 複数言語でのテキスト表示(英語、韓国語、日本語、中国語) - 適切な文字表示のためのUnicodeフォントを使用 - 異なるテキスト位置決め技術を実演 } procedure TForm1.Button1Click(Sender: TObject); begin // HotPDFインスタンスを作成 HotPDF := THotPDF.Create(nil); try // PDF生成設定を構成 HotPDF.AutoLaunch := true; // 作成後にPDFを自動的に開く HotPDF.FontEmbedding := true; // 適切な表示のためにフォントを埋め込む HotPDF.FileName := 'VerticalText.pdf'; // 出力ファイル名を設定 // PDFドキュメント作成を開始 HotPDF.BeginDoc; HotPDF.CurrentPage.Size := psA4; // ページサイズをA4に設定 // === 横書きテキスト実演 === HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, False); // 横書きテキストモードを設定 // 複数言語での横書きテキストを出力 HotPDF.CurrentPage.TextOut(80, 70, 0, 'Horizontal Text 가로텍스트 가로쓰기 横向きのテキスト 横書き 横向文本 横書'); // 装飾的な区切り線を追加 HotPDF.CurrentPage.TextOut(40, 110, 0, '※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※'); // === 縦書きテキスト実演 === HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, true); // 縦書きテキストモードを設定 // 混合言語縦書きテキスト(韓国語、日本語) HotPDF.CurrentPage.TextOut(530, 180, 0, '縦書 縦書き 세로쓰기 垂直テキスト 수직 텍스트'); // 中国語テキスト - 独立宣言の抜粋 HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, true); HotPDF.CurrentPage.TextOut(500, 180, 0, '『我等之見解為,下述真理不證自明:凡人生而平等,秉造物者之賜,'); HotPDF.CurrentPage.TextOut(470, 180, 0, '擁諸無可轉讓之權利,包含生命權、自由權、與追尋幸福之權。』'); // 日本語テキスト - 伝統的な詩 HotPDF.CurrentPage.TextOut(430, 180, 0, '昨日またかくてありけり、今日もまたかくてありなむ'); HotPDF.CurrentPage.TextOut(400, 180, 0, 'この命にを齷齪、明日をのみ思ひわづらふ'); HotPDF.CurrentPage.TextOut(370, 180, 0, 'いくたびか栄枯の夢の、消え残る谷に下りて'); HotPDF.CurrentPage.TextOut(340, 180, 0, '河波のいざよふ見れば、砂まじり水巻き帰る'); HotPDF.CurrentPage.TextOut(310, 180, 0, '嗚呼古城なにをか語り、岸の波なにをか答ふ、過し世を静かに思へ'); // 中国古典詩 - 李白の詩 HotPDF.CurrentPage.TextOut(270, 180, 0, '棄我去者昨日之日不可留,亂我心者今日之日多煩憂。'); HotPDF.CurrentPage.TextOut(240, 180, 0, '長風萬里送秋鴈,對此可以酣高樓。蓬萊文章建安骨,中間小謝又清發'); HotPDF.CurrentPage.TextOut(210, 180, 0, '俱懷逸興壯思飛,欲上青天攬明月。抽刀斷水水更流,舉杯消愁愁更愁'); HotPDF.CurrentPage.TextOut(180, 180, 0, '人生在世不稱意。明朝散髮弄扁舟。'); // 韓国語テキスト - 現代詩 // 注意:互換性のためMalgun Gothicの代わりにArial Unicode MSを使用 //HotPDF.CurrentPage.SetFont('Malgun Gothic', [], 12, 0, true); // 代替韓国語フォント HotPDF.CurrentPage.TextOut(140, 180, 0, '눈 맞으며 어둠 속을 떨며 가는 사람들을트、노래가 길이 되어 앞질러 가고'); HotPDF.CurrentPage.TextOut(110, 180, 0, '돌아올 길 없는 눈길 앞질러 가고'); HotPDF.CurrentPage.TextOut(80, 180, 0, '아름다움이 이 세상을 건질 때까지'); HotPDF.CurrentPage.TextOut(50, 180, 0, '절망에서 즐거움이 찾아올 때까지'); // === フッター装飾 === HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, False); // 横書きテキストに戻す // 装飾的なフッター線を追加 HotPDF.CurrentPage.TextOut(40, 720, 0, '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'); // PDFドキュメントを完成 HotPDF.EndDoc; finally // リソースをクリーンアップ HotPDF.Free; end; end; end.
PDFでの縦書きテキストを扱う際、異なる言語での正しい文字表示を保証するために適切なフォント選択が重要です:
FontEmbedding := true
を有効にする縦書きテキストの位置決めには、読書の流れと文字間隔の慎重な考慮が必要です:
HotPDF Delphiコンポーネントは縦書きテキストレイアウトの堅牢なサポートを提供し、伝統的なアジア組版や縦書きテキスト方向を必要とする現代デザインアプリケーションで作業する開発者にとって優れた選択肢です。Unicodeフォントの適切な実装、慎重な位置決め、文化的組版慣習への注意により、伝統的な読書パターンを尊重しながら現代の技術標準を維持するプロフェッショナルなPDFドキュメントを作成できます。
出版、ドキュメント管理、クリエイティブデザインのアプリケーションを開発している場合でも、HotPDFの縦書きテキスト機能により、多様なグローバルオーディエンスにサービスを提供する文化的に適切で視覚的に魅力的なPDFドキュメントを作成できます。
HotPDF Delphi组件:在PDF文档中创建垂直文本布局 本综合指南演示了HotPDF组件如何让开发者轻松在PDF文档中生成Unicode垂直文本。 理解垂直排版(縦書き/세로쓰기/竖排) 垂直排版,也称为垂直书写,中文称为縱書,日文称为tategaki(縦書き),是一种起源于2000多年前古代中国的传统文本布局方法。这种书写系统从上到下、从右到左流动,创造出具有深厚文化意义的独特视觉外观。 历史和文化背景 垂直书写系统在东亚文学和文献中发挥了重要作用: 中国:传统中文文本、古典诗歌和书法主要使用垂直布局。现代简体中文主要使用横向书写,但垂直文本在艺术和仪式场合仍然常见。 日本:日语保持垂直(縦書き/tategaki)和水平(横書き/yokogaki)两种书写系统。垂直文本仍广泛用于小说、漫画、报纸和传统文档。 韩国:历史上使用垂直书写(세로쓰기),但现代韩语(한글)主要使用水平布局。垂直文本出现在传统场合和艺术应用中。 越南:传统越南文本在使用汉字(Chữ Hán)书写时使用垂直布局,但随着拉丁字母的采用,这种做法已基本消失。 垂直文本的现代应用 尽管全球趋向于水平书写,垂直文本布局在几个方面仍然相关: 出版:台湾、日本和香港的传统小说、诗集和文学作品…
HotPDF Delphi 컴포넌트: PDF 문서에서 세로쓰기 텍스트 레이아웃 생성 이 포괄적인 가이드는 HotPDF 컴포넌트를 사용하여…
Отладка проблем порядка страниц PDF: Реальный кейс-стади компонента HotPDF Опубликовано losLab | Разработка PDF |…
PDF 페이지 순서 문제 디버깅: HotPDF 컴포넌트 실제 사례 연구 발행자: losLab | PDF 개발…
PDFページ順序問題のデバッグ:HotPDFコンポーネント実例研究 発行者:losLab | PDF開発 | Delphi PDFコンポーネント PDF操作は特にページ順序を扱う際に複雑になることがあります。最近、私たちはPDF文書構造とページインデックスに関する重要な洞察を明らかにした魅力的なデバッグセッションに遭遇しました。このケーススタディは、一見単純な「オフバイワン」エラーがPDF仕様の深い調査に発展し、文書構造に関する根本的な誤解を明らかにした過程を示しています。 PDFページ順序の概念 - 物理的オブジェクト順序と論理的ページ順序の関係 問題 私たちはHotPDF DelphiコンポーネントのCopyPageと呼ばれるPDFページコピーユーティリティに取り組んでいました。このプログラムはデフォルトで最初のページをコピーするはずでしたが、代わりに常に2番目のページをコピーしていました。一見すると、これは単純なインデックスバグのように見えました -…
Debug dei Problemi di Ordine delle Pagine PDF: Studio di Caso Reale del Componente HotPDF…