專利名稱:文件編輯中的對象位置處理方法
技術領域:
本發明涉及一種文件編輯中的對象位置處理方法,尤其是一種在文件編輯中,自動將對象設置于指定位置的處理方法。
背景技術:
在文件編輯中,由于文件格式的需要,經常需要將某些對象置于指定的位置,例如,我國國家標準《GB/T 9704-1999國家行政機關公文格式》嚴格規定了政府公文的組成和排版要求,公文由眉首、主體、版記三部分組成置于公文首頁紅色反線以上的各要素統稱眉首;置于紅色反線(不含)以下至主題詞(不含)之間的各要素統稱主體;置于主題詞以下的各要素統稱版記。眉首,置于公文首頁紅色反線以上的各要素;主體,置于紅色反線(不含)以下至主題詞(不含)之間的各要素;版記,置于主題詞以下的各要素。按照排列順序,版記包含的內容依次為主題詞、抄送機關、發文機關和發文日期、版記中的反線、版記的位置等部分。對于版記的排版位置要求為版記應置于公文最后一面,版記的最后一個要素置于最后一行。所謂“最后一面”對應文字處理軟件就是偶數頁,如第2、4頁,因為公文首頁一般是奇數頁,如第1頁;所謂“最后一行”就是相當于和頁邊距底端對齊。
現有文字處理軟件中,在用戶編輯導致內容變化時,文字處理軟件會逐一地對每個發生變化的頁面進行重新布局;在對頁面布局時,是逐一地對發生變化的段落進行布局的;在對段落布局時,是先對段落中的文本進行布局,然后對發生坐標變化的段落中的對象進行布局,根據對象的水平對齊屬性和垂直對齊屬性調整對象的坐標。在這種方案中,對象前的內容增減會導致對象位置的變化,當用戶希望將對象定位于特定頁面時,變化后的對象位置往往不符合預先的定位,此時還需通過手工對對象重新定位。例如,再插入版記時,利用自由表格的現有“垂直定位到頁面下邊距”功能將版記定位到公文最后一頁的底邊,如果對公文進行編輯,導致內容的增加或減少,那么版記所在的頁面也會隨著變化,如果公文最后一頁是偶數頁,則不需要特殊處理,符合公文標準的“最后一面”要求;如果公文最后一頁是奇數頁,那么用戶必須在版記前手工插入一“分頁符”,將版記移動到下一頁以符合“最后一面”的要求。
因此,現有的方法雖然在一定程度上可以滿足用戶的需求,但還是存在一定的缺陷無法自動保證對象位于指定頁面,必須輔助以用戶的手工調節,特別是,每次當文件頁數發生變化時,都要對對象的位置進行再次調整,這會嚴重影響用戶的工作效率。
發明內容
本發明的目的在于針對現有技術所存在的缺陷,提供一種文件編輯中的對象位置處理方法,該方法能自動調整對象的位置,實現將對象置于指定頁面。
為了實現上述目的,本發明提供了一種文件編輯中的對象位置處理方法,其中在對段落中的對象進行布局時,執行以下步驟步驟1、布局程序取得對象的水平對齊屬性,按照所述水平對齊屬性調整所述對象的水平坐標;步驟2、所述布局程序取得所述對象的垂直對齊屬性,判斷所述對象是否具有預先設定的定位屬性參數,若有,執行步驟3;否則,執行步驟4;步驟3、所述布局程序按照所述定位屬性參數,調整所述對象的垂直坐標;步驟4、所述布局程序按照所述垂直對齊屬性中的垂直位置參數,調整所述對象的垂直坐標;步驟5、結束。
在上述技術方案中,當定位屬性參數表明將所述對象定位于文件的最后一個頁面時,所述步驟3具體為所述布局程序刪除所述對象前的所有空白頁面;所述布局程序判斷所述對象是否位于所述文件的最后一面,若是,執行步驟5,否則,所述布局程序在所述文件中插入一空白頁面,調整所述對象位于所述文件的最后一面,執行步驟5。
當定位屬性參數表明將所述對象定位于所述文件中的一指定頁面,所述步驟3具體為所述布局程序刪除所屬對象前的空白頁面;所述布局程序判斷所述對象是否位于所述指定頁面,若是,執行步驟5,否則所述布局程序判斷所述文件中是否存在所述指定頁面,若存在,所述布局程序將所述對象移動到所述指定頁面,執行步驟5,否則,所述布局程序在所述文件的最后增加空白頁面,使所述文件的總頁數等于所述指定頁面的編碼,并將所述對象移動到所述指定頁面,執行步驟5;或者,所述布局程序判斷所述對象是否位于所述指定頁面,若是,執行步驟5,否則,所述布局程序判斷所述文件中是否存在所述指定頁面,若存在,所述布局程序將所述對象移動到所述指定頁面,判斷所述對象后是否存在空白頁面,若存在,刪除所屬對象后的空白頁面,執行步驟5,否則,執行步驟5,若所述文件中不存在所述指定頁面,所述布局程序在所述文件后增加空白頁面,使所述文件的總頁數等于所述指定頁面的編碼,并將所述對象移動到所述指定頁面,執行步驟5。
當定位屬性既可以是表明將所述對象定位于所述文件的最后一面,也可以使表明將所述對象定位于所述文件的指定頁面時,所述步驟3具體為步驟340、所述布局程序刪除所述對象前的空白頁;步驟341、所述布局程序判斷所述對象的定位屬性參數是否表明將所屬對象定位于最后一面,若是,執行步驟350,否則,執行步驟360;步驟350、所述布局程序判斷所述對象是否位于所述文件的最后一面,若是,執行步驟5;否則,執行步驟351;步驟351、所述布局程序在所述對象前插入空白頁面,執行步驟5;步驟360、所述布局程序判斷所述對象是否位于所述指定頁面,若是,執行步驟5,否則執行步驟361;步驟361、所述布局程序判斷所述文件中是否存在所述指定頁面,若存在,執行步驟362,否則,執行步驟363;步驟362、所述布局程序將所述對象移動到所述指定頁面,執行步驟5;步驟363、所述布局程序在所述文件的最后增加空白頁面,使所述文件的總頁數等于所述指定頁面的編碼,并將所述對象移動到所述指定頁面,執行步驟5。
本發明的技術方案實現了在文件編輯過程中,如果對象之前的內容發生變化,布局程序能根據用戶設定的定位屬性參數,自動將對象調整到用戶期望的位置,從而使用戶對文件的編輯更為方便和靈活。
下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
圖1a和圖1b為本發明文字編輯中的對象位置處理方法實施例一流程圖。
圖2為本發明文字編輯中的對象位置處理方法實施例二流程圖。
圖3為本發明文字編輯中的對象位置處理方法實施例三流程圖。
圖4a和圖4b為本發明文字編輯中的對象位置處理方法實施例四流程圖。
具體實施例方式
本發明對傳統文字處理布局算法進行改進,增加將對象“定位于指定頁”的功能,從而可以保證將對象位于特定頁面,實現對象位置的自動化調整,保證無論文件內容如何變化,對象必定位于用戶指定的頁面。
對所有需要特殊定位的對象增加一個定位屬性參數,用于引導布局程序進入特殊定位布局流程,以根據該定位屬性參數將對象定位于指定頁。
對現有的位置處理算法進行改進,普通對象按照通用流程處理,“特殊定位”對象需要進入特殊定位流程。
實施例一本實施例中,為用戶提供將對象定位于“最后一面”的功能,在用戶通過設置定位屬性參數時,只提供“最后一面”選項,用戶通過選擇該選項,將對象設置為位于“最后一面”。在本發明中,將“最后一面”定義為文件的最后一頁,并且該頁為偶數頁,特別適用于公文中的版記對象。布局程序在布局時,根據對象的該屬性,對對象的位置進行調整,若對象位于奇數頁,則在對象前插入一空白頁,以使對象總是位于文件的最后一面。如圖1a和圖1b所示,為本實施例流程圖,其中A、B兩處為兩圖的連接處,本實施例的方法包括以下步驟步驟101、用戶設定對象的定位屬性參數;用戶在設定公文中的版記對象的位置參數時,設定垂直對齊屬性中的定位屬性參數為“最后一面”。
步驟102、在用戶編輯文件,導致對象前的內容變化時,文件編輯進程向布局程序發出布局指令;如果用戶對文檔內容進行編輯,會引起對象前面的內容增加或者減少,如刪去一個表格,會導致表格后的對象向上移動,首先對頁面按照普通的布局流程對頁面進行布局,然后對具有定位屬性參數的對象按照相應的特殊布局處理流程處理,普通對象可能會因為文檔內容的減少移動到新的頁面,對于具有“定位屬性參數”的對象,布局程序會通過相應的特殊布局處理流程將對象調整到正確的位置。
步驟103、布局程序接收到布局指令后,從編輯點所在頁開始,對發生變化的頁面進行布局;布局程序對發生變化的頁面逐一進行重新布局。
步驟104、布局程序取得發生變化的,并且待重新布局的一個頁面;步驟105、布局程序取得該頁面中發生變化的,并且待重新布局的一個段落;
步驟106、布局程序對該段落中的文本進行布局;步驟107、布局程序判斷該段落的坐標是否發生了變化,若發生了變化,執行步驟110;否則執行步驟120;步驟110、布局程序取得當前段落待布局的一個對象;步驟111、布局程序取得對象的水平對齊屬性,按照對象的水平對齊屬性調整對象的水平坐標;步驟112、布局程序取得對象的垂直對齊屬性;步驟113、布局程序判斷對象是否為具有“定位屬性參數”的對象,若是,執行步驟114,否則,執行步驟118;用戶若沒有對對象的定位屬性參數進行設定,那么該對象就不具有定位屬性參數;用戶若對對象的定位屬性參數進行了設定,由于只提供了“最后一面”選項,因此,該對象是應該位于文件最后一面的對象。
步驟114、布局程序判斷對象是否符合定位屬性參數,若是,執行步驟119;否則,執行步驟115;用戶設置對象的定位屬性為“最后一面”,因此此步驟即判斷對象是否位于最后一面,在用戶設置對象的定位屬性參數為“最后一面”后,文字處理程序將不允許在該對象后面增加內容,對對象前的內容進行編輯時,對象會一直位于文件的最后,但有可能由于前面內容的增加或減少而移動到奇數頁,若對象在奇數頁,則需插入一空白頁,若對象在偶數頁則不需調整。
步驟115、布局程序判斷對象前是否存在空白頁,若存在,執行步驟116,否則,執行步驟117;步驟116、刪除對象前的所有空白頁;空白頁與插入分頁符生成新頁是不同的,插入分頁符會引起編輯段落對象的變化,可能出現在文件的任何位置,而本方法中的空白頁只會在文件頁數不滿足要求時出現在文件的最后一頁之前。
先將對象前的空白頁刪除,從而避免對象前有多余的空白頁,即如果對象位于奇數頁,并且在此之前,為了保證對象位于最后一面,已經添加了空白頁,而由于用戶添加或減少了內容,使對象再次位于奇數頁,那么為了保證對象位于最后一面,就要再插入一個頁面,從而導致對象所在頁之前有兩個空白頁,若在添加空白頁之前先將對象前的空白頁刪除,那么此時,對象正好位于偶數頁,不需再插入空白頁,從而就不會出現對象前有多余空白頁的情況。
步驟117、布局程序在對象前插入一空白頁面,執行步驟119;本步驟中,也可在文件最后插入一空白頁,然后將對象移動到最后一面。
步驟118、布局程序按照定位屬性參數之外的垂直位置參數調整對象的垂直坐標;例如,垂直位置參數為“垂直絕對位置”為距頁面下側3厘米,那么就將對象調整到距當前頁下側3厘米的位置,再如,垂直位置參數為“相對位置”為相對段落居中,那么就將對象調整到當前段落的中部。
步驟119、布局程序判斷當前段是否存在待布局的對象,若存在,執行步驟110,否則,執行步驟120;步驟120、布局程序判斷當前頁是否存在待布局的段落,若存在,執行步驟105,否則,執行步驟121;步驟121、布局程序判斷是否存在待布局的頁面,若存在,執行步驟104,否則,執行步驟123;步驟122、結束。
本實施例實現了將對象定位于文件的最后一面,從而在用戶設置公文中的版記時,可以保證版記對象總是位于最后一面,而不需輔以手工調整。
實施例二本實施例中,為用戶提供將對象定位于“指定頁面”的功能,在用戶通過設置定位屬性參數時,只提供“指定頁面”選項,并允許用戶輸入指定頁面的頁碼,用戶通過選擇該選項以及輸入指定頁面的頁碼,可將對象設置為位于“指定頁面”。在布局程序布局的過程中,根據該參數自動實現對象的正確定位。
由于本實施例與實施例一的定位屬性參數不同,實施例一為“最后一面”,而本實施例為可指定頁碼的“指定頁面”,因此,在布局過程中,本實施例的步驟與實施例一的步驟的區別在于對對象布局的流程不同實施例一是通過步驟115至步驟117實現了將對象定位于最后一面,而本實施例是通過如下步驟實現將對象定位于指定頁面。本實施例的其他步驟與實施例一相同。因此如圖2所示,僅給出了本實施例將對象定位于指定頁面的流程圖,在布局程序判斷對象不符合定位屬性參數,即不再指定頁面時,需要對對象進行調整,執行以下步驟步驟201、布局程序判斷對象前是否存在空白頁,若存在,執行步驟202,否則,執行步驟203;步驟202、刪除對象前的所有空白頁;步驟203、布局程序判斷文件中是否包含指定頁面,若是,執行步驟204,否則,執行步驟205;例如,用戶在設定參數時,設定對象位于文件的第3頁,而文件總頁數為6頁,那么,文件中就包含第3頁,若文件總共只有2頁,那么文件中就不包含第3頁。
步驟204、布局程序將對象移動到指定頁面,執行步驟206;當文件中包含指定頁時,布局程序直接將對象移動到指定頁面。
步驟205、布局程序在文件的最后增加空白頁面,使文件的總頁數等于指定頁面的編碼,并將對象移動到指定頁面,執行步驟206。
例如,文件共有3頁,指定頁面為第6頁,那么需要在文件最后添加3個空白頁面,使文件共有6頁,然后將對象移動到第6頁。
步驟206、布局程序完成根據定位屬性參數對當前對象的定位調整。
本實施例實現了將對象定位于文件的指定頁面,從而在用戶設置特定對象時,可以保證對象總是位于該指定頁面,而不需輔以手工調整。
實施例三本實施例中,仍為用戶提供將對象定位于“指定頁面”的功能,與實施例二的不同之處在于,在布局程序判斷對象不是位于指定頁面時,并不先將對象前的所有空白頁刪除,而是在后續的處理中,刪除不需要空白頁。如圖3所示,為本實施例將對象定位于指定頁面的流程圖,執行以下步驟步驟301、布局程序判斷文件中是否包含指定頁面,若是,執行步驟302,否則,執行步驟305;步驟302、布局程序將對象移動到指定頁面;步驟303、布局程序判斷對象后是否存在空白頁面,若存在,執行步驟304,否則,對該對象的操作完成;步驟304、布局程序刪除對象后的空白頁,對該對象的操作完成;步驟305、布局程序在文件的最后增加空白頁面,使文件的總頁數等于指定頁面的編碼,并將對象移動到指定頁面,對該對象的操作完成。
步驟306、布局程序完成根據定位屬性參數對當前對象的定位調整。
實施例四本實施例中,在用戶設置“定位屬性參數”時,既為用戶提供將對象定位于“最后一面”的選項,也為用戶提供將對象定位于“指定頁面”的選項。如圖4a和圖4b所示,為本實施例流程圖,其中C、D兩處為兩圖的連接處,本實施例的方法執行以下步驟步驟401、用戶設定對象的定位屬性參數;步驟402、在用戶編輯文件,導致對象前的內容變化時,文件編輯進程向布局程序發出布局指令;步驟403、布局程序接收到布局指令后,從編輯點所在頁開始,對發生變化的頁面進行布局;步驟404、布局程序取得發生變化的,并且待重新布局的一個頁面;
步驟405、布局程序取得該頁面中發生變化的,并且待重新布局的一個段落;步驟406、布局程序對該段落中的文本進行布局;步驟407、布局程序判斷該段落的坐標是否發生了變化,若發生了變化,執行步驟410;否則執行步驟440;步驟410、布局程序取得當前段落待布局的一個對象;步驟411、布局程序取得對象的水平對齊屬性,按照對象的水平對齊屬性調整對象的水平坐標;步驟412、布局程序取得對象的垂直對齊屬性;步驟413、布局程序判斷對象是否為具有“定位屬性參數”的對象,若是,執行步驟415,否則,執行步驟414;步驟414、布局程序按照定位屬性參數之外的垂直對齊屬性調整對象的垂直坐標,執行步驟;步驟415、布局程序判斷對象前是否存在空白頁面,若存在,執行步驟416,否則,執行步驟417;步驟416、布局程序刪除對象前的空白頁;步驟417、布局程序判斷對象的“定位屬性參數”是否為“最后一面”,若是,執行步驟420,否則,執行步驟430;判斷“定位屬性參數”是“最后一面”,還是“指定頁面”,若是“最后一面”則按照“最后一面”的流程對對象進行布局,若是“指定頁面”則按照“指定頁面”的流程進行布局。
步驟420、布局程序判斷對象是否位于文件的最后一面,若是,執行步驟440;否則,執行步驟421;步驟421、布局程序在對象前插入一空白頁,執行步驟440;步驟430、布局程序判斷對象是否位于指定頁面,若是,執行步驟440,否則執行步驟431;
步驟431、布局程序判斷文件中是否包含指定頁面,若是,執行步驟432,否則,執行步驟433;步驟432、布局程序將對象移動到指定頁面,執行步驟440;步驟433、布局程序在文件的最后增加空白頁面,使文件的總頁數等于指定頁面的編碼,并將對象移動到指定頁面;步驟418、布局程序判斷當前段是否存在待布局的對象,若存在,執行步驟410,否則,執行步驟440;步驟440、布局程序判斷當前頁是否存在待布局的段落,若存在,執行步驟405,否則,執行步驟440;步驟441、布局程序判斷是否存在待布局的頁面,若存在,執行步驟404,否則,執行步驟442;步驟442、結束。
本實施例實現了為用戶提供多種定位屬性參數選擇,用戶既可以將對象設定為位于“最后一面”,也可以將對象設定為位于“指定頁面”,從而更加方便了用戶的使用。
最后應當說明的是以上實施例僅用以說明本發明的技術方案而非對其限制;盡管參照較佳實施例對本發明進行了詳細的說明,所述領域的普通技術人員應當理解,依然可以對本發明的具體實施方式
進行修改或者對部分技術特征進行等同替換;而不脫離本發明技術方案的精神,其均應涵蓋在本發明請求保護的技術方案范圍當中。
權利要求
1.一種文件編輯中的對象位置處理方法,其中在對段落中的對象進行布局時,執行以下步驟步驟1、布局程序取得對象的水平對齊屬性,按照所述水平對齊屬性調整所述對象的水平坐標;步驟2、所述布局程序取得所述對象的垂直對齊屬性,判斷所述對象是否具有預先設定的定位屬性參數,若有,執行步驟3;否則,執行步驟4;步驟3、所述布局程序按照所述定位屬性參數,調整所述對象的垂直坐標;步驟4、所述布局程序按照所述垂直對齊屬性中的垂直位置參數,調整所述對象的垂直坐標;步驟5、所述布局程序完成對所述對象的布局。
2.根據權利要求1所述的方法,其中所述步驟2中的定位屬性參數表明將所述對象定位于文件的最后一個頁面時,所述步驟3具體為步驟310、所述布局程序刪除所述對象前的所有空白頁面;步驟311、所述布局程序判斷所述對象是否位于所述文件的最后一面,若是,執行步驟5,否則,執行步驟312;步驟312、所述布局程序在所述文件中插入一空白頁面,調整所述對象位于所述文件的最后一面,執行步驟5。
3.根據權利要求2所述的方法,其中所述步驟312具體為所述布局程序在所述對象前插入一空白頁面,使所述對象位于所述文件的最后一面,執行步驟5。
4.根據權利要求2所述的方法,其中所述步驟312具體為所述布局程序在所述文件最后插入一空白頁面,并將所述對象移動到該空白頁面,執行步驟5。
5.根據權利要求1所述的方法,其中所述步驟2中的定位屬性參數表明將所述對象定位于所述文件中的一指定頁面時,所述步驟3具體為步驟320、所述布局程序刪除所屬對象前的空白頁面;步驟321、所述布局程序判斷所述對象是否位于所述指定頁面,若是,執行步驟5,否則執行步驟322;步驟322、所述布局程序判斷所述文件中是否存在所述指定頁面,若存在,執行步驟323,否則,執行步驟324;步驟323、所述布局程序將所述對象移動到所述指定頁面,執行步驟5;步驟324、所述布局程序在所述文件的最后增加空白頁面,使所述文件的總頁數等于所述指定頁面的編碼,并將所述對象移動到所述指定頁面,執行步驟5。
6.根據權利要求1所述的方法,其中所述步驟2中的定位屬性參數表明將所述對象定位于所述文件中的一指定頁面時,所述步驟3具體為步驟330、所述布局程序判斷所述對象是否位于所述指定頁面,若是,執行步驟5,否則執行步驟331;步驟331、所述布局程序判斷所述文件中是否存在所述指定頁面,若存在,執行步驟332,否則,執行步驟335;步驟332、所述布局程序將所述對象移動到所述指定頁面;步驟333、所述布局程序判斷所述對象后是否存在空白頁面,若存在執行步驟334,否則,執行步驟5;步驟334、所述布局程序刪除所屬對象后的空白頁面;步驟335、所述布局程序在所述文件后增加空白頁面,使所述文件的總頁數等于所述指定頁面的編碼,并將所述對象移動到所述指定頁面,執行步驟5。
7.根據權利要求1所述的方法,其中所述步驟2中的定位屬性參數表明將所述對象定位于所述文件的最后一面或指定頁面時,所述步驟3具體為步驟340、所述布局程序刪除所述對象前的空白頁;步驟341、所述布局程序判斷所述對象的定位屬性參數是否表明將所屬對象定位于最后一面,若是,執行步驟350,否則,執行步驟360;步驟350、所述布局程序判斷所述對象是否位于所述文件的最后一面,若是,執行步驟5;否則,執行步驟351;步驟351、所述布局程序在所述對象前插入空白頁面,執行步驟5;步驟360、所述布局程序判斷所述對象是否位于所述指定頁面,若是,執行步驟5,否則執行步驟361;步驟361、所述布局程序判斷所述文件中是否存在所述指定頁面,若存在,執行步驟362,否則,執行步驟363;步驟362、所述布局程序將所述對象移動到所述指定頁面,執行步驟5;步驟363、所述布局程序在所述文件的最后增加空白頁面,使所述文件的總頁數等于所述指定頁面的編碼,并將所述對象移動到所述指定頁面,執行步驟5。
全文摘要
本發明涉及一種文件編輯中的對象位置處理方法,其中在對段落中的對象進行布局時,布局程序取得對象的水平對齊屬性,按照水平對齊屬性調整對象的水平坐標;布局程序取得對象的垂直對齊屬性,判斷對象是否具有預先設定的定位屬性參數,若有,布局程序按照定位屬性參數,調整對象的垂直坐標;否則,布局程序按照垂直對齊屬性中的垂直位置參數,調整對象的垂直坐標。本發明的技術方案實現了在文字編輯過程中,根據用戶設定的定位屬性參數,自動將對象調整到用戶期望的位置,如“最后一面”或“指定頁面”,從而使用戶對文件的編輯更為方便和靈活。
文檔編號G06F17/24GK1776667SQ20051013036
公開日2006年5月24日 申請日期2005年12月9日 優先權日2005年12月9日
發明者莊國林 申請人:無錫永中科技有限公司