TateChuYoko.cs
- //
- // This code is part of Document Solutions for Word demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System;
- using System.IO;
- using System.Drawing;
- using System.Collections.Generic;
- using GrapeCity.Documents.Word;
- using GrapeCity.Documents.Drawing;
- using GrapeCity.Documents.Pdf;
- using GrapeCity.Documents.Text;
-
- namespace DsWordWeb.Demos
- {
- // This sample demonstrates how to render short upright Latin text or numbers
- // in a block of vertical text. This is used in Chinese, Japanese and
- // Korean vertical text. In CSS this is referred to using the Japanese
- // name 縦中横 (tate chu yoko). In MS Word, this is referred to as
- // Horizontal In Vertical, and can be set using the Style.Font.EastAsianLayout.HorizontalInVertical
- // property.
- public class TateChuYoko
- {
- public GcWordDocument CreateDocx()
- {
- var doc = new GcWordDocument();
-
- doc.Body.Sections.First.PageSetup.TextFlowDirection = TextFlowDirection.TopToBottomRightToLeft;
-
- // Paragraph style for main caption:
- var sMainCaption = doc.Styles.Add("My Main Caption", StyleType.Paragraph);
- sMainCaption.Font.Name = "MS PGothic";
- sMainCaption.Font.Bold = true;
- sMainCaption.Font.Size = 14;
- sMainCaption.Font.Color.RGB = Color.DarkBlue;
- sMainCaption.ParagraphFormat.KeepWithNext = true;
-
- // Paragraph style for other captions:
- var sCaption = doc.Styles.Add("My Caption", StyleType.Paragraph);
- sCaption.BaseStyle = sMainCaption;
- sCaption.Font.Size = sMainCaption.Font.Size - 1;
-
- // Paragraph style for text:
- var sText = doc.Styles.Add("My Text", StyleType.Paragraph);
- sText.Font.Name = "MS PGothic";
- sText.Font.Size = sCaption.Font.Size - 1;
- sText.ParagraphFormat.KeepTogether = true;
-
- // Char style for 'Tate Chu Oko' text fragments:
- var sTate = doc.Styles.Add("My TateChuOko", StyleType.Character);
- sTate.Font.EastAsianLayout.HorizontalInVertical = true;
-
- var pars = doc.Body.Sections.Last.GetRange().Paragraphs;
-
- var par = pars.Add(sMainCaption);
- var runs = par.GetRange().Runs;
- runs.Add("PDF", sTate);
- runs.Add("ファイルをコードから");
- runs.Add("API", sTate);
- runs.Add("を利用することで操作できます。クロスプラットフォーム環境で動作するアプリケーションの開発を支援する");
- runs.Add("API", sTate);
- runs.Add("ライブラリです。");
-
- // Item 1
- par = pars.Add(sCaption);
- runs = par.GetRange().Runs;
- runs.Add("PDF", sTate);
- runs.Add("用の包括的な");
- runs.Add("API", sTate);
-
- par = pars.Add(sText);
- runs = par.GetRange().Runs;
- runs.Add("PDF", sTate);
- runs.Add("バージョン「");
- runs.Add("1.7", sTate);
- runs.Add("」に準拠した");
- runs.Add("API", sTate);
- runs.Add("を提供し、レイアウトや機能を損なうことなく、豊富な機能を備えた");
- runs.Add("PDF", sTate);
- runs.Add("文書を生成、編集、保存できます。");
-
- // Item 2
- par = pars.Add(sCaption);
- runs = par.GetRange().Runs;
- runs.Add("完全なテキスト描画");
-
- par = pars.Add(sText);
- runs = par.GetRange().Runs;
- runs.Add("PDF", sTate);
- runs.Add("文書にテキストの描画情報が保持されます。テキストと段落の書式、特殊文字、複数の言語、縦書き、テキスト角度などが保持さるので、完全な形でテキスト描画を再現できます。");
-
- // Item 3
- par = pars.Add(sCaption);
- runs = par.GetRange().Runs;
- runs.Add(".NET Standard 2.0 準拠");
-
- par = pars.Add(sText);
- runs = par.GetRange().Runs;
- runs.Add(".NET Core、.NET Framework、Xamarinで動作するアプリケーションを開発できます。Windows、macOS、Linuxなどクロスプラットフォーム環境で動作可能です。");
-
- // Item 4
- par = pars.Add(sCaption);
- runs = par.GetRange().Runs;
- runs.Add("100", sTate);
- runs.Add("を超える");
- runs.Add("PDF", sTate);
- runs.Add("操作機能");
-
- par = pars.Add(sText);
- runs = par.GetRange().Runs;
- runs.Add("ページの追加や削除、ページサイズ、向きの変更だけでなく、ファイルの圧縮、");
- runs.Add("Web", sTate);
- runs.Add("に最適化した");
- runs.Add("PDF", sTate);
- runs.Add("の生成など高度な機能も");
- runs.Add("API", sTate);
- runs.Add("操作で実現します。また、署名からセキュリティ機能まで様々な機能を含んだ");
- runs.Add("PDF", sTate);
- runs.Add("フォームを生成可能です。");
-
- // Item 5
- par = pars.Add(sCaption);
- runs = par.GetRange().Runs;
- runs.Add("高速、軽量アーキテクチャ");
-
- par = pars.Add(sText);
- runs = par.GetRange().Runs;
- runs.Add("軽量");
- runs.Add("API", sTate);
- runs.Add("アーキテクチャでメモリと時間を節約できます。");
- runs.Add("また、他の生成用ツールに依存せずドキュメントを生成可能です。");
-
- // 6
- par = pars.Add(sCaption);
- runs = par.GetRange().Runs;
- runs.Add("クラウドアプリケーション展開");
-
- par = pars.Add(sText);
- runs = par.GetRange().Runs;
- runs.Add("Azure、AWSなどのサービスに配置するクラウドアプリケーションの開発で利用可能です。仮想マシン、コンテナ、サーバーレスなどの方法で配置できます。");
-
- // Done:
- return doc;
- }
- }
- }
-