專利名稱:一種排版的方法和裝置的制作方法
技術領域:
本發(fā)明涉及印刷排版技術領域,特別地涉及一種排版的方法和裝置。
背景技術:
各種書籍報刊雜志中經(jīng)常出現(xiàn)首字下沉效果,以達到突出段首、吸引讀者 的目的。首字下沉可用于漢字或拼音文字,首字下沉的段落第一行開始的前幾
個字字號放大并向下延伸數(shù)行,頂部與第一行其他文字對齊;段落中的其他文 字從段首大字的后邊空白排起,超過段首大字的下沉深度后,再恢復原行的寬 度,如圖1A中的文本框la和圖IB中的文本框lb所示。
目前設置首字下沉的一種方法是,對首字下沉的段落設置下沉字符的大 小,對于首字下沉的段落的下一段的首行,其排版位置在高度方向上是與首字 下沉段落的末行相距一個段間距。這種方法能夠達到圖1A和圖1B的方框la 和方框lb中的文本的效果,但也會出現(xiàn)如圖1C中的方框lc中的文本內的情 況,第二項字條出現(xiàn)在第一項字條的首字之后。這是由于首字下沉的段落中的 文字較少,以至于該段落高度小于下沉字符的高度,這樣,首字下沉的段落的 首字與下一段的首行在高度上發(fā)生平齊,從而導致版面錯位,影響了版面的視 覺效果。
發(fā)明內容
本發(fā)明的主要目的是提供排版的方法和裝置,以解決現(xiàn)有技術中出現(xiàn)首字 下沉的段落的首字與下一段的首行在高度方向上發(fā)生平齊,從而導致版面錯亂 的不足之處。
為解決上述問題,本發(fā)明提供如下技術方案一種排版方法,應用于包含兩個以上段落的排版區(qū)域,所述方法包括 對當前排版行所屬段落的上一段落以及當前排版行進行判斷,如果當前排
版行所屬段落的上一段落為首字下沉段落并且當前排版行是其所屬段落首行,
則
判斷所述首字下沉段落的下沉字符底部位置是否低于該段的末行字符底 部位置,
若是,則確定當前排版行的可排區(qū)域在高度方向的起始位置是與所述下沉 字符底部的距離等于段間距的位置,
若否,則確定所述起始位置是與所述首字下沉段落末行字符底部的距離等 于段間距的位置;
在所述可排區(qū)域內的高度方向上從所述起始位置開始編排所述當前排版 行的字符。
一種排版裝置,包括
第 一判斷模塊,用于判斷當前排版行所屬段落的上一段落是否為首字下沉 段落以及當前排版行是否為其所屬段落的首行;
第二判斷模塊,用于若當前排版行所屬段落的上一段落為首字下沉段落并 且當前排版行是其所屬段落的首行,則判斷所述首字下沉段落的下沉字符底部 位置是否低于該段的末行字符底部位置;
第一確定模塊,用于若第二判斷模塊判斷所述首字下沉段落的下沉字符底 部位置低于該段的末行字符底部位置,則確定當前排版行的可排區(qū)域在高度方 向的起始位置是與所述下沉字符底部的距離等于段間距的位置;
第二確定模塊,用于若第二判斷模塊判斷所述首字下沉段落的下沉字符底
部位置不低于該段的末行字符底部位置,則確定當前排版行的可排區(qū)域在高度 方向的起始位置是與所述首字下沉段落末行字符底部的距離等于段間距的位 置;
編排模塊,用于在所述可排區(qū)域內的高度方向上從所述起始位置開始編排所述當前排版行的字符。
才艮據(jù)本發(fā)明實施例的技術方案,在首字下沉的段落的首行完成排版之后的 繼續(xù)排版過程中,對排版的當前排版行的起始位置加以控制,即首先確認當前 排版行是否為其所屬段落的首行,若是則進一步確認當前排版行的上一段落的
結束位置,因為該結束位置有如下兩種情況下沉字符的底部和首字下沉段落
的末行文字底部,所以相應于這兩種情況,確認了當前排版行在高度方向上的 兩種排版起始位置。這樣,對于首字下沉的段落,如果下沉字符的底部低于該 段末行文字底部,則根據(jù)本發(fā)明實施例的技術方案,下一段落的首行與下沉字 符的底部在高度方向上間隔一個段間距,由此避免了當前排版行在高度方向上 與下沉字符發(fā)生平齊,使版面文字不至于產生錯位,從而具有良好的視覺效果。
圖1A為現(xiàn)有技術中實現(xiàn)的對拼音文字的首字下沉效果; 圖1B為現(xiàn)有技術中實現(xiàn)的對漢字的首字下沉效果; 圖1C為現(xiàn)有技術中首字下沉的段落及其下一段落中出現(xiàn)的版面錯位現(xiàn)象 示意圖2為本發(fā)明實施例的方法流程圖; 圖3為本發(fā)明實施例的一種裝置結構示意圖; 圖4為本發(fā)明實施例的第二種裝置結構示意圖; 圖5為本發(fā)明實施例的第三種裝置結構示意圖。
具體實施例方式
對于包含兩個段落以上的版面,為了避免在排版時首字下沉的段落的首字 與下一段的首行在高度方向上發(fā)生平齊,從而導致版面錯亂,在本發(fā)明實施例 中對于文字方向為從左至右的方向的版面,從文檔的首段開始排版,該首段采 用了首字下沉的文字效果。才艮據(jù)圖2所示的流程圖進行。步驟21:設置首字下沉的段落中的下沉字符個數(shù)和下沉字符的字體大小。 這里的下沉字符個數(shù)可以是一個,也可以不止一個。設置下沉字符的字體大小 時可以設置下沉字符的高度字號和寬度字號,也可以是指定下沉字符所占首字 下沉的段落的行數(shù),根據(jù)該行數(shù)進一步確定下沉字符的高度和寬度,此時,先 由首字下沉的段落內的下沉字符原始高度、首字下沉的段落的行間距和下沉字 符所占首字下沉的段落的行數(shù)得出下沉字符的高度和下沉字符縮放比例,再由 該縮放比例和首字下沉的段落中的下沉字符原始寬度得出下沉字符的寬度。具 體可以根據(jù)如下公式計算
Hl=H0xN+Hx(N-l),
K=HKH0,
Wl=W0xK。
其中HI和Wl分別是下沉字符的高度和寬度,HO和WO分別是首字下沉 的段落中的下沉字符原始高度和寬度,N是下沉字符所占首字下沉的段落的行 數(shù),H是首字下沉的段落的行間距,K是下沉字符縮放比例。在本步驟中還可 以進一步設置下沉字符的其他屬性例如字體、是否加粗等。
步驟22:對首字下沉的段落的首行排版。在本步驟中根據(jù)步驟21中的設 置對首字下沉的段落的首行排版,另外為了版面的整齊,在本步驟中還可以調 整下沉字符的頂部與本行其他字符的頂部高度,使二者高度相等。對于首字下 沉的段落中的首行之后的行,以及首字下沉的段落的下一段落,在排版時根據(jù) 如下步驟進行,在以下步驟中,將正在排版的一行稱作當前排版行,在完成一
行的排版之后即啟動下 一行繼續(xù)排版。
步驟23:當啟動當前排版行的排版之后,判斷當前排版行是否為其所屬段 落的首行。若是則進入步驟24,否則進入步驟26。這里的判斷可以利用排版 的過程中排版工具例如排版軟件對即將排版的行分配的索引號,如果排版工具 從0開始按自然數(shù)對段內每行分配索引,則在本步驟中判斷當前排版行的索S1 是否為0,即可得知當前排版行是否為其所屬段落的首行。在本發(fā)明實施例中已知當前排版行所屬段落的上一段落為首字下沉的段落。在一般情況下,對于 當前排版行的排版,還需在本步驟中判斷當前排版行的上一段落是否為首字下
沉段落,如果是,則若當前行是其所屬段落首行,進入步驟24;如果不是,則 當前行的可排區(qū)域在高度方向上距離上一行為一個行間距或一個段間距。
步驟24:確認首字下沉的段落的底部的高度。為了避免出現(xiàn)圖1C中的方 框lc中的文本內的情況,即首字下沉的下一段首行與下沉字符在高度上發(fā)生 平齊,所以在本步驟中對首字下沉的段落的底部的高度進行確認??梢愿鶕?jù)如 下方法進行在排版區(qū)域的高度方向上,如果首字下沉的段落的下沉字符底部 位置低于該段的末行字符底部位置,則首字下沉的段落底部是該段的下沉字符 的底部,否則首字下沉的段落底部是該段末行字符的底部。
步驟25:從首字下沉的段落底部開始對當前排版行排版。此處的當前排版 行即為步驟23中的當前排版行,同時也是步驟21和步驟22中的首字下沉的 段落的下一段落。在當前排版行中可能也包含下沉字符,對其排版方法可以根 據(jù)步驟21和22的方法進行。
步驟26:在與上一行底部的距離等于行間距的位置開始對當前排版行排 版。在本步驟中,還需注意當前排版行左端文字的橫向位置。如果當前排版行 的頂部高于下沉字符的底部,則當前排版行左端文字需右移,讓出下沉字符的 下沉部分,反之則可以從該行的左端開始排版,此時當前排版行的頂部可能與 下沉字符的底部距離小于行間距,這可能影響版面的視覺效果,因此還需適當 調整下沉字符的大小,可以是返回步驟21進行調整和重新排版下沉字符所在 的行。
步驟27:對當前排版行的下一行排版。方式與上述各步相同。同樣需進行 步驟23中的判斷,然后根據(jù)判斷結果執(zhí)行相應的步驟。
排版高度方向為上下方向。對于縱向閱讀的豎排文字的文檔,可以采用與本發(fā) 明實施例相等同的方案,將本發(fā)明實施例中的上下方向和左右方向的度量相應分別變更為左右方向和上下方向。
基于本發(fā)明實施例的方法,下面對相應的排版裝置作出說明。如圖3所示, 本發(fā)明實施例中的一種排版裝置30包括第一判斷模塊31、第二判斷模塊32、 第一確定模塊33、第二確定模塊34和編排模塊35。
第一判斷模塊31用于判斷當前排版行所屬段落的上一段落是否為首字下 沉段落以及當前排版行是否為其所屬段落的首行。第二判斷模塊32用于若當 前排版行所屬段落的上一段落為首字下沉段落并且當前排版行是其所屬段落 的首行,則判斷首字下沉段落的下沉字符底部位置是否低于該段的末行字符底 部位置。第一確定模塊33用于若第二判斷模塊32判斷首字下沉段落的下沉字 符底部位置低于該段的末行字符底部位置,則確定當前排版行的可排區(qū)域在高 度方向的起始位置是與下沉字符底部的距離等于段間距的位置。第二確定模塊 34用于若第二判斷模塊32判斷首字下沉段落的下沉字符底部位置不低于該段 的末行字符底部位置,則確定當前排版行的可排區(qū)域在高度方向的起始位置是 與所述首字下沉段落末行字符底部的距離等于段間距的位置。編排模塊35用 于在可排區(qū)域內的高度方向上從當前排版行的可排區(qū)域在高度方向的起始位 置開始編排當前排版行的字符。
圖4中的排版裝置40在排版裝置30的基礎上進一步包括了字號存儲模塊 41,用于存儲首字下沉段落的下沉字符的高度字號和寬度字號,這樣編排模塊 35進一步用于若所述上一段落為首字下沉段落,則根據(jù)字號存儲模塊存儲的下 沉字符的高度字號和寬度字號編排該段落的下沉字符。
圖5中的排版裝置50在排版裝置30的基礎上進一步包括了行高存儲模塊 51,用于存儲設置的行高倍數(shù),該行高倍數(shù)是下沉字符排版高度與該段落的行 高相比的倍數(shù)。這樣,編排模塊35的一種結構是包括高寬確定子模塊和排版 位置確定子模塊。高寬確定子模塊用于根據(jù)行高存儲模塊存儲的行高倍數(shù)確定 下沉字符的排版高度和排版寬度。排版位置確定子模塊用于根據(jù)高寬確定子模 塊確定的下沉字符排版高度和排版寬度確定首字下沉段落的排版位置。高寬確定子才莫塊的一種結構是包括第一計算單元和第二計算單元。第一計 算單元用于根據(jù)首字下沉的段落內的下沉字符原始高度、首字下沉的段落的行 間距和所述行高倍數(shù)得出下沉字符排版高度和下沉字符縮放比例。第二計算單 元用于根據(jù)下沉字符縮放比例和下沉字符原始寬度得出下沉字符排版寬度。
根據(jù)本發(fā)明實施例的技術方案,在首字下沉的段落的首行完成排版之后的 繼續(xù)排版過程中,對排版的當前排版行的起始位置加以控制,即首先確認當前 排版行是否為其所屬段落的首行,若是則進一步確認當前排版行的上一段落的
結束位置,因為該結束位置有如下兩種情況下沉字符的底部和首字下沉段落 的末行文字底部,所以相應于這兩種情況,確認了當前排版行在高度方向上的 兩種排版起始位置。這樣,對于首字下沉的段落,如果下沉字符的底部低于該 段末行文字底部,則根據(jù)本發(fā)明實施例的技術方案,下一段落的首行與下沉字 符的底部在高度方向上間隔一個段間距,由此避免了當前排版行在高度方向上 與下沉字符發(fā)生平齊,使版面文字不至于產生錯位,從而具有良好的視覺效果。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及 其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1、一種排版方法,應用于包含兩個以上段落的排版區(qū)域,其特征在于,所述方法包括對當前排版行所屬段落的上一段落以及當前排版行進行判斷,如果當前排版行所屬段落的上一段落為首字下沉段落并且當前排版行是其所屬段落首行,則判斷所述首字下沉段落的下沉字符底部位置是否低于該段的末行字符底部位置,若是,則確定當前排版行的可排區(qū)域在高度方向的起始位置是與所述下沉字符底部的距離等于段間距的位置,若否,則確定所述起始位置是與所述首字下沉段落末行字符底部的距離等于段間距的位置;在所述可排區(qū)域內的高度方向上從所述起始位置開始編排所述當前排版行的字符。
2、 根據(jù)權利要求1所述的方法,其特征在于,還包括 根據(jù)設置的下沉字符的高度字號和寬度字號編排所述上一段落的下沉字符。
3、 根據(jù)權利要求1所述的方法,其特征在于,還包括 根據(jù)設置的行高倍數(shù)編排所述上一段落的下沉字符,該行高倍數(shù)是下沉字符排版高度與該段落的行高相比的倍數(shù)。
4、 根據(jù)權利要求3所述的方法,其特征在于,所述根據(jù)設置的行高倍數(shù) 編排首字下沉段落的下沉字符包括根據(jù)所述行高倍數(shù)確定下沉字符的排版高度和排版寬度; 根據(jù)所述下沉字符排版高度和排版寬度確定所述首字下沉段落的排版位置。
5、 根據(jù)權利要求4所述的方法,其特征在于,所述根據(jù)所述行高倍數(shù)確定下沉字符的排版高度和排版寬度包括根據(jù)首字下沉的段落內的下沉字符原始高度、首字下沉的段落的行間距和所述行高倍數(shù)得出下沉字符排版高度和下沉字符縮放比例;根據(jù)下沉字符縮放比例和下沉字符原始寬度得出下沉字符排版寬度。
6、 根據(jù)權利要求5所述的方法,其特征在于,所述得出下沉字符排版高 度和下沉字符縮放比例包括根據(jù)如下公式計算下沉字符排版高度=下沉字符原始高度x所述行高倍數(shù)+所述行間距x (所述行高倍數(shù)-l),下沉字符縮放比例=下沉字符排版高度+下沉字符原始高度;所述根據(jù)下沉字符縮放比例和下沉字符原始寬度得出下沉字符排版寬度 包括根據(jù)如下公式計算下沉字符排版寬度=下沉字符原始寬度x下沉字符縮放比例。
7、 一種排版裝置,其特征在于,包括第一判斷模塊,用于判斷當前排版行所屬段落的上一段落是否為首字下沉 段落以及當前排版行是否為其所屬段落的首行;第二判斷模塊,用于若當前排版行所屬段落的上一段落為首字下沉段落并且當前排版行是其所屬段落的首行,則判斷所述首字下沉段落的下沉字符底部 位置是否低于該段的末行字符底部位置;第一確定模塊,用于若第二判斷模塊判斷所述首字下沉段落的下沉字符底 部位置低于該段的末行字符底部位置,則確定當前排版行的可排區(qū)域在高度方 向的起始位置是與所述下沉字符底部的距離等于段間距的位置;第二確定模塊,用于若第二判斷模塊判斷所述首字下沉段落的下沉字符底 部位置不低于該段的末行字符底部位置,則確定當前排版行的可排區(qū)域在高度 方向的起始位置是與所述首字下沉段落末行字符底部的距離等于段間距的位置;編排模塊,用于在所述可排區(qū)域內的高度方向上從所述起始位置開始編排所述當前排版行的字符。
8、 根據(jù)權利要求7所述的裝置,其特征在于,進一步包括字號存儲模塊, 用于存儲所述首字下沉段落的下沉字符的高度字號和寬度字號;所述編排模塊進一步用于若所述上一段落為首字下沉段落,則根據(jù)字號存 儲模塊存儲的下沉字符的高度字號和寬度字號編排該段落的下沉字符。
9、 根據(jù)權利要求7所述的裝置,其特征在于,進一步包括行高存儲模塊, 用于存儲設置的行高倍數(shù),該行高倍數(shù)是下沉字符排版高度與該段落的行高相 比的4咅凄史;所述編排模塊包括高寬確定子模塊,用于根據(jù)所述行高倍數(shù)確定下沉字符的排版高度和排版 寬度;排版位置確定子模塊,用于根據(jù)所述下沉字符排版高度和排版寬度確定所 述首字下沉段落的排版位置。
10、 根據(jù)權利要求9所述的裝置,其特征在于,所述高寬確定子模塊包括 第一計算單元,用于根據(jù)首字下沉的段落內的下沉字符原始高度、首字下沉的段落的行間距和所述行高倍數(shù)得出下沉字符排版高度和下沉字符縮放比 例;第二計算單元,用于根據(jù)下沉字符縮放比例和下沉字符原始寬度得出下沉 字符排版寬度。
全文摘要
本發(fā)明公開了一種排版的方法和裝置,以解決現(xiàn)有技術中在設置了首字下沉之后出現(xiàn)版面錯亂的問題。實施例中對當前排版行所屬段落的上一段落以及當前排版行進行判斷,如果當前排版行所屬段落的上一段落為首字下沉段落并且當前排版行是其所屬段落首行,則判斷所述首字下沉段落的下沉字符底部位置是否低于該段的末行字符底部位置,若是,則確定當前排版行的可排區(qū)域在高度方向的起始位置是與所述下沉字符底部的距離等于段間距的位置,若否,則確定所述起始位置是與所述首字下沉段落末行字符底部的距離等于段間距的位置;在所述可排區(qū)域內的高度方向上從所述起始位置開始編排所述當前排版行的字符。
文檔編號G06F17/25GK101419591SQ200810240309
公開日2009年4月29日 申請日期2008年12月17日 優(yōu)先權日2008年12月17日
發(fā)明者楊燕菲 申請人:北大方正集團有限公司;北京北大方正電子有限公司