//
// 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;
}
}
}