(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-18
(54)【発明の名称】テキストの組版
(51)【国際特許分類】
G06F 40/109 20200101AFI20240910BHJP
G06F 40/106 20200101ALI20240910BHJP
G09G 5/24 20060101ALI20240910BHJP
G09G 5/00 20060101ALI20240910BHJP
G09G 5/26 20060101ALI20240910BHJP
G09G 5/22 20060101ALI20240910BHJP
G09G 5/32 20060101ALI20240910BHJP
G09G 5/30 20060101ALI20240910BHJP
【FI】
G06F40/109
G06F40/106
G09G5/24 690
G09G5/00 555D
G09G5/24 670
G09G5/26 D
G09G5/26 E
G09G5/22 660A
G09G5/32 630
G09G5/30 610C
G09G5/00 550C
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024513144
(86)(22)【出願日】2021-12-28
(85)【翻訳文提出日】2024-02-26
(86)【国際出願番号】 CN2021142042
(87)【国際公開番号】W WO2023024376
(87)【国際公開日】2023-03-02
(31)【優先権主張番号】202110988381.9
(32)【優先日】2021-08-26
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】516184942
【氏名又は名称】北京金山▲辧▼公▲軟▼件股▲ふん▼有限公司
【氏名又は名称原語表記】Beijing Kingsoft Office Software,Inc.
(71)【出願人】
【識別番号】519342725
【氏名又は名称】珠海金山▲辧▼公▲軟▼件有限公司
【氏名又は名称原語表記】ZHUHAI KINGSOFT OFFICE SOFTWARE CO., LTD
(74)【代理人】
【識別番号】100230086
【氏名又は名称】譚 粟元
(72)【発明者】
【氏名】曹 宗華
(72)【発明者】
【氏名】劉 歓
(72)【発明者】
【氏名】羅 嘉鋭
【テーマコード(参考)】
5B109
5C182
【Fターム(参考)】
5B109RA05
5B109RA11
5B109RA14
5B109VC03
5C182AB02
5C182AB08
5C182AC02
5C182BA03
5C182BA04
5C182BA06
5C182BA68
5C182BC01
5C182BC11
5C182BC14
5C182BC22
5C182BC25
5C182BC26
5C182CB13
5C182CB14
5C182CB16
5C182CB23
5C182CC24
5C182DA12
5C182DA13
5C182DA52
5C182FA03
5C182FA05
5C182FA08
5C182FA15
5C182FA17
5C182FA32
5C182FA34
5C182FA36
5C182FA37
5C182FA42
5C182FA61
5C182FA64
5C182FA73
5C182FA75
5C182FA78
(57)【要約】
本発明は、テキストを組版するための方法、装置、電子デバイス、サーバ及びコンピュータ可読記憶媒体に関し、コンピュータ技術分野に関する。当該方法の一例によれば、当該方法が端末デバイスに実行されるローカルアプリケーションに応用される場合、目標テキストに使用されるオリジナルフォントを決定するステップと、ローカルアプリケーションがオリジナルフォントをサポートするか否かを決定するステップと、ローカルアプリケーションがオリジナルフォントをサポートしない場合、オリジナルフォントの文字測定データを取得するステップと、ローカルアプリケーションがサポートする第1のフォントで目標テキストを表示するステップと、オリジナルフォントの文字測定データに基づいて、表示された目標テキストを組版するステップと、を含み得る。
【選択図】
図2
【特許請求の範囲】
【請求項1】
端末デバイスに実行されるローカルアプリケーションに応用されるテキストの組版方法であって、
目標テキストに使用されるオリジナルフォントを決定するステップと、
ローカルアプリケーションが前記オリジナルフォントをサポートするか否かを決定するステップと、
前記ローカルアプリケーションが前記オリジナルフォントをサポートしない場合、前記オリジナルフォントの文字測定データを取得するステップと、
前記ローカルアプリケーションがサポートする第1のフォントで前記目標テキストを表示するステップと、
前記オリジナルフォントの文字測定データに基づいて、表示された前記目標テキストを組版するステップと、を含む、
ことを特徴とするテキストの組版方法。
【請求項2】
前記オリジナルフォントの文字測定データを取得するステップは、
前記端末デバイスのローカルキャッシュにおいて、前記オリジナルフォントの文字測定データを検索するステップと、
前記端末デバイスのローカルキャッシュにおいて、前記オリジナルフォントの文字測定データが見つからなかった場合、サーバーから前記オリジナルフォントの文字測定データを取得するステップと、のいずれかを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記ローカルアプリケーションがサポートする第1のフォントで前記目標テキストを表示するステップは、
前記ローカルアプリケーションがサポートする全てのフォントから、前記オリジナルフォントにマッチングする第1のフォントを選択するステップと、
選択された前記第1のフォントで前記目標テキストを表示するステップと、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記ローカルアプリケーションがサポートする全てのフォントから、前記オリジナルフォントにマッチングする第1のフォントを選択するステップは、
前記オリジナルフォントの置換フォントリストを取得するステップと、
前記置換フォントリストの置換フォントから候補フォントを決定するステップであって、前記候補フォントは前記ローカルアプリケーションがサポートするフォントである、ステップと、
前記候補フォントのうち前記オリジナルフォントとのマッチ度が最も高いフォントを前記第1のフォントとして決定するステップと、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記ローカルアプリケーションがサポートする第1のフォントで前記目標テキストを表示するステップは、
前記目標テキストの文字タイプを決定するステップと、
前記目標テキストの文字タイプに関連する所定のルールに従って、前記ローカルアプリケーションがサポートする全てのフォントから、前記オリジナルフォントにマッチングする第1のフォントを選択するステップと、
選択された前記第1のフォントで前記目標テキストを表示するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項6】
前記オリジナルフォントの文字測定データは、前記オリジナルフォントの文字幅及び前記オリジナルフォントの文字高さを含み、前記ローカルアプリケーションがサポートする全てのフォントから、前記オリジナルフォントにマッチングする第1のフォントを選択するステップは、
候補フォントの文字測定データを取得するステップであって、前記候補フォントは前記ローカルアプリケーションがサポートするフォントである、ステップと、
前記目標テキストの組版方向を決定するステップと、
前記目標テキストの組版方向が横向き組版である場合、文字幅が前記オリジナルフォントの文字幅に最も近い候補フォントを前記第1のフォントとして決定するステップと、
前記目標テキストの組版方向が縦向き組版である場合、文字高さが前記オリジナルフォントの文字高さに最も近い候補フォントを前記第1のフォントとして決定するステップと、を含む、
ことを特徴とする請求項3又は5に記載の方法。
【請求項7】
前記オリジナルフォントの文字測定データは、前記オリジナルフォントの文字幅及び前記オリジナルフォントの文字高さを含み、前記ローカルアプリケーションがサポートする全てのフォントから、前記オリジナルフォントにマッチングする第1のフォントを選択するステップは、
前記オリジナルフォントのフォント属性及び候補フォントのフォント属性を取得するステップであって、前記候補フォントは前記ローカルアプリケーションがサポートするフォントである、ステップと、
フォント属性が前記オリジナルフォントのフォント属性と同じである候補フォントを目標フォントとして決定するステップと、
前記目標フォントの文字測定データを取得するステップと、
前記目標テキストの組版方向を決定するステップと、
前記目標テキストの組版方向が横向き組版である場合、文字幅が前記オリジナルフォントの文字幅に最も近い目標フォントを前記第1のフォントとして決定するステップと、
前記目標テキストの組版方向が縦向き組版である場合、文字高さが前記オリジナルフォントの文字高さに最も近い目標フォントを前記第1のフォントとして決定するステップと、を含む、
ことを特徴とする請求項3又は5に記載の方法。
【請求項8】
前記目標テキストの文字タイプがアルファベットタイプ又は多言語混合タイプである場合、前記目標テキストの文字タイプに関連する所定のルールに従って、前記ローカルアプリケーションがサポートする全てのフォントから、前記オリジナルフォントにマッチングする第1のフォントを選択するステップは、
サーバが前記オリジナルフォントのフォント属性及び前記オリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから前記第1のフォントを決定するように、候補フォントのフォント識別子をサーバに送信して、前記サーバから前記第1のフォントのフォント識別子を受信するステップ、又は、
サーバから、前記オリジナルフォントのフォント属性及び前記オリジナルフォントにおける所定の文字列の幅を取得し、前記オリジナルフォントのフォント属性及び前記オリジナルフォントにおける所定の文字列の幅に基づいて、前記候補フォントから前記第1のフォントを決定するステップを含み、
前記候補フォントは前記ローカルアプリケーションがサポートするフォントであり、前記所定の文字列には、複数の異なる所定の文字が含まれる、
ことを特徴とする請求項5に記載の方法。
【請求項9】
前記候補フォントは、前記ローカルアプリケーションがサポートするデフォルトフォント及び非デフォルトフォントを含み、前記オリジナルフォントのフォント属性及び前記オリジナルフォントにおける所定の文字列の幅に基づいて、前記候補フォントから前記第1のフォントを決定するステップは、
前記デフォルトフォントと前記オリジナルフォントとのフォント属性が同じであり、かつ前記デフォルトフォントにおける所定の文字列の幅と前記オリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たす場合、前記デフォルトフォントを前記第1のフォントとして決定するステップと、
それ以外の場合、フォント属性が前記オリジナルフォントのフォント属性と同じである候補フォントを目標フォントとし、前記目標フォントから前記第1のフォントを決定するステップと、を含む、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記デフォルトフォントにおける所定の文字列の幅と前記オリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすか否かの決定は、
前記デフォルトフォントにおける所定の文字列の幅と前記オリジナルフォントにおける所定の文字列の幅との差を第4の差として決定するステップと、
前記第4の差の絶対値と前記オリジナルフォントにおける所定の文字列の幅との比を第1の比として決定するステップと、
前記第1の比が所定の第1の閾値以下である場合、前記デフォルトフォントにおける所定の文字列の幅と前記オリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすと決定するステップと、を含む、
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記目標フォントから前記第1のフォントを決定するステップは、
所定の文字列の幅が前記オリジナルフォントにおける所定の文字列の幅に最も近い前記目標フォントを前記第1のフォントとして決定するステップ、又は、
所定の文字列の幅が最も小さい目標フォントを前記第1のフォントとして決定するステップを含む、
ことを特徴とする請求項9に記載の方法。
【請求項12】
前記オリジナルフォントの文字測定データは、前記オリジナルフォントの文字幅及び前記オリジナルフォントの文字高さを含み、前記オリジナルフォントの文字測定データに基づいて、表示された前記目標テキストを組版するステップは、
前記目標テキストの組版方向を決定するステップと、
前記目標テキストの組版方向が横向き組版である場合、
第1の差を決定するステップであって、前記第1の差は、目標テキストの文字の、前記オリジナルフォントにおける文字幅と前記第1のフォントにおける文字幅との差である、ステップと、
前記第1の差が正の値である場合、前記第1のフォントで表示された前記目標テキストの文字の横座標値を調整するステップと、
前記第1の差が負の値である場合、前記第1のフォントで表示された前記目標テキストの文字を縮小処理するステップと、
前記目標テキストの組版方向が縦向き組版である場合、
第2の差を決定するステップであって、前記第2の差は、目標テキストの文字の、前記オリジナルフォントにおける文字高さと前記第1のフォントにおける文字高さとの差である、ステップと、
前記第2の差が正の値である場合、前記第1のフォントで表示された前記目標テキストの文字の縦座標値を調整するステップと、
前記第2の差が負の値である場合、前記第1のフォントで表示された前記目標テキストの文字を縮小処理するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項13】
前記オリジナルフォントの文字測定データは、前記オリジナルフォントの文字幅を含み、前記オリジナルフォントの文字測定データに基づいて、前記目標テキストを組版するステップは、
前記目標テキストを単語に分割するステップと、
前記単語における各文字の、前記第1のフォントにおける幅と前記オリジナルフォントにおける幅との差を累積し、調整量を得るステップと、
前記調整量と前記単語における文字隙間数との比を第2の比として算出するステップと、
前記第2の比に基づいて、前記単語における文字の隙間が同じになるように、前記単語における文字の隙間を調整するステップと、を含む、
ことを特徴とする請求項1又は12に記載の方法。
【請求項14】
サーバに応用されるテキストの組版方法であって、
端末デバイスによって送信された目標テキストのオリジナルフォントのフォント識別子を受信するステップと、
前記オリジナルフォントのフォント識別子に基づいて、前記オリジナルフォントの文字測定データを検索するステップと、
前記端末デバイスが前記オリジナルフォントの文字測定データに基づいて、前記端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された前記目標テキストを組版するように、前記オリジナルフォントの文字測定データを前記端末デバイスに送信するステップと、を含む、
ことを特徴とするテキストの組版方法。
【請求項15】
テキストの組版装置であって、
目標テキストに使用されるオリジナルフォントを決定するための第1の決定モジュールと、
ローカルアプリケーションが前記オリジナルフォントをサポートするか否かを決定するための第2の決定モジュールと、
前記ローカルアプリケーションが前記オリジナルフォントをサポートしない場合、前記オリジナルフォントの文字測定データを取得するための取得モジュールと、
前記オリジナルフォントの文字測定データに基づいて、端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された前記目標テキストを組版するための組版モジュールと、を含む、
ことを特徴とするテキストの組版装置。
【請求項16】
テキストの組版装置であって、
端末デバイスによって送信された目標テキストのオリジナルフォントのフォント識別子を受信するための受信モジュールと、
前記オリジナルフォントのフォント識別子に基づいて、前記オリジナルフォントの文字測定データを検索するための検索モジュールと、
前記端末デバイスが前記オリジナルフォントの文字測定データに基づいて、前記端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された前記目標テキストを組版するように、前記オリジナルフォントの文字測定データを前記端末デバイスに送信するための送信モジュールと、を含む、
ことを特徴とするテキストの組版装置。
【請求項17】
メモリとプロセッサとを含む電子デバイスであって、前記メモリは、コンピュータプログラムを記憶するために用いられ、前記プロセッサは、前記コンピュータプログラムを実行して、請求項1~13のいずれか一項に記載の方法を実施するために用いられる、
ことを特徴とする電子デバイス。
【請求項18】
メモリとプロセッサとを含むサーバであって、前記メモリは、コンピュータプログラムを記憶するために用いられ、前記プロセッサは、前記コンピュータプログラムを実行して、請求項14に記載の方法を実施するために用いられる、
ことを特徴とするサーバ。
【請求項19】
コンピュータプログラムを記憶しているコンピュータ可読記憶媒体であって、前記コンピュータプログラムがプロセッサによって実行されると、請求項1~14のいずれか一項に記載の方法が実施される、
ことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ技術分野に関し、より具体的には、テキストを組版するための方法、装置、電子デバイス及び記憶媒体に関する。
【背景技術】
【0002】
端末デバイスがローカルアプリケーションを使用してドキュメントを開く場合、ドキュメントのオリジナルフォントが欠落している場合、当該ドキュメントがオリジナルの組版と大きく異なる組版で表示され、ドキュメントの美観と閲覧体験に影響を与える可能性がある。現在の一般的な方法は、現在の環境に欠落しているフォントをインストールすることである。しかしながら、このような方法は、フォントを検索、ダウンロード、インストールする必要があり、フォントも別途料金がかかる場合があるため、大面積の普及と応用が困難である。したがって、新しいテキストの組版方法を提案する必要がある。
【発明の概要】
【0003】
本発明の実施例の1つの目的は、フォントが欠落している場合、ドキュメント組版とオリジナル組版との一致性を維持するための、テキスト組版の新たな技術案を提供することである。
【0004】
本発明の第1の態様によれば、テキストの組版方法が提供される。前記方法は、目標テキストに使用されるオリジナルフォントを決定するステップと、ローカルアプリケーションが前記オリジナルフォントをサポートするか否かを決定するステップと、前記ローカルアプリケーションが前記オリジナルフォントをサポートしない場合、前記オリジナルフォントの文字測定データを取得するステップと、前記ローカルアプリケーションがサポートする第1のフォントで前記目標テキストを表示するステップと、前記オリジナルフォントの文字測定データに基づいて、表示された前記目標テキストを組版するステップと、を含む。
【0005】
本発明の第2の態様によれば、テキストの組版方法が提供される。前記方法は、端末デバイスによって送信された目標テキストのオリジナルフォントのフォント識別子を受信するステップと、前記オリジナルフォントのフォント識別子に基づいて、前記オリジナルフォントの文字測定データを検索するステップと、前記端末デバイスが前記オリジナルフォントの文字測定データに基づいて、前記端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された前記目標テキストを組版するように、前記オリジナルフォントの文字測定データを前記端末デバイスに送信するステップと、を含む。
【0006】
本発明の第3の態様によれば、テキストの組版装置が提供される。前記装置は、目標テキストに使用されるオリジナルフォントを決定するための第1の決定モジュールと、ローカルアプリケーションが前記オリジナルフォントをサポートするか否かを決定するための第2の決定モジュールと、前記ローカルアプリケーションが前記オリジナルフォントをサポートしない場合、前記オリジナルフォントの文字測定データを取得するための取得モジュールと、前記オリジナルフォントの文字測定データに基づいて、端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された前記目標テキストを組版するための組版モジュールと、を含む。
【0007】
本発明の第4の態様によれば、テキストの組版装置が提供される。前記装置は、端末デバイスによって送信された目標テキストのオリジナルフォントのフォント識別子を受信するための受信モジュールと、前記オリジナルフォントのフォント識別子に基づいて、前記オリジナルフォントの文字測定データを検索するための検索モジュールと、前記端末デバイスがそのローカルアプリケーションがサポートする第1のフォントで前記目標テキストを表示し、前記オリジナルフォントの文字測定データに基づいて前記目標テキストを組版するように、前記オリジナルフォントの文字測定データを前記端末デバイスに送信するための送信モジュールと、を含む。
【0008】
本発明の第5の態様によれば、メモリとプロセッサとを含む電子デバイスが提供される。メモリは、コンピュータプログラムを記憶するために用いられ、プロセッサは、コンピュータプログラムを実行して、本発明の第1の態様又は第2の態様による方法を実施するために用いられる。
【0009】
本発明の第6の態様によれば、コンピュータプログラムを記憶しているコンピュータ可読記憶媒体が提供される。コンピュータプログラムは、プロセッサによって実行されると、本発明の第1の態様による方法又は本発明の第2の態様による方法が実施される。
【0010】
本発明の実施例の1つの有益な効果は、ローカルアプリケーションが目標ドキュメントのオリジナルフォントをサポートしない場合、ローカルアプリケーションがそれがサポートする第1のフォントを使用して目標テキストを表示し、オリジナルフォントに対応する文字測定データに基づいて目標テキストを組版することにより、ローカルアプリケーションにオリジナルフォントが欠落している場合にもドキュメント組版とオリジナル組版との一致性を維持することができる。
【0011】
本発明の実施例の他の特徴及びその利点は、添付図面を参照した本発明の例示的な実施例の以下の詳細な説明によって明らかになる。
【図面の簡単な説明】
【0012】
明細書に組み込まれ、明細書の一部を構成する添付図面は、本発明の実施例を示し、その説明とともに本発明の実施例の原理を説明するために用いられる。
【
図1】本発明の実施例によるドキュメント処理システムの模式図である。
【
図2】本発明の実施例によるテキストの組版方法のフローチャートである。
【
図3】本発明の実施例による文字測定データの模式図である。
【
図4】本発明の実施例によるテキストの組版方法の例示図である。
【
図5】本発明の実施例によるテキストの組版方法のフローチャートである。
【
図6】本発明の実施例による電子デバイスのハードウェア構造の模式図である。
【
図7】本発明の実施例によるサーバのハードウェア構造の模式図である。
【発明を実施するための形態】
【0013】
以下、本発明の様々な例示的な実施例について図面を参照して詳細に説明する。なお、以下の実施例において説明される構成要素やステップの相対的な配置、数式の表現、及び値は、特に断りのない限り、本発明の範囲を限定するものではない。
【0014】
以下、少なくとも1つの例示的な実施例の説明は、実際には例示的なものに過ぎず、本発明及びその応用又は使用を限定するものとしてはならない。
【0015】
当業者に知られている技術、方法及び装置について、詳細な説明をしない可能性があるが、適切な場合、前記技術、方法及び装置は、本明細書の一部と見なされるべきである。
【0016】
ここで示され、説明される全ての例において、いかなる特定の値も、単に例示的なものとして解釈されるべきであり、限定的なものとして解釈されるべきではない。従って、例示的な実施例の他の例では、異なる値であり得る。
【0017】
なお、以下の添付図面において、類似の符号及びアルファベットは類似の項目を示すため、ある項目が一つの図面において一度定義されれば、以降の図面においてはそれ以上の説明は不要である。
<テキストの組版方法>
【0018】
図1は本発明の実施例によるドキュメント処理システムのブロック図である。
図1に示すように、当該ドキュメント処理システムは、サーバ101と端末デバイス103とを含み、サーバ101と端末デバイス103との間は、ネットワーク102を介して通信することができる。
【0019】
サーバ101の構成は、プロセッサ1011、メモリ1012、インタフェース装置1013、通信装置1014、入力装置1015、及び出力装置1016を含み得るが、これらに限定されない。プロセッサ1011は、中央処理装置CPU、マイクロプロセッサMCU等を含み得るが、これらに限定されない。メモリ1012は、ROM(読み出し専用メモリ)、RAM(ランダムアクセスメモリ)、ハードディスクのような不揮発性メモリ等を含み得るが、これらに限定されない。インターフェース装置1013は、USBインターフェース、シリアルインターフェース、パラレルインターフェース等を含み得るが、これらに限定されない。通信装置1014は、例えば、有線通信又は無線通信を行うことができ、具体的には、WiFi通信、ブルートゥース(登録商標)通信、2G/3G/4G/5G通信等を含み得る。入力装置1015は、キーボード、マウス、タッチスクリーン、マイクロフォン等を含むが、これらに限定されない。出力装置1016は、ディスプレイスクリーン、スピーカ等を含むが、これらに限定されない。サーバ101の構成は、上記装置における一部の装置のみを含むこともできる。
【0020】
端末デバイス103は、例えば、スマートオペレーティングシステム(例えば、Android、IOS、Windows、Linux(登録商標)等)がインストールされた電子デバイスであってもよく、ポータブルコンピュータ、デスクトップコンピュータ、携帯電話、タブレットコンピュータ等を含むが、これらに限定されない。端末デバイス103の構成は、プロセッサ1031、メモリ1032、インタフェース装置1033、通信装置1034、GPU(Graphics Processing Unit、画像処理ユニット)1035、表示装置1036、入力装置1037、スピーカ1038、マイクロフォン1039、及びカメラ1030を含むが、これらに限定されない。プロセッサ1031は、中央処理装置CPU、マイクロプロセッサMCU等を含むが、これらに限定されない。メモリ1032は、ROM(読み出し専用メモリ)、RAM(ランダムアクセスメモリ)、ハードディスクのような不揮発性メモリ等を含むが、これらに限定されない。インターフェース装置1033は、USBインターフェース、シリアルインターフェース、パラレルインターフェース等を含むが、これらに限定されない。通信装置1034は、例えば、有線通信又は無線通信を行うことができ、具体的には、WiFi通信、ブルートゥース通信、2G/3G/4G/5G通信等を含み得る。GPU1035は、画像を処理するために用いられる。表示装置1036は、液晶スクリーン、タッチスクリーン等を含むが、これらに限定されない。入力装置1037は、キーボード、マウス、タッチスクリーン等を含むが、これらに限定されない。端末デバイス103の構成は、上記装置における一部の装置のみを含むこともできる。
【0021】
本発明の一実施例において、ユーザは端末デバイス103を介して目標テキストを開き、目標テキストを組版、編集することができる。当該ローカルアプリケーションは、例えばドキュメント編集ソフト、インスタントメッセージソフトウェア、オフィスソフト、ブラウザ等である。一例において、ユーザは、ローカルアプリケーションに予めアカウントを登録し、ユーザがアカウントにログインした後、本発明の実施例による組版方法を使用することができる。
【0022】
一例において、当該ローカルアプリケーションは、端末デバイスにおいて実行可能なアプリケーションであり、例えばネイティブアプリケーション、Webアプリケーション、ハイブリッドアプリケーション、ライトアプリケーション等であってもよい。ネイティブアプリケーションとは、現在のオペレーティングシステムに直接実行できるアプリケーションである。Webアプリケーションとは、ブラウザ上で実行する必要のあるウェブアプリケーションである。ハイブリッドアプリケーションはネイティブアプリケーションとWebアプリケーションとの組み合わせであってもよく、通常はブラウザを内蔵しているネイティブアプリケーションである。ライトアプリケーションは、ダウンロードを必要とせずに使用可能なアプリケーションであり、ユーザは検索して直接使用するか、QRコード(登録商標)をスキャンして直接使用することができる。
【0023】
図1に示すドキュメント処理システムは例示的なものに過ぎず、本発明書の実施例、その応用又は使用を限定するものではない。先にサーバ及び端末デバイスの複数の装置を説明したが、本発明の実施例はその中の一部の装置のみに関連してもよいことは当業者であれば理解できる。例えば、サーバは、プロセッサ、メモリ及び通信装置のみに関連してもよく、端末デバイスは、プロセッサ、メモリ、通信装置、入力装置、ディスプレイスクリーンのみに関連してもよい。当業者は、本発明の実施例において開示された方法に従って命令を設計することができる。命令がどのようにプロセッサを制御して動作を実行させるかは、当該技術分野における周知技術であるため、ここでは詳細な説明を省略する。
【0024】
図2に示すように、本発明の実施例は、テキストの組版方法を提供する。当該方法は、ステップS102~S108を含む。ステップS102~S108は、端末デバイスによって実施され得る。
【0025】
ステップS102、目標テキストに使用されるオリジナルフォントを決定する。
【0026】
本発明の実施例において、目標テキストは、ドキュメント中の任意の一部のテキストであってもよい。一例において、端末デバイスは、ドキュメントから目標テキストのオリジナルフォント情報を取得して、目標テキストに使用されるオリジナルフォントを決定する。一般的に、当該オリジナルフォント情報は、ドキュメントのドキュメントデータに記憶されていてもよい。
【0027】
本発明の実施例において、フォントは、端末デバイスのオペレーティングシステムにロードされたフォント、端末デバイスのクライアント(例えばブラウザ又はアプリケーション等)にロードされたフォント又はサーバに記憶されているフォントを含み得、ドキュメントファイルに搭載されたフォントであってもよい。ここで、ドキュメントファイルには、フォントを搭載してもよいが、フォントが搭載されたドキュメントファイルは、通常、比較的大きいデータ量を有する。また、端末デバイスのオペレーティングシステムにロードされたフォント、端末デバイスのクライアントにロードされたフォント及びドキュメントファイルに搭載されたフォントは、いずれも端末デバイスのローカルアプリケーションがサポートするフォントに属し、ローカルフォントと総称することができる。サーバに記憶されているフォントは、サーバフォント又はクラウドフォントと呼ぶことができる。
【0028】
ステップS104、ローカルアプリケーションがオリジナルフォントをサポートするか否かを決定する。
【0029】
目標テキストに使用されるオリジナルフォントが決定された後、ローカルアプリケーションがサポートする全てのフォントに当該オリジナルフォントが含まれているか否かをチェックし、含まれていない場合、ローカルアプリケーションが当該オリジナルフォントをサポートしないと決定する。
【0030】
ローカルアプリケーションがサポートするフォントは、インストールされたフォントパケットに基づいて決定されてもよい。一例において、ローカルアプリケーションがあるフォントのフォントパケットをインストールした場合、ローカルアプリケーションが当該フォントをサポートすることを意味する。一般的に、ローカルアプリケーションのベースパケットには、多くの広く使用されているフォントパケットが予めインストールされており、そのうちの1つのフォントをデフォルトフォントに設定することができ、もしユーザーがニッチなフォントを使いたい場合、対応するフォントパケットを別途ダウンロードする必要がある。例えば、端末デバイスのオペレーティングシステム又はローカルアプリケーションに当該オリジナルフォントがロードされている場合、又は目標テキストに当該オリジナルフォントが記憶されている場合、ローカルアプリケーションが当該オリジナルフォントをサポートし、それ以外の場合、ローカルアプリケーションが当該オリジナルフォントをサポートしないと考えられる。
【0031】
ステップS106、ローカルアプリケーションがオリジナルフォントをサポートしない場合、オリジナルフォントの文字測定データを取得する。
【0032】
本発明の実施例における文字は、文字及び記号を含み、記号は句読点、数学記号、特殊記号等を含むが、これらに限定されず、文字は漢字、アルファベット等を含むが、これらに限定されない。
【0033】
本発明の実施例において、フォントの文字測定データは、文字の高さ及び幅を含む。オリジナルフォントの文字測定データは、オリジナルフォントの文字幅及びオリジナルフォントの文字高さを含み、目標テキストにおける文字のオリジナルフォント状態における幅及び高さである。同一のフォントについて、同一のフォントサイズにおいて、異なる文字のサイズは同じ又は異なるように設計され得る。同一のフォントについて、同一のフォントサイズにおいて、その全ての文字が同一のサイズを採用しない場合、当該フォントサイズにおける文字と文字の幅、高さとのマッピング関係を確立する。このように、当該マッピング関係を対応するフォントの文字測定データとし、当該マッピング関係に基づいて各文字の対応するフォントにおける幅及び高さを照会することができる。
【0034】
一例において、文字測定データは、文字の上昇値をさらに含む。
【0035】
図3(a)及び
図3(b)に示すように、同一の漢字「早」について、2種類の異なるフォントは、同一のフォントサイズにおいて、幅及び高さがいずれも異なり、上昇値も異なる。
図3(b)に示すフォントの幅及び高さは、いずれも
図3(a)のフォントより小さい。
図3(a)に示すフォントの上昇値は0、即ちベースラインに対して高くなったり低くなったりしない。
図3(b)に示すフォントの上昇値は正の値であり、当該フォントはベースラインに対して高くなっている。フォントの上昇値が負の値であれば、当該フォントがベースラインに対して低くなっていることを示す。
【0036】
一例において、文字測定データは、文字の位置及び/又はサイズを表すための他の特徴をさらに含み得、ここでは限定しない。
【0037】
一例において、フォントの文字測定データを、文字(例えば、具体的には文字の画像モデル)を測定することで得てもよい。例えば、予めあるフォントで目標テキストを表示し、目標テキストの当該フォントにおける文字測定データを測定して当該フォントの文字測定データを得る。
【0038】
一例において、サーバには、各フォントの各フォントサイズにおける文字測定データが予め記憶されていてもよい。
【0039】
一例において、端末デバイスがオリジナルフォントの文字測定データを取得することは、端末デバイスのローカルキャッシュにおいて、オリジナルフォントに対応する文字測定データを検索することであってもよい。
【0040】
一例において、端末デバイスがオリジナルフォントの文字測定データを取得することは、まず端末デバイスのローカルキャッシュにおいて、オリジナルフォントの文字測定データを検索し、ローカルキャッシュにおいて、オリジナルフォントの文字測定データが見つからなかった場合、サーバからオリジナルフォントの文字測定データを取得することであってもよい。当該例において、端末デバイスは、サーバからオリジナルフォントの文字測定データを取得した後、それをローカルキャッシュに記憶してもよく、これにより、次回に当該フォントを使用する必要がある場合、ローカルキャッシュから当該フォントの文字測定データを直接読み取ることができる。
【0041】
ステップS108、ローカルアプリケーションがサポートする第1のフォントで目標テキストを表示し、オリジナルフォントの文字測定データに基づいて目標テキストを組版する。
【0042】
一例において、端末デバイスは、目標テキストの元のフォントサイズに従って第1のフォントで目標テキストを表示し、オリジナルフォントの文字測定データに基づいて、第1のフォントで表示された目標テキストを組版する。
【0043】
ローカルアプリケーションがサポートする第1のフォントで目標テキストを表示する前に、当該方法は、第1のフォントを決定するステップをさらに含み得る。本発明の実施例において、端末デバイスは、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択する。以下、例を挙げて説明する。
【0044】
第1のフォントを決定する例1:ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、ステップS202~S206を含み得る。
【0045】
ステップS202、オリジナルフォントの置換フォントリストを取得する。
【0046】
一例において、いずれかのフォントについて、他のフォントと当該フォントとのマッチ度を予め検出し、マッチ度がマッチ度閾値に達したフォントを当該フォントの置換フォントとして選択する。本発明の実施例において、2種類のフォントの文字測定データに基づいて、2種類のフォント間のマッチ度を決定することができる。いずれかのフォントについて、その置換フォントに基づいて置換フォントリストを確立し、置換フォントリストにおける置換フォントは、マッチ度の高い順にソートされてもよい。端末デバイスは、サーバから各フォントの置換フォントリストを取得してもよい。
【0047】
以下、フォントAを例として、フォントBとフォントAとのマッチ度をどのように決定するかを説明する。
【0048】
フォントAの文字Cの幅と、フォントBの文字Cの幅との差を第1の差として算出する。
【0049】
フォントAの文字Cの高さと、フォントBの文字Cの高さとの差を第2の差として算出する。ここで、文字Cは、単一の文字であってもよく、複数の文字からなる文字列であってもよい。
【0050】
一例において、第1の差の絶対値に基づいて、フォントBとフォントAとのマッチ度を決定し、ここで、第1の差の絶対値が大きいほど、フォントBとフォントAとのマッチ度が低くなり、第1の差の絶対値が小さいほど、フォントBとフォントAとのマッチ度が高くなる。
【0051】
一例において、第2の差の絶対値に基づいて、フォントBとフォントAとのマッチ度を決定し、ここで、第2の差の絶対値が大きいほど、フォントBとフォントAとのマッチ度が低くなり、第2の差の絶対値が小さいほど、フォントBとフォントAとのマッチ度が高くなる。
【0052】
一例において、第1の差の絶対値と第2の差の絶対値との和を算出し、当該和に基づいて、フォントBとフォントAとのマッチ度を決定し、当該和が大きいほど、フォントBとフォントAとのマッチ度が低くなり、当該和が小さいほど、フォントBとフォントAとのマッチ度が高くなる。
【0053】
ステップS204、置換フォントリストの置換フォントから候補フォントを決定し、候補フォントはローカルアプリケーションがサポートするフォントである。
【0054】
ステップS206、候補フォントのうちオリジナルフォントとのマッチ度が最も高いフォントを第1のフォントとして決定する。
【0055】
当該例において、置換フォントリストの置換フォントから、ローカルアプリケーションがサポートする候補フォントを選択し、さらに、ローカルアプリケーションがサポートする候補フォントから、オリジナルフォントに最もマッチングする候補フォント(例えば、前述のマッチ度の高い順にソートされた置換フォントリストにおける最も上位にソートされた候補フォント)を第1のフォントとして選択する。
【0056】
置換フォントリストにおけるローカルアプリケーションがサポートする候補フォントを利用して第1のフォントを決定することは、端末デバイスが複雑な計算を行う必要がなく、より便利で迅速である。
【0057】
第1のフォントを決定する例2:ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、ステップS302~S304を含み得る。
【0058】
ステップS302、目標テキストの文字タイプを決定する。
【0059】
文字タイプは、第1のタイプ及び第2のタイプを含む。第1のタイプとは、目標テキストの文字が漢字等の正方形文字であることを指し、異なる漢字の幅、高さがほぼ同じである。第2のタイプとは、目標テキストの文字に、アルファベット、ローマ字、モンゴル文字又はアラビア文字等の文字が含まれているか、複数の言語が混在していることを指し、これらの文字の幅が一致しない可能性があり、高さも一致しない可能性がある。
【0060】
ステップS304、目標テキストの文字タイプに関連する所定のルールに従って、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択する。
【0061】
当該例において、目標テキストの文字タイプに対応するルールに基づいて第1のフォントを決定し、以下、例3、例4、例5、例6を用いて説明する。
【0062】
第1のフォントを決定する例3:ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、ステップS402~S406を含み得る。
【0063】
ステップS402、候補フォントの文字測定データを取得し、候補フォントはローカルアプリケーションがサポートするフォントである。
【0064】
ステップS404、目標テキストの組版方向を決定する。
【0065】
ステップS406、目標テキストの組版方向が横向き組版である場合、文字幅がオリジナルフォントの文字幅に最も近い候補フォントを第1のフォントとして決定する。目標テキストの組版方向が縦向き組版である場合、文字高さがオリジナルフォントの文字高さに最も近い候補フォントを第1のフォントとして決定する。
【0066】
目標テキストの組版方向が横向き組版である場合、目標テキストにおける文字の、オリジナルフォントにおける文字幅と候補フォントにおける文字幅との差を第1の差として算出し、第1の差の絶対値が小さいほど、候補フォントの文字幅がオリジナルフォントの文字幅に近いことを示し、第1の差の絶対値が最も小さい候補フォントを第1のフォントとして選択する。
【0067】
目標テキストの組版方向が縦向き組版である場合、目標テキストにおける文字の、オリジナルフォントにおける文字高さと候補フォントにおける文字高さとの差を第2の差として算出し、第2の差の絶対値が小さいほど、候補フォントの文字高さがオリジナルフォントの文字高さに近いことを示し、第2の差の絶対値が最も小さい候補フォントを第1のフォントとして選択する。
【0068】
例3は、目標テキストの文字タイプが第1のタイプ及び/又は第2のタイプである場合に適用される。つまり、目標テキストに漢字のみが含まれている場合、又は目標テキストにアルファベットやローマ字が含まれている場合には、いずれも例3の方式を適用して第1のフォントを決定することができる。
【0069】
第1のフォントを決定する例4:ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、ステップS502~S508を含み得る。
【0070】
ステップS502、オリジナルフォントのフォント属性及び候補フォントのフォント属性を取得し、候補フォントはローカルアプリケーションがサポートするフォントである。
【0071】
フォントのフォント属性とは、フォント自体が持つ固有の属性であり、当該フォントのスタイルを表現することができる。フォントのフォント属性は、フォントの太さ程度、黒化程度、傾き程度等のうちの1つ又は複数を含み得る。
【0072】
例えば、フォントの太さ程度には、太いものから細いものまで、「太」、「普通」、「細」の3つの属性値が含まれる。例えば、フォントの黒化程度には、「黒化あり」、「黒化なし」の2つの属性値が含まれる。例えば、フォントの傾き程度には、「傾きあり」、「傾きなし」の2つの属性値が含まれる。
【0073】
例えば、「宋体」、「華文細黒」、「方正太黒宋簡体」の3つのフォントについて、「宋体」のフォント属性は、太さ程度が「細」であり、黒化程度が「黒化なし」であり、傾斜の程度が「傾きなし」であり、「華文細黒」のフォントの属性は、太さ程度が「細」であり、黒化程度が「黒化あり」であり、傾き程度が「傾きなし」であり、「方正太黒宋簡体」のフォントの属性は、太さ程度が「太」であり、黒化程度が「黒化あり」であり、傾斜程度が「傾きなし」である。
【0074】
例えば、「Times New Roman」、「Forte」の2つのフォントについて、「Times New Roman」のフォント属性は、太さ程度が「細」であり、黒化程度が「黒化なし」であり、傾き程度が「傾きなし」であり、「Forte」のフォント属性は、太さ程度が「太」であり、黒化程度が「黒化あり」であり、傾斜程度が「傾きあり」である。
【0075】
ステップS504、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとして決定し、目標フォントの文字測定データを取得する。
【0076】
一例において、フォントのフォント属性は、フォントの太さ程度のみを含み、候補フォント及びオリジナルフォントがいずれも「太」である場合、又は、いずれも「普通」である場合、又は、いずれも「細」である場合、当該候補フォントとオリジナルフォントとの属性は同じであると考えられる。
【0077】
一例において、フォントのフォント属性は、フォントの太さ程度、黒化程度、及び傾き程度を含み、候補フォントとオリジナルフォントとの、太さ程度、黒化程度、及び傾き程度の3つの属性値がいずれも一致する場合、当該候補フォントとオリジナルフォントとの属性は同じであると考えられる。
【0078】
ステップS506、目標テキストの組版方向を決定する。
【0079】
ステップS508、目標テキストの組版方向が横向き組版である場合、文字幅がオリジナルフォントの文字幅に最も近い目標フォントを第1のフォントとして決定する。目標テキストの組版方向が縦向き組版である場合、文字高さがオリジナルフォントの文字高さに最も近い目標フォントを第1のフォントとして決定する。
【0080】
ステップS508の実現方式は、前述のステップS406と類似してもよく、ここでは詳細な説明を省略する。
【0081】
例4は、目標テキストの文字タイプが第1のタイプ及び/又は第2のタイプである場合に適用される。つまり、目標テキストに漢字のみが含まれている場合、又は目標テキストにアルファベットやローマ字が含まれている場合には、いずれも例4の方式を適用して第1のフォントを決定することができる。
【0082】
当該例において、全ての候補フォントから、フォント属性がオリジナルフォントのフォント属性と異なる候補フォントをフィルタリングし、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとして残し、オリジナルフォントの文字測定データに基づいて目標フォントから第1のフォントを決定することにより、選択された第1のフォントのスタイルとオリジナルフォントのスタイルとが基本的に一致し、ローカルアプリケーションがサポートする第1のフォントで表示された目標テキストを、オリジナルフォントにおける目標テキストのスタイルに近づける。
【0083】
第1のフォントを決定する例5において、目標テキストの文字タイプに関連する所定のルールに従って、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、サーバがオリジナルフォントのフォント属性及び前記オリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定するように、端末デバイスが候補フォントのフォント識別子をサーバに送信し、その後、サーバが第1のフォントのフォント識別子を端末デバイスに送信し、端末デバイスがサーバから第1のフォントのフォント識別子を受信することであってもよい。ここで、前記フォント識別子は、フォントを識別するための名称又は番号等であってもよい。
【0084】
又は、第1のフォントを決定する例6において、目標テキストの文字タイプに関連する所定のルールに従って、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、端末デバイスがサーバからオリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅を取得し、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定することであってもよい。
【0085】
ここで、候補フォントは、ローカルアプリケーションがサポートするフォントであり、所定の文字列には、複数の異なる所定の文字が含まれる。所定の文字列における所定の文字は、文字幅又は文字高さのいずれかの点で代表的なものであることが好ましい。例えば、任意の漢字及び英語における幅が代表的な「w」、「z」、「i」を選択して所定の文字列を構成し、ここで、「w」、「z」、「i」は3つの異なる幅の英語文字を表し、当該所定の文字列は「明WwZzIi」であってもよい。
【0086】
例5、6は、目標テキストの文字タイプが第2のタイプである場合に適用される。つまり、目標テキストにアルファベット、ローマ字、モンゴル文字、アラビア文字等の文字が含まれている場合、又は複数の言語が混在している場合には、例5、6の方式を適用して第1のフォントを決定することができる。例えば、目標テキストの文字タイプがアルファベットタイプ又は多言語混合タイプである場合(例えば、目標テキストに中国語コンテンツ及び英語コンテンツが同時に含まれ、又は目標テキストに同時に中国語コンテンツ及び日本語コンテンツが含まれる)場合、例5、6の方式を適用して第1のフォントを決定することができる。所定の文字列の幅に基づいて第1のフォントを決定することにより、異なる文字の文字幅が異なる場合に適しており、計算量が少なく、より効率的で高速である。
【0087】
一例において、候補フォントは、ローカルアプリケーションがサポートするデフォルトフォント及び非デフォルトフォントを含む。ローカルアプリケーションにデフォルトフォントが予め設定され、アプリケーションが端末デバイスにインストールされる時にデフォルトフォントが設定され、ユーザが個人の好みに応じてデフォルトフォントを変更することができる。
【0088】
オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて候補フォントから第1のフォントを決定することは、ステップS602~S604を含み得る。
【0089】
ステップS602、ローカルアプリケーションがサポートするデフォルトフォントとオリジナルフォントとのフォント属性が同じであり、かつデフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たす場合、デフォルトフォントを第1のフォントとして決定する。それ以外の場合、ステップS604を実行する。
【0090】
一例において、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすか否かの決定は、ステップS6022~S6026を含み得る。
【0091】
ステップS6022、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との差を第4の差として決定する。
【0092】
ステップS6024、第4の差の絶対値とオリジナルフォントにおける所定の文字列の幅との比を第1の比として決定する。
【0093】
ステップS6026、当該第1の比が所定の第1の閾値以下である場合、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすと決定する。当該第1の比が所定の第1の閾値より大きい場合、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たさないと決定する。
【0094】
一例において、デフォルトフォントにおける所定の文字列の幅及び高さとオリジナルフォントにおける所定の文字列の幅及び高さとの類似度が所定の基準を満たすことは、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との比が0.95~1.05の間にあり、即ち、前記第1の比が0~0.05の間にあることを含み得る。
【0095】
ステップS604、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとし、目標フォントから第1のフォントを決定する。
【0096】
ステップS604において、全ての候補フォント(デフォルトフォント及び非デフォルトフォントを含む)から、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとして選択する。
【0097】
一例において、ステップS604において、目標フォントから第1のフォントを決定することは、所定の文字列の幅がオリジナルフォントにおける所定の文字列の幅に最も近い目標フォントを第1のフォントとして決定することであってもよい。
【0098】
所定の文字列のオリジナルフォントにおける幅と目標フォントにおける幅との差を第3の差として算出し、第3の差の絶対値が小さいほど、目標フォントにおける所定の文字列の幅がオリジナルフォントにおける所定の文字列の幅に近くなり、第3の差の絶対値が最も小さい目標フォントを第1のフォントとして選択する。このように、組版前に、ローカルアプリケーションがユーザに表示した目標テキストの組版を、目標テキストのオリジナル組版に近づけることができ、組版時に微調整を行うだけでよい。
【0099】
一例において、ステップS604において、目標フォントから第1のフォントを決定することは、所定の文字列の幅が最も小さい目標フォントを第1のフォントとして決定することであってもよい。
【0100】
所定の文字列の幅が最も小さい目標フォントを第1のフォントとして選択することにより、ローカルアプリケーションが第1のフォントで目標テキストを表示する際に文字の重なりや上書きを避けることができ、組版前も重なりや上書きによるユーザの閲覧障害が発生しにくい。
【0101】
当該例において、ユーザのフォント使用習慣を考慮して、オリジナルフォントを置き換える第1のフォントとして、デフォルトフォントを優先させることが考えられる。また、デフォルトフォントとオリジナルフォントとのフォント属性が異なる場合、又はデフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たさない場合、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントから第1のフォントを決定する。これにより、ユーザの好みが考慮され、計算量が減り、処理時間が短縮される。
【0102】
上述の第1のフォントを決定する例2~例6において、候補フォント、目標フォントとオリジナルフォントとの類似度、マッチ度を決定する実現方式は、置換フォントリストにおける置換フォントを決定するためにも適用することができる。
【0103】
ステップS108において、端末デバイスがローカルアプリケーションがサポートする第1のフォントで目標テキストを表示し、オリジナルフォントの文字測定データに基づいて、第1のフォントで表示された目標テキストを組版することには、さまざまな方式があるが、以下に例を挙げて説明する。
【0104】
組版例1:まず、目標テキストの組版方向を決定し、目標テキストの組版方向に基づいて端末デバイスに第1のフォントで表示された目標テキストを組版する。目標テキストの組版方向が横向き組版である場合、目標テキストの文字幅とオリジナルフォントの文字幅とが一致するように、目標テキストの文字に対して第1のスケーリング処理を行う。目標テキストの組版方向が縦向き組版である場合、目標テキストの文字高さとオリジナルフォントの文字高さとが一致するように、目標テキストの文字に対して第2のスケーリング処理を行う。
【0105】
例1において、文字のスケーリングは、フォントサイズを調整することで実現できる。
【0106】
一実施例では、ステップS108において、オリジナルフォントに対応する文字測定データに基づいて、端末デバイスに表示された目標テキストを組版することは、第1のフォントに対応する文字測定データを取得し、オリジナルフォントに対応する文字測定データと第1のフォントに対応する文字測定データとに基づいて、端末デバイスに表示された目標テキストを組版することであってもよい。
【0107】
組版例2:まず、目標テキストの組版方向を決定し、目標テキストの組版方向に基づいて端末デバイスに第1のフォントで表示された目標テキストを組版する。目標テキストの組版方向が横向き組版である場合、第1の差を決定し、第1の差は、オリジナルフォントの文字幅と第1のフォントの文字幅との差である。第1の差が正の値である場合、目標テキストの文字の横座標値を調整する。第1の差が負の値である場合、目標テキストの文字を縮小処理する。目標テキストの組版方向が縦向き組版である場合、第2の差を決定し、第2の差は、オリジナルフォントの文字高さと第1のフォントの文字高さとの差である。第2の差が正の値である場合、目標テキストの文字の縦座標値を調整する。第2の差が負の値である場合、目標テキストの文字を縮小処理する。
【0108】
当該例において、文字の縮小処理は、フォントサイズを調整することで実現できる。
【0109】
以下、目標テキストの組版方向が横向き組版であることを例として説明する。
【0110】
図3(a)に示すように、オリジナルフォントにおける各文字の文字幅は約W1である。
図3(b)に示すように、第1のフォントにおける各文字の文字幅は約W2である。W1とW2との差DW(=W1-W2)を第1の差として算出する。
【0111】
当該第1の差DWが正の値であれば、第1のフォントの文字幅がオリジナルフォントの文字幅より小さいことを示し、この場合、第1のフォントにおける目標テキストの各文字の横座標の座標値を調整する必要がある。
【0112】
図4に示すように、目標テキストは1行のコンテンツであり、「おはよういい天気だね」という10文字を含む。オリジナルフォントにおいて、10文字の横座標の座標値は、X
1、X
2、…、X
10であり、組版後、10文字の横座標の座標値は、X
1’、X
2’、…、X
10’であると、
X
1’=X
1+0.5*DW、
X
2’=X
2+(2-1)*DW+0.5*DW、
…
X
n’=X
n+(n-1)*DW+0.5*DW、
…
X
10’=X
10+(10-1)*DW+0.5*DW
となる。
【0113】
ただし、nは整数であり、1≦n≦10となる。
【0114】
第1のフォントにおけるこの行のコンテンツの各文字の横座標の座標値を調整することは、この行のコンテンツの隣接する文字間の間隔を調整することに相当することがわかる。
【0115】
当該第1の差DWが負の値であれば、第1のフォントの文字幅がオリジナルフォントの文字幅より大きいことを示し、座標値を調整すると、文字同士の重なりを引き起こす可能性があるため、端末デバイスによって第1のフォントで表示された目標テキストのフォントサイズを縮小する必要がある。一例において、W1/W2の比に基づいて端末デバイスによって第1のフォントで表示された目標テキストのフォントサイズを縮小し、第1のフォントにおける元の目標テキストの位置(座標値)をそのまま維持する。例えば、W1/W2=R1であり、このコンテンツのオリジナルフォントサイズがU1であるとすると、このコンテンツのフォントサイズをU2に調整し、U2=R1*U1となる。本文において、前記フォントサイズはポイント単位で測定され、これは当業者に周知の印刷書体の測定方法であり、5ポイント、12ポイント等が挙げられる。
【0116】
以下、目標テキストの組版方向が縦向き組版であることを例として説明する。
【0117】
図3(a)に示すように、オリジナルフォントにおける各文字の文字高さはいずれもH1である。
図3(b)に示すように、第1のフォントにおける各文字の文字高さはいずれもH2である。H1とH2との差DH(=H1-H2)を第2の差として算出する。
【0118】
当該第2の差DHが正の値であれば、第1のフォントの文字高さがオリジナルフォントの文字高さより小さいことを示し、この場合、第1のフォントにおける各文字の縦座標の座標値を調整する。
【0119】
オリジナルフォントにおける目標テキストには合計M行のコンテンツがあり、各行の文字の縦座標値が同じであり、1行目からM行目までの文字の縦座標値がそれぞれY1、Y2、…、YMであり、組版後、1行目からM行目までの文字の縦座標値がそれぞれY1’、Y2’、…、YM’であると、
Y1’=Y1+0.5*DH、
Y2’=Y2+(2-1)*DH+0.5*DH、
…
Ym’=Ym+(m-1)*DH+0.5*DH、
…
YM’=YM+(M-1)*DH+0.5*DH
となる。
【0120】
ここで、mは整数であり、1≦m≦Mとなる。
【0121】
第1のフォントにおける目標テキストの各文字の縦座標の座標値を調整することは、目標テキストの隣接する行の行間隔を調整することに相当することがわかる。
【0122】
当該第2の差DHが負の値であれば、第1のフォントの文字高さがオリジナルフォントの文字高さより大きいことを示し、座標値を調整すると、文字同士の重なりを引き起こす可能性があるため、端末デバイスによって第1のフォントで表示された目標テキストのフォントサイズを縮小する必要がある。一例において、H1/H2の比に基づいて端末デバイスによって第1のフォントで表示された目標テキストのフォントサイズを縮小し、第1のフォントにおける元の目標テキストの位置(座標値)をそのまま維持する。例えば、H1/H2=R2であり、目標テキストのオリジナルフォントサイズがU1であるとすると、フォントサイズをU2に調整し、U2=R2*U1となる。
【0123】
組版例3:まず、目標テキストの組版方向を決定し、目標テキストの組版方向に基づいて端末デバイスに第1のフォントで表示された目標テキストを組版する。目標テキストの組版方向が横向き組版である場合、目標テキストのフォントサイズを第1のフォントサイズに調整し、第1のフォントサイズは、文字幅がオリジナルフォントの文字幅に最も近いフォントサイズであり、第1の差を決定し、第1の差は、オリジナルフォントの文字幅と第1のフォントの文字幅との差であり、第1の差が正の値である場合、目標テキストの文字の横座標値を調整し、第1の差が負の値である場合、目標テキストの文字を縮小処理する。目標テキストの組版方向が縦向き組版である場合、目標テキストのフォントサイズを第2のフォントサイズに調整し、第2のフォントサイズは、文字高さがオリジナルフォントの文字高さに最も近いフォントサイズであり、第2の差を決定し、第2の差は、オリジナルフォントの文字高さと第1のフォントの文字高さとの差であり、第2の差が正の値である場合、目標テキストの文字の縦座標値を調整し、第2の差が負の値である場合、目標テキストの文字を縮小処理する。
【0124】
つまり、目標テキストの組版方向が横向き組版である場合、端末デバイスが第1のフォントにおける目標テキストのフォントサイズを第1のフォントサイズに調整した後も、文字幅がオリジナルフォントにおける文字幅より大きい場合、フォントサイズを1単位小さくして文字を縮小させ、文字が互いに上書きし合うような状況は避ける。
【0125】
同様に、目標テキストの組版方向が縦向き組版である場合、端末デバイスが第1のフォントにおける目標テキストのフォントサイズを第2のフォントサイズに調整した後も、文字高さがオリジナルフォントにおける文字高さより大きい場合、フォントサイズを1単位小さくして文字を縮小させ、文字が互いに上書きし合うような状況は避ける。
【0126】
当該例において、文字の縮小処理は、フォントサイズを調整することで実現できる。
【0127】
端末デバイスが、表示された目標テキストを組版した後、表示された目標テキストの組版はオリジナルフォントで表示された目標テキストの組版により近い。
図4に示すように、目標テキスト「おはよういい天気だね」について、オリジナルフォントにおけるこのコンテンツの総幅は、第1のフォントにおけるものより広い。ステップS108の組版を経て、端末デバイスによって第1のフォントで表示されたこのコンテンツの総幅の方が、オリジナルフォントにおけるこのコンテンツの総幅に近い。このように、オリジナルフォントにおける同じ行にあるコンテンツが、第1のフォントで表示されても分割されることがないように保証することができる。
【0128】
組版例4:オリジナルフォントの文字測定データに基づいて目標テキストを組版することは、ステップS1085~S1087を含み得る。
【0129】
ステップS1085、目標テキストを単語に分割する。
【0130】
ステップS1086、単語における各文字の、第1のフォントにおける幅とオリジナルフォントにおける幅との差を累積し、調整量を得る。
【0131】
ステップS1087、調整量と単語における文字隙間数との比を第2の比として算出し、当該第2の比に基づいて、単語における文字の隙間が同じになるように、単語における文字の隙間を調整する。
【0132】
例えば、目標テキストの1つの単語には合計T文字があり、文字隙間数はGであり、G=T-1である。ここで、T文字における各文字の、第1のフォントにおける幅とオリジナルフォントにおける幅との差は、順に、O1、O2、…、OTであり、O1、O2、…、OTを累積して調整量を得、調整量と文字隙間数との第2の比を算出する。第2の比が正の値であれば、調整量が正の値であり、単語における文字の隙間を小さくする必要があることを示し、この場合、単語における文字の隙間から第2の比を減算する。第2の比が負の値であれば、調整量が負の値であり、単語における文字の隙間を大きくする必要があることを示し、この場合、単語における文字の隙間から第2の比を減算する、即ち第2の比の絶対値を加算する。
【0133】
これにより、同一の単語における文字の隙間を同じにすることができ、より均一に表示することができる。第2のタイプの目標テキストに適用でき、異なる文字の幅が異なる場合にも、同一の単語における文字の表示をより均一にすることができる。組版例4は、前述のいずれかの組版例の後に行ってもよい。
【0134】
一例において、ローカルアプリケーションは、まず、目標テキストの文字の幅、高さを組版し、その後、オリジナルフォントに対応する文字上昇値に従って目標テキストの文字の上昇値を調整する。
【0135】
本発明の実施例の1つの有益な効果は、端末デバイスのローカルアプリケーションが目標テキストのオリジナルフォントをサポートしない場合、ローカルアプリケーションがそれがサポートする第1のフォントを使用して目標テキストを表示し、オリジナルフォントの文字測定データに基づいて目標テキストを組版することにより、ローカルアプリケーションにオリジナルフォントが欠落している場合にもドキュメント組版とオリジナル組版との一致性を維持することができる。
【0136】
図5に示すように、本発明の実施例は、テキストの組版方法を提供する。当該方法は、ステップS702~S706を含む。ステップS702~S706は、サーバによって実施され得る。
【0137】
ステップS702、端末デバイスによって送信された目標テキストのオリジナルフォントのフォント識別子を受信する。
【0138】
ステップS704、オリジナルフォントのフォント識別子に基づいて、オリジナルフォントの文字測定データを検索する。
【0139】
ステップS706、端末デバイスがオリジナルフォントの文字測定データに基づいて、そのローカルアプリケーションがサポートする第1のフォントで表示された目標テキストを組版するように、オリジナルフォントの文字測定データを端末デバイスに送信する。
【0140】
一例において、サーバには、各フォントのフォント属性、及び各フォントの各フォントサイズにおける文字測定データが予め記憶されている。フォントの文字測定データは、文字の高さ及び幅を含み得る。フォントの文字測定データは、文字の上昇値をさらに含み得る。フォントのフォント属性とは、フォント自体が持つ固有の属性であり、当該フォントのスタイルを表現することができる。フォントのフォント属性は、フォントの太さ程度、黒化程度、傾き程度等のうちの1つ又は複数を含み得る。
【0141】
一例において、端末デバイスがそのローカルアプリケーションがサポートする第1のフォントで目標テキストを表示する前に、当該方法は、オリジナルフォントのフォント識別子に基づいてオリジナルフォントの置換フォントリストを取得するステップをさらに含む。置換フォントリストの置換フォントから候補フォントを決定し、候補フォントは端末デバイスのローカルアプリケーションがサポートするフォントである。置換フォントリストにおける、オリジナルフォントに最もマッチングする候補フォントを第1のフォントとして決定する。第1のフォントの識別子は、端末デバイスに送信される。
【0142】
一例において、端末デバイスがそのローカルアプリケーションがサポートする第1のフォントで目標テキストを表示する前に、当該方法は、端末デバイスがオリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定するように、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅を端末デバイスに送信するステップをさらに含む。ここで、候補フォントは端末デバイスのローカルアプリケーションがサポートするフォントであり、所定の文字列には、複数の異なる所定の文字を含まれる。
【0143】
一例において、端末デバイスがそのローカルアプリケーションがサポートする第1のフォントで目標テキストを表示する前に、当該方法は、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定し、第1のフォントのフォント識別子を端末デバイスに送信するステップをさらに含む。ここで、候補フォントは端末デバイスのローカルアプリケーションがサポートするフォントであり、所定の文字列には、複数の異なる所定の文字を含まれる。
【0144】
一例において、候補フォントは、ローカルアプリケーションがサポートするデフォルトフォント及び非デフォルトフォントを含む。
【0145】
一例において、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定することは、デフォルトフォントとオリジナルフォントとのフォント属性が同じであり、かつデフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たす場合、デフォルトフォントを第1のフォントとして決定することを含む。それ以外の場合、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとし、目標フォントから第1のフォントを決定する。
【0146】
一例において、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすか否かの決定は、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との差を第4の差として決定することを含む。前記第4の差の絶対値とオリジナルフォントにおける所定の文字列の幅との比を第1の比として決定する。前記第1の比が所定の第1の閾値以下である場合、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすと決定する。前記第1の比が所定の第1の閾値より大きい場合、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たさないと決定する。
【0147】
一例において、目標フォントから第1のフォントを決定することは、所定の文字列の幅がオリジナルフォントにおける所定の文字列の幅に最も近い目標フォントを第1のフォントとして決定すること、又は、所定の文字列の幅が最も小さい目標フォントを第1のフォントとして決定することを含む。
【0148】
本発明の実施例の1つの有益な効果は、端末デバイスのローカルアプリケーションが目標テキストのオリジナルフォントをサポートしていない場合、端末デバイスがオリジナルフォントに対応する文字測定データに基づいて、ローカルアプリケーションがサポートする第1のフォントで表示された目標テキストを組版することができるように、サーバがオリジナルフォントの文字測定データを端末デバイスに提供することにより、ローカルアプリケーションにオリジナルフォントが欠落している場合にもドキュメント組版とオリジナル組版との一致性を維持することができる。
<デバイス実施例>
【0149】
本発明の実施例は、テキストの組版装置を提供し、以下のモジュールを含む。
【0150】
第1の決定モジュールは、目標テキストに使用されるオリジナルフォントを決定するために用いられる。
【0151】
第2の決定モジュールは、ローカルアプリケーションがオリジナルフォントをサポートするか否かを決定するために用いられる。
【0152】
取得モジュールは、ローカルアプリケーションがオリジナルフォントをサポートしない場合、オリジナルフォントの文字測定データを取得する。
【0153】
組版モジュールは、オリジナルフォントの文字測定データに基づいて、端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された目標テキストを組版するために用いられる。
【0154】
一例において、オリジナルフォントの文字測定データを取得することは、前記端末デバイスのローカルキャッシュにおいて、オリジナルフォントの文字測定データを検索することと、前記端末デバイスのローカルキャッシュにおいて、オリジナルフォントの文字測定データが見つからなかった場合、サーバからオリジナルフォントの文字測定データを取得してローカルキャッシュに記憶することとのいずれかを含む。
【0155】
一例において、ローカルアプリケーションがサポートする第1のフォントで目標テキストを表示する前に、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択し、選択された前記第1のフォントで前記目標テキストを表示することをさらに含む。
【0156】
一例において、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、オリジナルフォントの置換フォントリストを取得することを含む。置換フォントリストの置換フォントから候補フォントを決定し、候補フォントはローカルアプリケーションがサポートするフォントである。前記候補フォントのうち前記オリジナルフォントとのマッチ度が最も高いフォントを第1のフォントとして決定する。
【0157】
一例において、ローカルアプリケーションがサポートする第1のフォントで目標テキストを表示することは、目標テキストの文字タイプを決定することを含む。目標テキストの文字タイプに関連する所定のルールに従って、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択し、選択された第1のフォントで目標テキストを表示する。
【0158】
一例において、オリジナルフォントの文字測定データは、オリジナルフォントの文字幅及びオリジナルフォントの文字高さを含む。ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、候補フォントの文字測定データを取得することを含み、候補フォントがローカルアプリケーションがサポートするフォントである。目標テキストの組版方向を決定する。目標テキストの組版方向が横向き組版である場合、文字幅がオリジナルフォントの文字幅に最も近い候補フォントを第1のフォントとして決定する。目標テキストの組版方向が縦向き組版である場合、文字高さがオリジナルフォントの文字高さに最も近い候補フォントを第1のフォントとして決定する。
【0159】
一例において、オリジナルフォントの文字測定データは、オリジナルフォントの文字幅及びオリジナルフォントの文字高さを含む。
【0160】
ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、オリジナルフォントのフォント属性及び候補フォントのフォント属性を取得することを含み、候補フォントはローカルアプリケーションがサポートするフォントである。フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとして決定し、目標フォントの文字測定データを取得する。目標テキストの組版方向を決定する。目標テキストの組版方向が横向き組版である場合、文字幅がオリジナルフォントの文字幅に最も近い目標フォントを第1のフォントとして決定する。目標テキストの組版方向が縦向き組版である場合、文字高さがオリジナルフォントの文字高さに最も近い目標フォントを第1のフォントとして決定する。
【0161】
一例において、目標テキストの文字タイプがアルファベットタイプ又は多言語混合タイプである場合、タイプに関連する所定のルールに基づいて、ローカルアプリケーションがサポートする全てのフォントから、オリジナルフォントにマッチングする第1のフォントを選択することは、サーバがオリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定するように、候補フォントのフォント識別子をサーバに送信して、サーバから第1のフォントのフォント識別子を受信することを含む。又は、サーバからオリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅を取得し、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定する。ここで、候補フォントは、ローカルアプリケーションがサポートするフォントであり、所定の文字列には、複数の異なる所定の文字が含まれる。
【0162】
一例において、候補フォントは、ローカルアプリケーションがサポートするデフォルトフォント及び非デフォルトフォントを含む。
【0163】
オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定することは、デフォルトフォントとオリジナルフォントとのフォント属性が同じであり、かつデフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たす場合、デフォルトフォントを第1のフォントとして決定することを含む。それ以外の場合、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとし、目標フォントから第1のフォントを決定する。
【0164】
一例において、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすか否かの決定は、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との差を第4の差として決定することを含む。前記第4の差の絶対値とオリジナルフォントにおける所定の文字列の幅との比を第1の比として決定する。前記第1の比が所定の第1の閾値以下である場合、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすと決定する。
【0165】
一例において、目標フォントから第1のフォントを決定することは、所定の文字列の幅がオリジナルフォントにおける所定の文字列の幅に最も近い目標フォントを第1のフォントとして決定すること、又は、所定の文字列の幅が最も小さい目標フォントを第1のフォントとして決定することを含む。
【0166】
一例において、オリジナルフォントの文字測定データは、オリジナルフォントの文字幅及びオリジナルフォントの文字高さを含む。
【0167】
オリジナルフォントの文字測定データに基づいて目標テキストを組版することは、目標テキストの組版方向を決定することを含む。目標テキストの組版方向が横向き組版である場合、第1の差を決定し、第1の差は、前記目標テキストの文字の、オリジナルフォントにおける文字幅と第1のフォントにおける文字幅との差であり、第1の差が正の値である場合、前記第1のフォントで表示された目標テキストの文字の横座標値を調整する。第1の差が負の値である場合、前記第1のフォントで表示された目標テキストの文字を縮小処理する。目標テキストの組版方向が縦向き組版である場合、第2の差を決定し、第2の差は、前記目標テキストの文字の、オリジナルフォントにおける文字高さと第1のフォントにおける文字高さとの差である。第2の差が正の値である場合、前記第1のフォントで表示された目標テキストの文字の縦座標値を調整する。第2の差が負の値である場合、前記第1のフォントで表示された目標テキストの文字を縮小処理する。
【0168】
一例において、オリジナルフォントの文字測定データは、オリジナルフォントの文字幅を含む。
【0169】
オリジナルフォントの文字測定データに基づいて目標テキストを組版することは、目標テキストを単語に分割することを含む。単語における各文字の、第1のフォントにおける幅とオリジナルフォントにおける幅との差を累積し、調整量を得る。前記調整量と単語における文字隙間数との比を第2の比として算出し、前記第2の比に基づいて、単語における文字の隙間が同じになるように、単語における文字の隙間を調整する。
【0170】
本発明の実施例は、テキストの組版装置を提供し、以下のモジュールを含む。
【0171】
受信モジュールは、端末デバイスによって送信された目標テキストのオリジナルフォントのフォント識別子を受信するために用いられる。
【0172】
検索モジュールは、オリジナルフォントのフォント識別子に基づいて、オリジナルフォントの文字測定データを検索するために用いられる。
【0173】
送信モジュールは、前記端末デバイスがオリジナルフォントの文字測定データに基づいて、前記端末デバイスのローカルアプリケーションがサポートする第1のフォントで表示された目標テキストを組版するように、オリジナルフォントの文字測定データを端末デバイスに送信するために用いられる。
【0174】
一例において、端末デバイスがそのローカルアプリケーションがサポートする第1のフォントで目標テキストを表示することは、オリジナルフォントのフォント識別子に基づいてオリジナルフォントの置換フォントリストを取得することを含む。置換フォントリストの置換フォントから候補フォントを決定し、候補フォントはローカルアプリケーションがサポートするフォントである。置換フォントリストにおける最も上位にソートされた候補フォントを第1のフォントとして決定する。第1のフォントの識別子を端末デバイスに送信し、選択された前記第1のフォントで目標テキストを表示する。
【0175】
一例において、端末デバイスがオリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定するように、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅を端末デバイスに送信することをさらに含む。又は、オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定し、第1のフォントのフォント識別子を端末デバイスに送信する。ここで、候補フォントは、ローカルアプリケーションがサポートするフォントであり、所定の文字列には、複数の異なる所定の文字が含まれる。
【0176】
一例において、候補フォントは、ローカルアプリケーションがサポートするデフォルトフォント及び非デフォルトフォントを含む。
【0177】
オリジナルフォントのフォント属性及びオリジナルフォントにおける所定の文字列の幅に基づいて、候補フォントから第1のフォントを決定することは、デフォルトフォントとオリジナルフォントとのフォント属性が同じであり、かつデフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たす場合、デフォルトフォントを第1のフォントとして決定することを含む。それ以外の場合、フォント属性がオリジナルフォントのフォント属性と同じである候補フォントを目標フォントとし、目標フォントから第1のフォントを決定する。
【0178】
一例において、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすか否かの決定は、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との差を第4の差として決定することを含む。前記第4の差の絶対値とオリジナルフォントにおける所定の文字列の幅との比を第1の比として決定する。前記第1の比が所定の第1の閾値以下である場合、デフォルトフォントにおける所定の文字列の幅とオリジナルフォントにおける所定の文字列の幅との類似度が所定の基準を満たすと決定する。
【0179】
一例において、目標フォントから第1のフォントを決定することは、所定の文字列の幅がオリジナルフォントにおける所定の文字列の幅に最も近い目標フォントを第1のフォントとして決定すること、又は、所定の文字列の幅が最も小さい目標フォントを第1のフォントとして決定することを含む。
【0180】
図6は、一実施例による電子デバイスのハードウェア構造の模式図である。
【0181】
図6に示すように、当該電子デバイス800はプロセッサ801とメモリ802とを含み、当該メモリ802は実行可能なコンピュータプログラムを記憶するために用いられ、当該プロセッサ801は前記コンピュータプログラムを実行して、上記のいずれかの方法実施例のテキストの組版方法を実施する。
【0182】
当該電子デバイス800は、コンピュータ、携帯電話、タブレットコンピュータ等のデバイスであってもよい。
【0183】
一例において、当該電子デバイスは、前述の端末デバイスである。
【0184】
図7は、一実施例によるサーバのハードウェア構造の模式図である。
【0185】
図7に示すように、当該サーバ900はプロセッサ901とメモリ902とを含み、当該メモリ902は実行可能なコンピュータプログラムを記憶するために用いられ、当該プロセッサ901は前記コンピュータプログラムを実行して、上記のいずれかの方法実施例のテキストの組版方法を実施する。
<コンピュータ可読記憶媒体>
【0186】
本発明の実施例は、コンピュータプログラムを記憶しているコンピュータ可読記憶媒体をさらに提供し、コンピュータプログラムは、プロセッサによって実行されると、上記のいずれかの方法実施例によるテキストの組版方法が実施される。
【0187】
本発明は、システム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、本発明の各態様をプロセッサに実施させるためのコンピュータ可読プログラム命令を記憶しているコンピュータ可読記憶媒体を含み得る。
【0188】
コンピュータ可読記憶媒体は、命令実行デバイスに使用される命令を保持及び記憶することが可能な有形のデバイスであってもよい。コンピュータ可読記憶媒体は、電気記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は上記の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多機能ディスク(DVD)、メモリスティック、フロッピーディスク、機械符号化デバイス、例えば命令が記憶されているパンチカード又は溝内突起構造、及び上記の任意の適切な組み合わせを含む。ここで使用されるコンピュータ可読記憶媒体は、過渡信号そのもの、例えば、電波又は他の自由に伝播する電磁波、導波路又は他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを介した光パルスなど)、又は、電線を介して伝送される電気信号として解釈されない。
【0189】
ここで記述されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各計算/処理デバイスにダウンロードされてもよいし、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、及び/又は無線ネットワークを介して外部コンピュータ又は外部記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光ファイバ伝送、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含み得る。各計算/処理デバイスにおけるネットワークアダプタ又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を転送して、各計算/処理設備におけるコンピュータ可読記憶媒体に記憶させる。
【0190】
本発明の動作を実行するためのコンピュータプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン関連命令、マイクロコード、ファームウェア命令、ステータス設定データ、又は1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードであってもよく、前記プログラミング言語は、Smalltalk、C++等のオブジェクト指向プログラミング言語、及び「C」言語又は類似のプログラミング言語等の従来の手続型プログラミング言語を含む。コンピュータ可読プログラム命令は、完全にユーザコンピュータ上で実行されてもよく、部分的にユーザコンピュータ上で実行されてもよく、独立したソフトウェアパケットとして実行されてもよく、一部はユーザコンピュータ上で実行され、一部はリモートコンピュータ上で実行されてもよく、又は完全にリモートコンピュータ又はサーバ上で実行されてもよい。リモートコンピュータに関する場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザコンピュータに接続されてもよく、又は外部コンピュータに接続されてもよい(例えば、インターネットサービスプロバイダを利用してインターネットを介して接続される)。いくつかの実施例において、コンピュータ可読プログラム命令の状態情報を利用して電子回路、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブルロジックアレイ(PLA)をパーソナライズし、当該電子回路はコンピュータ可読プログラム命令を実行することができ、それにより、本発明の様々な側面を実現する。
【0191】
ここで、本発明の実施例による方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して本発明の各方面を説明した。フローチャート及び/又はブロック図における各ブロック及びフローチャート及び/又はブロック図における各ブロックの組み合わせは、いずれもコンピュータ可読プログラム命令によって実現できる。
【0192】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサに提供されて機械が生産され、これにより、これらの命令がコンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行されると、フローチャート及び/又はブロック図における1つ又は複数のブロックに指定された機能/動作を実現する装置が生成される。これらのコンピュータ可読プログラム命令をコンピュータ可読記憶媒体に記憶させてもよく、これらの命令は、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスを特定の方式で動作させるため、命令が記憶されているコンピュータ可読媒体は、フローチャート及び/又はブロック図における1つ又は複数のブロックに指定された機能/動作の各方面を実現する命令を含む1つの製造品を含む。
【0193】
コンピュータ可読プログラム命令をコンピュータ、他のプログラマブルデータ処理装置、又は他の装置にロードして、コンピュータ、他のプログラマブルデータ処理装置又は他の装置で一連の動作ステップを実行して、コンピュータにより実現されるプロセスを生成し、それにより、コンピュータ、他のプログラマブルデータ処理装置、又は他の装置上で実行される命令は、フローチャート及び/又はブロック図における1つ又は複数のブロックに指定された機能/動作を実現する。
【0194】
添付図面におけるフローチャート及びブロック図は、本発明の複数の実施例によるシステム、方法及びコンピュータプログラム製品によって実現可能なシステムアーキテクチャ、機能及び動作を示す。この点において、フローチャート又はブロック図における各ブロックは、指定の論理機能を実現するための1つ又は複数の実行可能命令を含む、1つのモジュール、命令セグメント又は命令の一部を表すことができる。代替としてのいくつかの実装において、ブロックに記された機能は、図面において記された順序とは異なる順序で発生してもよい。例えば、2つの連続したブロックは、関係する機能によって、実際には基本的に並行して実行されてもよく、逆の順序で実行されてもよい。なお、ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、指定の機能又は動作を実行する専用のハードウェアに基づくシステムで実現されてもよく、専用ハードウェアとコンピュータ命令との組み合わせで実現されてもよい。ハードウェア的な実現、ソフトウェア的な実現、及びソフトウェアとハードウェアとの組み合わせによる実現は、いずれも等価であることが当業者にとって周知である。
【0195】
以上、本発明の各実施例について説明したが、上記の説明は例示であり、網羅的なものではなく、開示された各実施例に限定されない。説明された各実施例の範囲及び精神から逸脱することなく、多くの修正及び変更が当業者にとって容易に想到し得るものである。本文に用いられる用語の選択は、各実施例の原理、実際の応用又は市販の技術への改良を最も良く解釈し、又は当業者が本発明の開示された各実施例を理解できるようにすることを意図する。本発明の範囲は、添付の特許請求の範囲によって限定される。
【国際調査報告】