電子文檔保存為EPUB格式。
[0092]如圖1所示,一種跨媒體自動(dòng)排版方法,具體包括如下步驟:
[0093]步驟1、創(chuàng)建開版
[0094]所述的開版模塊能夠依據(jù)媒體終端類別,確定閱讀器當(dāng)前版面的尺寸、分欄、邊距、出血、輔助線;根據(jù)已確定的版面尺寸、邊距確定正文字體字號(hào)、標(biāo)題字體字號(hào),從而根據(jù)字號(hào)確定行距、段前距與段后距,同時(shí)根據(jù)已確定的版面尺寸確定圖像繞排方式;
[0095]如圖2所示,根據(jù)輸出目的創(chuàng)建版面類型及字號(hào)的過程如下:
[0096]1-1.對(duì)于不同的媒體終端,確定其不同的版面尺寸;不同的媒體終端包括iPad、iPhone和紙質(zhì)書籍;具體的:iPad尺寸為2048X1536px,iPhone尺寸為960 X 640px,紙質(zhì)書籍開本尺寸為185 X 260mm。
[0097]1-2.對(duì)于iPad、iPhone數(shù)字出版物無需設(shè)定出血、輔助線,而對(duì)于書籍紙質(zhì)出版物需設(shè)定相應(yīng)的出血與輔助線;對(duì)于非打印的出版物只需設(shè)定單頁,而對(duì)于需打印的書籍出版物需設(shè)定雙頁。
[0098]1-3.根據(jù)多次試驗(yàn)與視覺對(duì)比,給iPad、iPhone、紙質(zhì)書籍分別創(chuàng)建了一套較合適的正文字體字號(hào)、標(biāo)題字體字號(hào)、題注字體字號(hào)。
[0099]1-3-1.對(duì)于iPad、iPhone、紙質(zhì)書籍的段落樣式,其確定方法如下:
[0100]獲取正文字體字號(hào)stlzw.pointSize,則行距 stlzw.leading 如下:stlzw.leading = stlzw.pointSize X 1.5,一級(jí)標(biāo)題的段前距 stlBTl.spaceBefore 和段后距 stlBTl.spaceAfter 分別為:stlBTl.spaceBefore = stlzw.1eadingXn ;stlBTl.spaceAfter = tlzw.1eadingXm ; 二級(jí)標(biāo)題的段前距 stlBT2.spaceBefore 與段后距stlBT2.spaceAfter 分別為:stlBT2.spaceBefore = stlzw.leadingXn/2 ;stlBT2.spaceAfter = stlzw.leadingXm/2 ;三級(jí)標(biāo)題的段前距 stlBT3.spaceBefore 與段后距 stlBT3.spaceAfter 分別為:stlBT3.spaceBefore = stlzw.leadingXn/3 ;stlBT3.spaceAfter = stlzw.leadingXm/3,以此類推。
[0101]1-4.自定義的版面尺寸wXh,需與iPad、iPhone、紙質(zhì)書籍三種版面尺寸進(jìn)行比較。獲取iPad的版面尺寸waXha,iPhone的版面尺寸WciXhci,紙質(zhì)書籍的版面尺寸為WbXhb;具體比較方法包括:
[0102]1-4-1.若wXh彡wbXhb,其段落樣式以紙質(zhì)書籍的段落樣式為準(zhǔn)。
[0103]1-4-2.若wXh〈wbXhb且wXh彡w aXha,其段落樣式以iPad媒體的段落樣式為準(zhǔn)。
[0104]1-4-3.若wXh〈waXhJ^L wXh彡WciXhci,其段落樣式以iPhone媒體的段落樣式為準(zhǔn)。
[0105]1-5.根據(jù)多次試驗(yàn)與視覺對(duì)比,給iPad、iPhone、紙質(zhì)書籍分別創(chuàng)建一套對(duì)象樣式。對(duì)于自定義的版面尺寸wXh,則與iPad、iPhone、紙質(zhì)書籍三種版面尺寸進(jìn)行比較。獲取iPad的版面尺寸waXha,iPhone的版面尺寸WciXhci,紙質(zhì)書籍的版面尺寸為wbXhb。具體比較方法包括:
[0106]1-5-1.若wXh彡WbXhb,其對(duì)象樣式以紙質(zhì)書籍的對(duì)象樣式為準(zhǔn)。
[0107]1-5-2.若wXh〈wbXhb且wXh彡w aXha,其對(duì)象樣式以iPad媒體的對(duì)象樣式為準(zhǔn)。
[0108]1-5-3.若wXh〈waXhJ^L wXh彡WciXhci,其對(duì)象樣式以iPhone媒體的對(duì)象樣式為準(zhǔn)。
[0109]步驟2、建立自適應(yīng)映射
[0110]根據(jù)欲排版模板中各個(gè)對(duì)象所設(shè)定的標(biāo)簽信息,確定出各個(gè)對(duì)象的樣式(包括對(duì)象樣式和段落樣式),并將標(biāo)簽信息與對(duì)應(yīng)的樣式逐一映射,最終將標(biāo)簽信息與樣式緊密聯(lián)系,為自動(dòng)放入閱讀器頁面做鋪墊。
[0111]如圖3所示,標(biāo)簽信息與樣式自適應(yīng)映射具體步驟如下:
[0112]2-1.自動(dòng)獲取XML標(biāo)簽信息,包括標(biāo)題、正文、圖像、圖注,每一條標(biāo)簽都有自己的署名,具體的標(biāo)簽署名為標(biāo)題BT、正文ZW、圖像Image、圖注Capt1ns。
[0113]2-2.根據(jù)標(biāo)簽的署名尋找同命名的樣式,例如標(biāo)題BT尋找對(duì)應(yīng)的段落樣式BT,正文ZW尋找對(duì)應(yīng)的段落樣式ZW,圖像Image尋找相對(duì)應(yīng)的對(duì)象樣式Image。
[0114]2-3.將標(biāo)簽信息與同命名的樣式進(jìn)行映射,即將同命名的樣式映射到相對(duì)應(yīng)的XML標(biāo)簽。
[0115]步驟3、進(jìn)行自適應(yīng)排版
[0116]自適應(yīng)排版模塊根據(jù)已映射的欲排版模板中各對(duì)象所設(shè)定的標(biāo)簽信息,通過設(shè)定選項(xiàng),將標(biāo)簽信息自動(dòng)排入所述欲排版模板對(duì)應(yīng)的模塊中。XML標(biāo)簽需從數(shù)據(jù)庫中獲取,圖像需從圖像素材庫中獲取。
[0117]如圖4所示,將標(biāo)簽信息自動(dòng)排版至已設(shè)定欲排版模板的版面中,其具體如下:
[0118]3-1.從數(shù)據(jù)庫中自動(dòng)導(dǎo)入XML結(jié)構(gòu)文檔,獲得XML標(biāo)簽個(gè)數(shù),計(jì)算標(biāo)簽總數(shù)。
[0119]3-2.按順序讀取標(biāo)簽,判斷標(biāo)簽類型,若標(biāo)簽為文本標(biāo)簽,具體操作如下:
[0120]3-2-1.提取文本標(biāo)簽信息,選擇欲排版模塊,自動(dòng)排入?yún)^(qū)域中,并應(yīng)用同署名的段落樣式。
[0121]3-2-2.自動(dòng)反饋排入?yún)^(qū)域的文本信息,判斷是否出現(xiàn)如下不規(guī)范問題:文本背題、標(biāo)點(diǎn)避頭尾、單字、單行,并及時(shí)解決出現(xiàn)的問題,具體操作如下:
[0122]3-2-2-1.自動(dòng)查詢是否有少于一個(gè)單字成一行,當(dāng)為單字成行時(shí),判斷單字字符數(shù)值,若大于4個(gè)字符數(shù),加大上行的字間距,將上行分離的字符移動(dòng)到該行;反之,利用標(biāo)點(diǎn)擠壓方式減少上行的字間距,將該行的字符移動(dòng)到上行;
[0123]3-2-2-2.自動(dòng)查詢欲排版模塊中是否有一頁或一個(gè)模塊起始段落只有一行內(nèi)容,當(dāng)為單行成頁時(shí),先定位于前一段落,并調(diào)整該段落的行距,逐步調(diào)整直至將內(nèi)容縮至前一段;若行間距超出該范圍,再需往上定位,并調(diào)整該段落行間距,逐步調(diào)整直至將內(nèi)容縮至前一段;以此類推,需將單行內(nèi)容縮至前一段;
[0124]3-2-2-3.自動(dòng)查詢指定的標(biāo)題和標(biāo)題后銜接的內(nèi)容是否在同一頁或同一模塊中,當(dāng)背題的標(biāo)題在頁末,增大標(biāo)題的段前距,將標(biāo)題放置于下一頁或下一模塊中;
[0125]3-2-2-4.自動(dòng)查詢已排的文本信息中標(biāo)點(diǎn)是否存在行首,以及‘和“兩個(gè)標(biāo)點(diǎn)符號(hào)是否存在行尾;當(dāng)出現(xiàn)不當(dāng)?shù)臉?biāo)點(diǎn)時(shí),增大上行的字間距,將上一行的字符移動(dòng)到該行,從而減少上行的字間距或標(biāo)點(diǎn)擠壓,將該行的字符移動(dòng)到上一行;
[0126]3-3.繼續(xù)讀取下一標(biāo)簽,判斷標(biāo)簽類型,若標(biāo)簽為圖像標(biāo)簽,具體操作如下:
[0127]3-3-1.提取圖像標(biāo)簽信息,選擇欲排版模塊,并通過圖像數(shù)據(jù)庫獲得圖像原始尺寸。
[0128]3-3-2.根據(jù)讀取光標(biāo)位置回車符,確定欲排版模塊的剩余空間位置高度Y,判斷圖像是否能夠置入剩余空間中。若獲取圖像高度Yl大于剩余空間位置的高度Y,則需判斷剩余空間位置的行數(shù)X,其判斷結(jié)果如下:
[0129]若XC臨界行數(shù)時(shí),圖像自動(dòng)跳到下一頁,將下一段文字自動(dòng)編排在圖像之前;
[0130]若X〉臨界行數(shù)時(shí),圖像則根據(jù)適當(dāng)?shù)谋壤M(jìn)行調(diào)整,直至圖像能排放在剩余空間位置中。
[0131]3-3-3.根據(jù)欲排版模塊剩余空間位置來判斷圖像縮放比例。其具體操作如下:
[0132]3-3-3-1.獲取正文行距b,圖像上下間距Y3,題注尺寸為W2XY2,可排模塊的剩余空間尺寸為wX (Y-Y2-Y3),即可排模塊的剩余空間高度為R = Y-Y2-Y3,圖像原始尺寸為
W1XY10
[0133]3-3-3-2.當(dāng)X〉臨界行數(shù)時(shí),圖像原始尺寸與可排模塊的剩余空間高度R進(jìn)行比較,其具體比較過程如下:
[0134]a.當(dāng)心^且…?時(shí),若圖像所占空間大于可排模塊的剩余空間高度的比例值nl,則圖像的處理方法只需將Y1被正文行距b整除得I,再將圖像高度修改為Y d= bX 1,從而算出縮放比例系數(shù)k。= Y /Y1,并得到圖像縮放后的尺寸YdX (W1Xkc)。而當(dāng)圖像所占空間小于可排模塊的剩余空間高度的比例值nl,則圖像的處理方法需分別計(jì)算1^與k 2;其中k i為剩余空間高度百分比與圖像高度的比例;k2為剩余空間寬度百分比與圖像寬度的比例,BP kj= n% XR/Y 2= n% Xw/w 1D獲得1^與k 2后,比較k:與k 2的大小,若k ^k2,選擇其系數(shù)Ic1,則初次修改后圖像高度Yc = Y1 Xk1,并讓行距b整除Y。得1,將圖像高度修改為Yd= bXl,從而算出縮放比例系數(shù)k。= Y /Y1,并得到圖像縮放后的尺寸YdX (W1XkJ。反之,選擇其系數(shù)k2,利用上述同樣方法得到圖像縮放尺寸YdX (W1Xkc)。
[0135]b.當(dāng)1?〈¥1且w彡w:時(shí),計(jì)算系數(shù)k':,k' ι為可排模塊剩余空間高度與圖像高度的比例,k' != R/Y1;則初次修改后圖像高度Yc = Y i X V i,再將Y。被行距b整除得I,并將圖像高度修改為Yd= bXl,從而算出縮放比例系數(shù)I=YdA1,并得到圖像縮放后的尺+ YdX (W1Xkc)0
[0136]c.當(dāng)1?彡¥1且¥〈'\¥1時(shí),計(jì)算其系數(shù)1^/ 2= w/w:,則初次修改后圖像高度Yc =Y1X V 2,再將Y。被行距b整除得1,并將圖像高度修改為Y d= b X 1,從而算出縮放比例系Iikc=Y JY1,并得到圖像縮放后的尺寸YdX (W1X kc)。
[0137]d.當(dāng)尺〈丫1且 w〈w 丨時(shí),計(jì)算其系數(shù) k' 2= w/w ^ k' ^!^/^,獲得!^ Ak' 2后,比較k' 1與1^ 2的大小,若k