HotPDF Delphi Component: Creación de diseños de texto vertical en documentos PDF.
Esta guía completa demuestra cómo el componente HotPDF permite a los desarrolladores generar texto vertical Unicode en documentos PDF con facilidad.
Comprensión de la tipografía vertical (縦書き/세로쓰기/竖排).
La tipografía vertical, también conocida como escritura vertical., "zongshu" en chino o "tategaki" (縦書き) en japonés, es un método tradicional de disposición de texto que se originó en la antigua China hace más de 2000 años. Este sistema de escritura fluye de arriba a abajo y de derecha a izquierda, creando una apariencia visual distintiva que tiene un profundo significado cultural.
Contexto histórico y cultural.
Los sistemas de escritura vertical han desempeñado un papel crucial en la literatura y la documentación de Asia Oriental:
- China: Los textos en chino tradicional, la poesía clásica y la caligrafía utilizaban principalmente diseños verticales. El chino simplificado moderno utiliza principalmente la escritura horizontal, aunque el texto vertical sigue siendo común en contextos artísticos y ceremoniales.
- Japón.El japonés utiliza tanto el sistema de escritura vertical (縦書き/tategaki) como el horizontal (横書き/yokogaki). El texto vertical todavía se usa ampliamente en novelas, manga, periódicos y documentos tradicionales.
- Corea.Históricamente, se utilizaba la escritura vertical (세로쓰기), pero el coreano moderno (한글) utiliza predominantemente diseños horizontales. El texto vertical aparece en contextos tradicionales y aplicaciones artísticas.
- Vietnam: Los textos vietnamitas tradicionales utilizaban diseños verticales cuando se escribían en caracteres chinos (Chữ Hán), aunque esta práctica ha desaparecido en gran medida con la adopción del alfabeto latino.
Aplicaciones modernas del texto vertical
A pesar de la tendencia global hacia la escritura horizontal, los diseños de texto vertical siguen siendo relevantes en varios contextos:
- Publicación: Novelas, colecciones de poesía y obras literarias tradicionales en Taiwán, Japón y Hong Kong.
- Diseño: Logotipos, señalización y diseños artísticos que requieren un impacto visual.
- Medios digitales.: Libros electrónicos, aplicaciones móviles y contenido web dirigidos a las preferencias de lectura tradicionales.
- Documentación.: Documentos legales, certificados y comunicaciones formales en formatos tradicionales.
Componente HotPDF: Soporte profesional para texto vertical.
El componente HotPDF Delphi proporciona un amplio soporte para la disposición de texto vertical en documentos PDF, lo que lo convierte en una solución ideal para desarrolladores que trabajan con aplicaciones multilingües o formatos de documentos tradicionales.
Características clave para la tipografía vertical.
- ✅ Soporte para Unicode.: Compatibilidad total con los conjuntos de caracteres CJK (chino, japonés, coreano).
- ✅ Incorporación de fuentes.: Asegura una visualización consistente en diferentes sistemas.
- ✅ : Diseños mixtos.: Combina texto horizontal y vertical en el mismo documento.
- ✅ : Posicionamiento preciso.: Control preciso a nivel de píxel sobre la ubicación del texto.
- ✅ : Soporte para múltiples idiomas.: Maneja scripts complejos y combinaciones de caracteres.

Guía de implementación: Ejemplo de código Delphi.
El siguiente ejemplo de código Delphi completo demuestra cómo implementar la renderización de texto vertical utilizando el componente HotPDF. Este ejemplo muestra tanto diseños de texto horizontales como verticales con múltiples idiomas.
Características destacadas del código.
- Configuración de fuentes: Configuración adecuada de fuentes Unicode para soporte de múltiples idiomas.
- Posicionamiento del texto.: Control preciso sobre la ubicación del texto en diseños verticales.
- Combinación de idiomas.: Combinación de diferentes sistemas de escritura (Latín, CJK) en el mismo documento.
- Gestión de recursos.Inicialización y limpieza correctas de los recursos PDF.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
{***********************************************************} // HotPDF PDF Component // Copyright(c)2007-2025, https://www.loslab.com {***********************************************************} { Unit: uVerticalText Purpose: Demonstrates vertical text output capabilities in HotPDF Features: - Horizontal and vertical text rendering - Multi-language support (English, Korean, Japanese, Chinese) - Unicode character handling - Font embedding for proper display } 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; // HotPDF component for PDF generation type // Main form class for the vertical text demonstration TForm1 = class(TForm) Button1: TButton; // Button to trigger PDF generation procedure Button1Click(Sender: TObject); private {Private declarations} public {Public declarations} end; var Form1: TForm1; // Main form instance HotPDF: THotPDF; // HotPDF component instance implementation {$R *.DFM} // Important Note: Old version of Delphi cannot handle Unicode characters correctly. // You need Delphi 2009 or above to open this file. { Method: Button1Click Purpose: Demonstrates vertical and horizontal text output with multiple languages Parameters: Sender - The object that triggered the event Features: - Creates a PDF with both horizontal and vertical text - Shows text in multiple languages (English, Korean, Japanese, Chinese) - Uses Unicode font for proper character display - Demonstrates different text positioning techniques } procedure TForm1.Button1Click(Sender: TObject); begin // Create HotPDF instance HotPDF := THotPDF.Create(nil); try // Configure PDF generation settings HotPDF.AutoLaunch := true; // Automatically open PDF after creation HotPDF.FontEmbedding := true; // Embed fonts for proper display HotPDF.FileName := 'VerticalText.pdf'; // Set output filename // Begin PDF document creation HotPDF.BeginDoc; HotPDF.CurrentPage.Size := psA4; // Set page size to A4 // === HORIZONTAL TEXT DEMONSTRATION === HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, False); // Set horizontal text mode // Output horizontal text in multiple languages HotPDF.CurrentPage.TextOut(80, 70, 0, 'Horizontal Text 가로텍스트 가로쓰기 横向きのテキスト 横書き 横向文本 横書'); // Add decorative separator line HotPDF.CurrentPage.TextOut(40, 110, 0, '※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※'); // === VERTICAL TEXT DEMONSTRATION === HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, true); // Set vertical text mode // Mixed language vertical text (Korean, Japanese) HotPDF.CurrentPage.TextOut(530, 180, 0, '縦書 縦書き 세로쓰기 垂直テキスト 수직 텍스트'); // Chinese text - Declaration of Independence excerpt HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, true); HotPDF.CurrentPage.TextOut(500, 180, 0, '『我等之见解为,下述真理不证自明:凡人生而平等,秉造物者之赐,'); HotPDF.CurrentPage.TextOut(470, 180, 0, '拥诸无可转让之权利,包含生命权、自由权、与追寻幸福之权。』'); // Japanese text - Traditional poetry 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, '嗚呼古城なにをか語り、岸の波なにをか答ふ、過し世を静かに思へ'); // Chinese classical poetry - Li Bai's poem HotPDF.CurrentPage.TextOut(270, 180, 0, '棄我去者昨日之日不可留,亂我心者今日之日多煩憂。'); HotPDF.CurrentPage.TextOut(240, 180, 0, '長風萬里送秋鴈,對此可以酣高樓。蓬萊文章建安骨,中間小謝又清發'); HotPDF.CurrentPage.TextOut(210, 180, 0, '俱懷逸興壯思飛,欲上青天攬明月。抽刀斷水水更流,舉杯消愁愁更愁'); HotPDF.CurrentPage.TextOut(180, 180, 0, '人生在世不稱意。明朝散髮弄扁舟。'); // Korean text - Contemporary poetry // Note: Using Arial Unicode MS instead of Malgun Gothic for compatibility //HotPDF.CurrentPage.SetFont('Malgun Gothic', [], 12, 0, true); // Alternative Korean font HotPDF.CurrentPage.TextOut(140, 180, 0, '눈 맞으며 어둠 속을 떨며 가는 사람들을트、노래가 길이 되어 앞질러 가고'); HotPDF.CurrentPage.TextOut(110, 180, 0, '돌아올 길 없는 눈길 앞질러 가고'); HotPDF.CurrentPage.TextOut(80, 180, 0, '아름다움이 이 세상을 건질 때까지'); HotPDF.CurrentPage.TextOut(50, 180, 0, '절망에서 즐거움이 찾아올 때까지'); // === FOOTER DECORATION === HotPDF.CurrentPage.SetFont('Arial Unicode MS', [], 12, 0, False); // Switch back to horizontal text // Add decorative footer line HotPDF.CurrentPage.TextOut(40, 720, 0, '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'); // Finalize PDF document HotPDF.EndDoc; finally // Clean up resources HotPDF.Free; end; end; end. |
Detalles de implementación técnica.
Selección de fuentes y soporte Unicode.
Al trabajar con texto vertical en archivos PDF, la selección adecuada de la fuente es crucial para garantizar la correcta visualización de los caracteres en diferentes idiomas.
- Arial Unicode MS.Fuente Unicode completa que admite la mayoría de los caracteres CJK.
- Incorporación de fuentes.Siempre habilitar.
FontEmbedding := truepara garantizar una visualización consistente. - Codificación de caracteres.Utilice la codificación UTF-8 para un manejo adecuado de los caracteres Unicode.
Mejores prácticas para el posicionamiento de texto.
El posicionamiento vertical de texto requiere una cuidadosa consideración del flujo de lectura y el espaciado de caracteres:
- Flujo de columna de derecha a izquierda.: Comience desde la posición más a la derecha y muévase hacia la izquierda para las columnas subsiguientes.
- Flujo de caracteres de arriba a abajo.: Los caracteres dentro de cada columna fluyen de arriba a abajo.
- Espaciado consistente.: Mantenga un espaciado uniforme entre las columnas para una apariencia profesional.
- Manejo de scripts mixtos.: Considere diferentes anchos de caracteres al combinar scripts latinos y CJK.
: Características avanzadas y personalización.
: Consejos para la optimización del rendimiento.
- 🚀 : Operaciones de texto por lotes.: Agrupe múltiples resultados de texto para minimizar las operaciones de PDF.
- 🚀 : Almacenamiento en caché de fuentes.: Reutilice objetos de fuente siempre que sea posible para mejorar el rendimiento.
- 🚀 Gestión de memoria.: Deseche correctamente las instancias de HotPDF para evitar fugas de memoria.
- 🚀 Procesamiento de flujos de datos.: Utilice flujos de memoria para documentos grandes para mejorar la velocidad de procesamiento.
Solución de problemas comunes.
⚠️ Problemas comunes y soluciones.
- Caracteres faltantes.: Asegúrese de que la fuente seleccionada admita todos los rangos Unicode requeridos.
- Posicionamiento incorrecto.: Verifique la comprensión del sistema de coordenadas (HotPDF utiliza el origen en la esquina superior izquierda).
- Problemas de renderizado de fuentes.: Habilitar la incrustación de fuentes y utilizar fuentes Unicode adecuadas.
- Problemas de rendimiento.: Optimizar las llamadas de salida de texto y considerar la estructura del documento.
Recursos relacionados y lecturas adicionales.
Documentación y soporte.
- 📚 Página oficial del producto HotPDF Component.
- 📚 Blog de losLab: Tutoriales de desarrollo de PDF.
- 📚 Estándar Unicode: Comprensión de la codificación de caracteres para aplicaciones internacionales
- 📚 Especificación PDF: Referencia de Adobe PDF para personalización avanzada
Temas relacionados
- 🔗 Renderizado de texto en PDF: Técnicas avanzadas de tipografía en documentos PDF
- 🔗 Generación de PDF multilingüesManejo de scripts complejos y lenguajes de derecha a izquierda.
- 🔗 Programación Unicode en Delphi.Mejores prácticas para el manejo de Unicode en aplicaciones Delphi.
- 🔗 Tipografía asiática.Enfoques tradicionales y modernos para la disposición de texto CJK.
Conclusión.
El componente HotPDF Delphi proporciona un sólido soporte para diseños de texto verticales, lo que lo convierte en una excelente opción para desarrolladores que trabajan con tipografía asiática tradicional o aplicaciones de diseño modernas que requieren una orientación de texto vertical. Con la implementación adecuada de fuentes Unicode, un posicionamiento cuidadoso y atención a las convenciones de tipografía cultural, puede crear documentos PDF profesionales que respeten los patrones de lectura tradicionales al tiempo que mantienen los estándares técnicos modernos.
Ya sea que esté desarrollando aplicaciones para publicación, gestión de documentos o diseño creativo, las capacidades de texto vertical de HotPDF le permiten crear documentos PDF culturalmente apropiados y visualmente atractivos que sirven a diversos públicos globales.