HotPDF Delphi Component: Criação de layouts de texto vertical em documentos PDF.
Este guia abrangente demonstra como o componente HotPDF permite que os desenvolvedores gerem texto vertical Unicode em documentos PDF com facilidade.
Compreendendo a tipografia vertical (縦書き/세로쓰기/竖排).
A tipografia vertical, também conhecida como escrita vertical., "zongshu" em chinês ou "tategaki" (縦書き) em japonês, é um método tradicional de layout de texto que se originou na antiga China há mais de 2.000 anos. Este sistema de escrita flui de cima para baixo e da direita para a esquerda, criando uma aparência visual distinta que possui um profundo significado cultural.
Contexto histórico e cultural.
Os sistemas de escrita vertical desempenharam um papel crucial na literatura e documentação do leste asiático:
- China.Em chinês tradicional, textos, poesia clássica e caligrafia utilizavam predominantemente layouts verticais. O chinês simplificado moderno utiliza principalmente a escrita horizontal, embora o texto vertical ainda seja comum em contextos artísticos e cerimoniais.
- Japão.O japonês utiliza tanto o sistema de escrita vertical (縦書き/tategaki) quanto o horizontal (横書き/yokogaki). O texto vertical ainda é amplamente utilizado em romances, mangás, jornais e documentos tradicionais.
- Coreia.Historicamente, a escrita vertical (세로쓰기) era utilizada, mas o coreano moderno (한글) utiliza predominantemente layouts horizontais. O texto vertical aparece em contextos tradicionais e aplicações artísticas.
- Vietnã.: Os textos vietnamitas tradicionais utilizavam layouts verticais quando escritos em caracteres chineses (Chữ Hán), embora essa prática tenha diminuído significativamente com a adoção do alfabeto latino.
Aplicações modernas de texto vertical.
Apesar da tendência global para a escrita horizontal, os layouts de texto vertical permanecem relevantes em vários contextos:
- Publicação.: Romances, coleções de poesia e obras literárias tradicionais em Taiwan, Japão e Hong Kong.
- Design.: Logotipos, sinalização e layouts artísticos que exigem impacto visual.
- Mídia digital.E-books, aplicativos móveis e conteúdo da web que atendem às preferências de leitura tradicionais.
- Documentação.Documentos legais, certificados e comunicações formais em formatos tradicionais.
Componente HotPDF: Suporte profissional para texto vertical.
O componente HotPDF Delphi oferece suporte abrangente para o layout de texto vertical em documentos PDF, tornando-o uma solução ideal para desenvolvedores que trabalham com aplicativos multilíngues ou formatos de documentos tradicionais.
Principais recursos para tipografia vertical.
- ✅ Suporte a Unicode.Compatibilidade total com conjuntos de caracteres CJK (chinês, japonês, coreano).
- ✅ Incorporação de fontes.Garante uma exibição consistente em diferentes sistemas.
- ✅ Layouts Mistos.Combine texto horizontal e vertical no mesmo documento.
- ✅ Posicionamento Preciso.Controle preciso do posicionamento do texto.
- ✅ Suporte a Múltiplas Línguas.Lida com scripts complexos e combinações de caracteres.

Guia de Implementação: Exemplo de Código Delphi
O seguinte exemplo abrangente de código Delphi demonstra como implementar a renderização de texto vertical usando o componente HotPDF. Este exemplo mostra layouts de texto horizontais e verticais com vários idiomas.
Destaques das Funcionalidades do Código
- Configuração da fonte: Configuração adequada de fontes Unicode para suporte a vários idiomas
- Posicionamento de Texto: Controle preciso sobre o posicionamento do texto em layouts verticais
- Combinação de Idiomas: Combinando diferentes sistemas de escrita (Latim, CJK) no mesmo documento
- Gerenciamento de recursos.Inicialização e limpeza adequadas dos 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. |
Detalhes da implementação técnica.
Seleção de fontes e suporte a Unicode.
Ao trabalhar com texto vertical em PDFs, a seleção adequada da fonte é crucial para garantir a exibição correta dos caracteres em diferentes idiomas.
- Arial Unicode MS.Fonte Unicode abrangente que suporta a maioria dos caracteres CJK.
- Incorporação de fontes.Sempre habilitar.
FontEmbedding := truepara garantir uma exibição consistente. - Codificação de Caracteres.Use a codificação UTF-8 para o tratamento adequado de caracteres Unicode.
Melhores práticas para posicionamento de texto.
O posicionamento vertical de texto requer uma consideração cuidadosa do fluxo de leitura e do espaçamento de caracteres:
- Fluxo de coluna da direita para a esquerda.: Comece na posição mais à direita e mova-se para a esquerda para as colunas subsequentes.
- Fluxo de caracteres de cima para baixo.: Os caracteres dentro de cada coluna fluem de cima para baixo.
- Espaçamento consistente.: Mantenha um espaçamento uniforme entre as colunas para uma aparência profissional.
- Manipulação de scripts mistos.: Considere diferentes larguras de caracteres ao combinar scripts latinos e CJK.
Recursos avançados e personalização.
Dicas de otimização de desempenho.
- 🚀 Operações de texto em lote.: Agrupe várias saídas de texto para minimizar as operações do PDF.
- 🚀 Cache de fontes.: Reutilize objetos de fonte sempre que possível para melhorar o desempenho.
- 🚀 Gerenciamento de memória.: Descarte corretamente as instâncias do HotPDF para evitar vazamentos de memória.
- 🚀 Processamento de fluxo.: Use fluxos de memória para documentos grandes para melhorar a velocidade de processamento.
Solução de problemas comuns.
⚠️ Problemas comuns e soluções.
- Caracteres ausentes.: Certifique-se de que a fonte selecionada suporta todos os intervalos Unicode necessários.
- Posicionamento incorreto.: Verifique a compreensão do sistema de coordenadas (o HotPDF usa a origem no canto superior esquerdo).
- Problemas de renderização de fontes.: Ativar a incorporação de fontes e usar fontes Unicode adequadas.
- Problemas de desempenho.: Otimizar as chamadas de saída de texto e considerar a estrutura do documento.
Recursos relacionados e leituras adicionais.
Documentação e suporte.
- 📚 Página oficial do produto HotPDF Component.
- 📚 Blog losLab – Tutoriais de desenvolvimento PDF.
- 📚 Padrão Unicode: Compreendendo a codificação de caracteres para aplicações internacionais
- 📚 Especificação PDF: Referência Adobe PDF para personalização avançada
Tópicos relacionados
- 🔗 Renderização de texto em PDF: Técnicas avançadas de tipografia em documentos PDF
- 🔗 Geração de PDFs multilíngues: Manipulação de scripts complexos e idiomas da direita para a esquerda.
- 🔗 Programação Unicode em Delphi.: Melhores práticas para o tratamento de Unicode em aplicações Delphi.
- 🔗 Tipografia Asiática.: Abordagens tradicionais e modernas para o layout de texto CJK.
Conclusão.
O componente HotPDF Delphi oferece suporte robusto para layouts de texto verticais, tornando-o uma excelente escolha para desenvolvedores que trabalham com tipografia asiática tradicional ou aplicações de design modernas que exigem orientação vertical do texto. Com a implementação adequada de fontes Unicode, posicionamento cuidadoso e atenção às convenções de tipografia cultural, você pode criar documentos PDF profissionais que respeitam os padrões de leitura tradicionais, mantendo os padrões técnicos modernos.
Seja você um desenvolvedor de aplicações para publicação, gerenciamento de documentos ou design criativo, as capacidades de texto vertical do HotPDF permitem que você crie documentos PDF culturalmente apropriados e visualmente atraentes que atendem a diversos públicos globais.