本综合指南演示了HotPDF组件如何让开发者轻松在PDF文档中生成Unicode垂直文本。
垂直排版,也称为垂直书写,中文称为縱書,日文称为tategaki(縦書き),是一种起源于2000多年前古代中国的传统文本布局方法。这种书写系统从上到下、从右到左流动,创造出具有深厚文化意义的独特视觉外观。
垂直书写系统在东亚文学和文献中发挥了重要作用:
尽管全球趋向于水平书写,垂直文本布局在几个方面仍然相关:
HotPDF Delphi组件为PDF文档中的垂直文本布局提供全面支持,使其成为处理多语言应用程序或传统文档格式的开发者的理想解决方案。
以下综合Delphi代码示例演示了如何使用HotPDF组件实现垂直文本渲染。此示例展示了多种语言的水平和垂直文本布局。
{***********************************************************} // HotPDF PDF组件 // 版权所有(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, '人生在世不稱意。明朝散髮弄扁舟。'); // 韩文文本 - 当代诗歌 // 注意:为了兼容性使用Arial Unicode MS而不是Malgun Gothic //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 컴포넌트를 사용하여…
HotPDF Delphiコンポーネント:PDFドキュメントでの縦書きテキストレイアウトの作成 この包括的なガイドでは、HotPDFコンポーネントを使用して、開発者がPDFドキュメントでUnicode縦書きテキストを簡単に生成する方法を実演します。 縦書き組版の理解(縦書き/세로쓰기/竖排) 縦書き組版は、日本語では縦書きまたはたてがきとも呼ばれ、2000年以上前の古代中国で生まれた伝統的なテキストレイアウト方法です。この書字体系は上から下、右から左に流れ、深い文化的意義を持つ独特の視覚的外観を作り出します。 歴史的・文化的背景 縦書きシステムは東アジアの文学と文書において重要な役割を果たしてきました: 中国:伝統的な中国語テキスト、古典詩、書道では主に縦書きレイアウトが使用されていました。現代の簡体字中国語は主に横書きを使用していますが、縦書きテキストは芸術的・儀式的な文脈で一般的です。 日本:日本語は縦書き(縦書き/たてがき)と横書き(横書き/よこがき)の両方の書字体系を維持しています。縦書きテキストは小説、漫画、新聞、伝統的な文書で広く使用されています。 韓国:歴史的には縦書き(세로쓰기)を使用していましたが、現代韓国語(한글)は主に横書きレイアウトを使用しています。縦書きテキストは伝統的な文脈や芸術的応用で見られます。 ベトナム:伝統的なベトナム語テキストは漢字(Chữ Hán)で書かれた際に縦書きレイアウトを使用していましたが、この慣行はラテン文字の採用とともにほぼ消失しました。 縦書きテキストの現代的応用 横書きへの世界的な傾向にもかかわらず、縦書きテキストレイアウトはいくつかの文脈で関連性を保っています: 出版:台湾、日本、香港の伝統的な小説、詩集、文学作品…
Отладка проблем порядка страниц 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…