±ß¿òÏß¼ä¾à£¬Ä¬ÈÏΪ0£¬½öÊÊÓÃÓÚ¶ÎÂä¡£ public float PaddingLeft{get;set;} ×óÄڱ߾࣬ĬÈÏΪ0¡£ public float PaddingTop{get;set;} ÉÏÄڱ߾࣬ĬÈÏΪ0¡£
public float PaddingRight{get;set;} ÓÒÄڱ߾࣬ĬÈÏΪ0¡£
public float PaddingBottom{get;set;} ÏÂÄڱ߾࣬ĬÈÏΪ0¡£ ¶ÎÂäÏà¹ØÊôÐÔ
public bool BulletedList{get;set;} ¶ÎÂäÊÇ·ñ²ÉÓÃÔ²µãʽÁÐ±í·½Ê½¡£ public bool NumberedList{get;set;}
¶ÎÂäÊÇ·ñ²ÉÓÃÊý×ÖʽÁÐ±í·½Ê½¡£
public DCSoft.Drawing.DocumentContentAlignment Align{get;set;} ¶ÎÂä¶ÔÆë·½Ê½¡£¿ÉѡֵÓÐLeft£¬Center£¬Right£¬Justify£¬Ä¬ÈÏΪLeft¡£ public float SpacingBeforeParagrah{get;set;}
¶ÎÂäǰ¼ä¾à£¬Ä¬ÈÏΪ0¡£
public float SpacingAfterParagraph{get;set;} ¶ÎÂäºó¼ä¾à£¬Ä¬ÈÏΪ0¡£ public float LineSpacing{get;set;} Ðмä¾à¡£
public DCSoft.Drawing.LineSpacingStyle LineSpacingStyle{get;set;} Ðмä¾àÑùʽ£¬Ëü¾ö¶¨ÁËLineSpacingÊôÐÔÖµµÄÒâÒ壬Æä¿ÉѡֵΪ SpaceSingle Space1pt5 SpaceDouble SpaceExactly SpaceSpecify µ¥±¶Ðоà,´ËʱLineSpacingÖµÎÞÒâÒå¡£ 1.5±¶Ðоà,´ËʱLineSpacingÖµÎÞÒâÒå¡£ Ë«±¶Ðоà,´ËʱLineSpacingÖµÎÞÒâÒå¡£ ×îСֵ,´ËʱLineSpacingÖµÎÞÒâÒå¡£ ¹Ì¶¨Öµ,´ËʱLineSpacingÖ¸¶¨ÁËÐмä¾à¡£ ×¢ÒâÔÚDCWriterÖУ¬Ðмä¾àÊÇÎı¾ÐеÄÉϱßÔµºÍÏÂÐеÄÉϱßÔµÖ®¼äµÄ¾àÀ룬¶ø²»ÊDZ¾ÐÐϱßÔµºÍÏÂÒ»ÐÐÉϱßÔµÖ®¼äµÄ¾àÀ룬Òò´ËËãÊÇÐиߡ£ ¶à±¶Ðоà,´ËʱLineSpacingÖ¸¶¨µÄ±¶Êý¡£ public DCSoft.Drawing.VerticalAlignStyle VerticalAlign{get;set;} Îı¾´¹Ö±¶ÔÆë·½Ê½¡£½öÊÊÓÃÓÚ±í¸ñµ¥Ôª¸ñ¡£ public float FirstLineIndent{get;set;} ¶ÎÂäÊ×ÐÐËõ½øÁ¿¡£
public float LeftIndent{get;set;} ¶ÎÂä×óËõ½øÁ¿¡£ ÊÚȨÏà¹Ø
public int CreatorIndex{get;set;}
´´½¨ÎĵµÄÚÈݵĴ´½¨ÕßÀúÊ·¼Ç¼±àºÅ£¬Ä¬ÈÏΪ-1¡£ public int DeleterIndex{get;set;} ɾ³ýÎĵµÄÚÈݵÄɾ³ýÕâÀúÊ·¼Ç¼±àºÅ£¬Ä¬ÈÏΪ-1¡£
SpaceMultiple
4.3.1. ÐÞ¸ÄÎĵµÑùʽ
ÓÉÓÚ¾ßÓÐÔËÐÐʱµÄÎĵµÑùʽ£¬Òò´Ëµ±Ó¦ÓóÌÐòÖ»ÊÇÐÞ¸ÄÁËÎĵµµÄĬÈÏÑùʽ£¬ÔòÕû¸öÎĵµËùÓÐÔªËØµÄÑùʽҲ»áËæ×Ÿü»»¡£
ÓÉÓÚ²ÉÓÃÑùʽÁбíÒýÓõķ½Ê½À´ÉèÖÃÎĵµÔªËصÄÑùʽ£¬Òò´Ë²»ÄÜÖ±½ÓÐÞ¸ÄÎĵµÔªËصÄÑùʽÉèÖã¬ÀýÈçÖ´ÐС°element.Style.Bold = true¡±ÕâÑùµÄ´úÂëÊÇ´íÎóµÄ¡£¶øÊÇÐèÒªÖ´ÐÐÒÔÏ´úÂ룺 DocumentContentStyle style = new DocumentContentStyle(); style.Bold = true; element.Style = style; Ò²¾ÍÊÇ¿ª·¢Õß²»ÄÜÖ±½ÓÉèÖÃÔªËØµÄelement.StyleÏÂÃæµÄÉèÖ㬶ø±ØÐë´´½¨Ò»¸öеÄDocumentContentStyle¶ÔÏó£¬È»ºóÉèÖÃËüµÄÖµ£¬×îºó½«ÆäÉèÖõ½ÎĵµÔªËصÄStyleÊôÐÔÖµÉÏ¡£¶øÇÒÕâÖÖ·½·¨ÔËÐÐËٶȿ죬µ«Ö»ÊǸüÐÂÁËÎĵµDOM½á¹¹£¬×îºó»¹±ØÐëµ÷ÓÃ±à¼Æ÷¿Ø¼þµÄRefreshDocument·½·¨¸üÐÂÎĵµÊÓͼ£¬¶øÇÒ²»Äܵ÷ÓÃUndo/RedoÃüÁîÖØ¸´ºÍ³·Ïú²Ù×÷¡£
4.4. ȨÏ޺ͺۼ£±£Áô¿ª·¢½Ó¿Ú
DCSoft.WriterÖ§³ÖÎĵµÄÚÈݵȼ¶È¨ÏÞ¿ØÖÆ¡£ÔÚ´ò¿ªÎĵµºóÓû§¿ÉÒÔÔÚ±à¼Æ÷ÖÐÖ´ÐеǼ²Ù×÷£¬Ã¿Ò»´ÎÓû§µÇ¼¶¼ÏµÍ³¶¼¼Ç¼Óû§ÃûºÍÓû§ÊÚȨµÈ¼¶¡£´ËʱÐÂÔö¡¢Ð޸ĻòÂ߼ɾ³ýµÄÄÚÈݶ¼¹éÓÚµ±Ç°Óû§ÃûÏ¡£ ²Ù×÷¿ØÖÆ
¶ÔÓÚ¿ª·¢ÈËÔ±À´Ëµ£¬Óû§ÊÚȨµÈ¼¶¾ÍÊÇÒ»¸öÕûÊý£¬¸ÃÊýÖµÔ½´ó£¬Óû§µÈ¼¶Ô½¸ß¡£ÔÚһƪÎĵµÄÚ²¿£¬¸ßµÈ¼¶Óû§ÖÆÔìµÄÎĵµÄÚÈݶԵ͵ȼ¶µÄÓû§À´ËµÊÇÖ»¶ÁµÄ£¬Ö»ÄÜ¿´²»ÄÜÐ޸ġ£¶øµÍµÈ¼¶Óû§ÖÆÔìµÄÎĵµÄÚÈݸߵȼ¶Óû§ÊÇ¿ÉÒԲ鿴ºÍÐ޸ġ¢É¾³ýµÄ¡£ ¿ÉÊÓ»¯ÏÔʾ
ÁíÍâ±à¼Æ÷»¹ÄÜ¿ÉÊÓ»¯µÄÏÔʾÓû§²Ù×÷ºÛ¼£¡£¶ÔÓڵȼ¶Ð¡ÓÚµÈÓÚ0µÄÓû§£¬ÆäÄÚÈÝÕý³£ÏÔʾ£»¶ÔÓÚȨÏ޵ȼ¶Îª1µÄÓû§£¬Æä²åÈëµÄÎĵµÄÚÈÝʹÓÃÀ¶É«µÄµ¥Ï»®ÏßÀ´Í»³öÏÔʾ£¬ÆäÂ߼ɾ³ýµÄÄÚÈÝʹÓúìÉ«µÄµ¥Ìõɾ³ýÏßÀ´Í»³öÏÔʾ£»¶ÔÓÚȨÏ޵ȼ¶´óÓÚµÈÓÚ2µÄÓû§£¬Æä²åÈëµÄÄÚÈÝʹÓÃÀ¶É«Ë«Ï»®ÏßÀ´Í»³öÏÔʾ£¬ÆäÂ߼ɾ³ýµÄÄÚÈÝʹÓúìÉ«µÄ˫ɾ³ýÏßÀ´Í»³öÏÔʾ¡£
µ±Êó±êÍ£ÁôÔÚµ½ÎĵµÄÚÈÝÉÏʱ£¬»áÏÔʾһ¸öÌáʾ±êÇ©£¬ËµÃ÷ÎĵµÄÚÈݵĴ´½¨ÐÅÏ¢ºÍ±»Â߼ɾ³ýµÄÐÅÏ¢¡£
ÕâÑùÎĵµµÄȨÏÞ¿ØÖÆ´Ó´«Í³µÄÎļþ¼¶±ðÉîÈëµ½ÎĵµÄÚ²¿£¬Õâ³ÉΪµç×Ó²¡ÀúÓ¦ÓÃϵͳʵÏÖÈý¼¶²é·¿¹¦Äܵļ¼Êõ»ù´¡¡£ÏàÐÅÆäËûÐÐÒµÓ¦ÓÃÒ²¿ÉÄÜ´æÔÚÀàËÆµÄÐèÇó¡£ È¨ÏÞ¼°ºÛ¼£Êý¾ÝµÄ´æ´¢
Ó¦ÓóÌÐò¿ÉÒÔͨ¹ýDCSoft.WriterÌṩµÄDOM½á¹¹Ö±½Ó·ÃÎÊȨÏ޺ͺۼ£ÐÅÏ¢¡£
Îĵµ¶ÔÏóÊÇDCSoft.Writer.Dom.XTextDocumentÀàÐÍ£¬Ëü¾ßÓÐÒÔϺͺۼ£ºÍȨÏÞÏà¹ØÊôÐÔ£º
public DCSoft.Writer.Dom.DocumentContentStyleContainer ContentStyles{get;set;}
Õû¸öÎĵµ¶¼Ê¹ÓõÄÎĵµÄÚÈÝÑùʽÈÝÆ÷¡£¸Ã¶ÔÏóµÄStylesÊôÐÔ¾ÍÊÇÒ»¸öÎĵµÑùʽÁÐ±í£¬ÆäÁбíÔªËØÀàÐÍÊÇDCSoft.Writer.Dom.DocumentContentStyle¡£¸ÃÀàÐÍÖÐȨÏÞÏà¹ØµÄÊôÐÔÓÐ
public int CreatorIndex{get;set;} ´´½¨¸ÃÎĵµÔªËصÄÓû§ÀúÊ·¼Ç¼±àºÅ¡£ÏµÍ³Ê¹ÓøñàºÅÔÚÎĵµ¶ÔÏóµÄUserHistoriesÁбíÖмìË÷Óû§µÇ¼²Ù×÷ÀúÊ·¼Ç¼¶ÔÏó¡£
public int DeletorIndex{get;set;} Â߼ɾ³ý¸ÃÎĵµÔªËصÄÓû§ÀúÊ·¼Ç¼±àºÅ¡£ public DCSoft.Writer.Security.UserHistoryInfoList UserHistories{get;set;} Óû§µÇ¼²Ù×÷¼Ç¼ÁÐ±í¡£ËüÊÇÒ»¸öÁÐ±í£¬Æä×îºóÒ»¸öÔªËØ¾ÍÊǵ±Ç°Óû§µÇ¼ÀúÊ·¼Ç¼¡£¸ÃÁбíÔªËØÀàÐÍΪDCSoft.Writer.Security.UserHistoryInfo¡£UserHistoryInfoÀàÐ͵ÄÊôÐÔÓÐ
int Index{get;set;} ¼Ç¼±àºÅ¡£ string ID{get;set;} string Name{get;set;} DateTime SavedTime{get;set;} int PermissionLevel{get;set;} string Description{get;set;} string Tag{get;set;} µÇ¼Óû§±àºÅ¡£ µÇ¼Óû§Ãû¡£ ±£´æÎĵµµÄÈÕÆÚʱ¼ä¡£ Óû§ÊÚȨµÈ¼¶¡£ Óû§µÇ¼ʱ¸½¼ÓµÄ˵Ã÷ÎÄ×Ö¡£ À©Õ¹Êý¾Ý¡£ ÎĵµÖÐËùÓеÄÔªËØ¶¼ÅÉÉú×ÔDCSoft.Writer.Dom.XTextElementÀàÐÍ£¬¸ÃÀàÐ;ßÓÐÒ»¸öÇ©ÃûΪ¡°public int StyleIndex{get;set;}¡±µÄÊôÐÔ£¬ÏµÍ³¾Í¸ù¾ÝÕâ¸öÊôÐÔÖµÔÚÎĵµ¶ÔÏóµÄContentStyles.StylesÁбíÖмìË÷ÎĵµÑùʽ¶ÔÏó¡£
ÓÉÓÚÒѾÓÐÁËÕâЩÊý¾Ý£¬±à¼Æ÷Èí¼þ¾Íͨ¹ýÒÔÏÂÁ÷³Ì²éÕÒȨÏÞÐÅÏ¢¡£
1. »ñµÃÎĵµÔªËضÔÏ󣨶¼ÊÇÅÉÉú×ÔXTextElementÀàÐÍ£©µÄStyleIndexÊôÐÔ£¬¼ìË÷Îĵµ¶ÔÏó
µÄContentStyles.StylesÁÐ±í£¬Ò²¾ÍÊÇͨ¹ý´úÂë¡°document.ContentStyles.Styles[ element.StyleIndex ]¡±»ñµÃÎĵµÑùʽ¶ÔÏó¡£
2. ¸ù¾ÝÎĵµÑùʽ¶ÔÏóµÄCreatorIndex¼ìË÷Îĵµ¶ÔÏóµÄUserHistoriesÁÐ±í£¬Ò²¾ÍÊÇͨ¹ý´úÂë
¡°document.UserHistories[ style.CreatorIndex »ò style.DeletorIndex ]¡±»ñµÃÓû§µÇ¼ÀúÊ·¼Ç¼ÐÅÏ¢¶ÔÏó¡£
3. »ñµÃÁËÎĵµÀúÊ·¼Ç¼¶ÔÏóµÄPermsissionLevelÖµ£¬Ò²¾ÍÊÇ´´½¨»òÕßÂ߼ɾ³ý¸ÃÎĵµÔªËØ
µÄÓû§È¨Ï޵ȼ¶£¬È»ºó¸úµ±Ç°Óû§È¨Ï޵ȼ¶½øÐбȽϡ£Èô´óÓÚµ±Ç°µÈ¼¶£¬Ôòµ±Ç°Óû§ÎÞ·¨Ð޸ĸÃÎĵµÔªËØ£»ÈôСÓÚµÈÓÚµ±Ç°µÄµÈ¼¶£¬Ôòµ±Ç°Óû§¿ÉÒÔÐ޸ĻòÕßɾ³ý¸ÃÎĵµÔªËØ¡£
Ò²¾ÍÊÇ˵±à¼Æ÷ͨ¹ýelement.StyleIndex ¡údocument.ContentStyles.Styles ¡údocument.UserHistoriesÕâÑùµÄ²éѯ·¾¶»ñµÃÎĵµÔªËصÄÊÚȨÐÅÏ¢¡£´ËʱӦÓÃϵͳҲ¿ÉÒÔͨ¹ýÕâÑùµÄ·¾¶Ö±½Ó·ÃÎÊÎĵµÖеÄȨÏÞ¼°ºÛ¼£±£ÁôÐÅÏ¢¡£
ÆôÓÃȨÏÞ¿ØÖÆ
ÒªÓ¦ÓÃÎĵµÄÚÈݵȼ¶È¨ÏÞ¿ØÖÆ£¬Ê×ÏÈÒªÆôÓÃÊÚȨ¿ØÖÆ£¬ÐèÒªÉèÖÃ±à¼Æ÷µÄÒÔÏÂÊôÐÔ ctl.DocumentOptions.SecurityOptions.EnablePermission
ÊÇ·ñÆô¶¯ÎĵµÄÚÈݵȼ¶È¨ÏÞ¿ØÖÆ£¬ÕâÊÇ×î»ù´¡µÄÊôÐÔ¡£ Ctl.DocumentOptions.SecurityOptions.EnableLogicDelete
ÊÇ·ñÆôÓÃÂ߼ɾ³ý¹¦ÄÜ¡£Ò»°ãµÄÓû§¹¦ÄÜÐèÇó¶¼ÐèÒªÉèÖøÃÊôÐÔ¡£ ctl.DocumentOptions.SecurityOptions.ShowLogicDeleteContent
ÊÇ·ñÏÔʾ±»Â߼ɾ³ýµÄÄÚÈÝ¡£Õâ¸öÊÓÓû§ÐèÇó¶øÉèÖᣠctl.DocumentOptions.SecurityOptions.ShowPermissionMark ÊÇ·ñÏÔʾÓû§ºÛ¼£±ê¼Ç¡£ Óû§µÇ¼ ÆôÓÃ±à¼Æ÷µÄȨÏÞ¿ØÖƺó£¬Ó¦ÓóÌÐòͨ¹ýÁ½ÖÖģʽ½øÐеǼ¡£ 1.×Ô¶¯µÇ¼¡£
Ó¦ÓóÌÐòÉèÖÃ±à¼Æ÷¿Ø¼þµÄAutoUserLoginÊôÐÔΪtrue£¬ÕâÑùÆôÓÃ×Ô¶¯µÇ¼£¬È»ºóÉèÖÃ
±à¼Æ÷¿Ø¼þµÄAutoUserLoginInfoÊôÐÔÖµ£¬¶¨ÒåºÃ×Ô¶¯µÇ¼ʱµÄÓû§ÐÅÏ¢¡£
AutoUserLoginInfoÊôÐÔÖµÊÇDCSoft.Writer.Security.UserLoginInfoÀàÐÍ¡£¸ÃÀàÐ͵ÄÊôÐÔÓÐ string ID{get;set;} Óû§µÇ¼ºÅ¡£ string Name{get;set;} int PermissionLevel{get;set;} string Description{get;set;} string Tag{get;set;} Óû§Ãû¡£ Óû§È¨Ï޵ȼ¶¡£¸ÃÊýÖµÔ½¸ß£¬Óû§È¨Ï޵ȼ¶Ô½¸ß¡£ Óû§´Ë´ÎµÄµÇ¼µÄ˵Ã÷ÐÅÏ¢¡£¹©Ó¦ÓóÌÐòʹÓã¬±à¼Æ÷ÄÚ²¿²»Ê¹ÓᣠÀ©Õ¹ÐÅÏ¢¡£¹©Ó¦ÓóÌÐòʹÓã¬±à¼Æ÷ÄÚ²¿²»Ê¹Óᣠµ±ÉèÖúÃ×Ô¶¯µÇ¼ºó£¬±à¼Æ÷¿Ø¼þÿ´Î¼ÓÔØÎĵµºó¾Í»á×Ô¶¯µÇ¼£¬½«Ö¸¶¨µÄÓû§ÐÅÏ¢Ìí¼Óµ½ÎĵµÖв¢ÉèÖÃΪµ±Ç°Óû§¡£ 2.Ó¦ÓóÌÐòµÇ¼¡£
Ó¦ÓóÌÐòÉèÖÃ±à¼Æ÷¿Ø¼þµÄAutoUserLoginÊôÐÔΪfalse£¬ÕâÑù¾ÍÐèÒªÓ¦ÓóÌÐòµÇ¼ÁË¡£Ó¦ÓóÌÐòÔÚµ÷ÓÃ±à¼Æ÷¿Ø¼þµÄLoadDocument·½·¨¼ÓÔØÎĵµºó£¬»òÕßÏìÓ¦±à¼Æ÷¿Ø¼þµÄDocumentLoadʼþÀ´½øÐеǼ¡£
Ó¦ÓóÌÐòµ÷ÓÃ±à¼Æ÷¿Ø¼þµÄUserLogin·½·¨Ö´ÐеǼ¡£Í¨¹ýÕâ¸ö·½·¨À´´«µÝÓû§Ãû¡¢ÊÚȨµÈ¼¶µÈµÇ¼ÐÅÏ¢¡£
4.5. Îı¾±à¼Æ÷¿Ø¼þ
DCWriterµÄGUIÄ£¿éµÄºËÐľÍÊÇÎı¾±à¼Æ÷¿Ø¼þ£¬¸Ã¿Ø¼þÀàÐÍΪDCSoft.Writer.Controls.WriterControl¡£ËüÊÇÒ»¸öWinForm¿Ø¼þ£¬²¢ÇÒÊÇCOM¹«¿ªµÄ¡£
¸Ã¿Ø¼þ³£ÓõijÉÔ±ÓÐ
public bool AllowDragContent{get;set;} ÄÜ·ñÖ±½ÓÍÏ×§ÎĵµÄÚÈÝ£¬Ä¬ÈÏΪfalse¡£
Public bool IsCommandEnabled( string commandName )
ÅжÏÖ¸¶¨Ãû³ÆµÄ±à¼Æ÷¹¦ÄÜÃüÁîÔÚµ±Ç°ÊÇ·ñ¿ÉÓá£×¢Ò⣺µ÷ÓÃÕâ¸öº¯ÊýÖ»ÊÇ·µ»ØÃüÁî״̬£¬²»»á×Ô¶¯ÉèÖøÃÃüÁî°ó¶¨µÄ°´Å¥»ò²Ëµ¥À¸µÄ״̬¡£ Public bool IsCommandChecked( string commandName ) ÅжÏÖ¸¶¨Ãû³ÆµÄ±à¼Æ÷¹¦ÄÜÃüÁîÔÚµ±Ç°ÊÇ·ñ´¦ÓÚ¹´Ñ¡×´Ì¬¡£×¢Ò⣺µ÷ÓÃÕâ¸öº¯ÊýÖ»ÊÇ·µ»ØÃüÁî״̬£¬²»»á×Ô¶¯ÉèÖøÃÃüÁî°ó¶¨µÄ°´Å¥»ò²Ëµ¥À¸µÄ״̬¡£
Public object ExecuteCommand( string commnadName , bool enableUI , object parameter ) Ö´ÐÐÖ¸¶¨Ãû³ÆµÄ±à¼Æ÷¹¦ÄÜÃüÁî¡£µÚÒ»¸ö²ÎÊýÖ¸¶¨ÃüÁîÃû³Æ£¬µÚ¶þ¸ö²ÎÊýΪÊÇ·ñÔÊÐíÏÔʾÓû§½çÃæ£¬µÚÈý¸ö²ÎÊýΪÓû§Ö¸¶¨µÄ¶îÍâ²ÎÊý¡£ Public event CommandEventHandler CommandError
Ö´ÐÐ±à¼Æ÷¹¦ÄÜÃüÁîʱ³ö´íʱµÄʼþ¡£
Public virtual void OnCommandError( WriterCommand cmd , WriterCommandEventArgs cmdArgs , Exception exp ) ´¦ÀíÔÚÖ´ÐÐ±à¼Æ÷¹¦ÄÜÃüÁîʱÅ׳öµÄÒì³£¡£ Public DateTime LastUIEventTime
×îºóÒ»´ÎÓû§½çÃæÊ¼þµÄ·¢Éúʱ¼ä£¬Óû§½çÃæÊ¼þ°üÀ¨Êó±ê¼üÅÌʼþ¡¢OLEÍÏקʼþ¡£Ó¦ÓóÌÐò¿ÉÒÔ¸ù¾ÝÕâ¸öÊôÐÔÖµÀ´ÊµÏÖ³¬Ê±Ëø¶¨Óû§½çÃæµÄ¹¦ÄÜ¡£ Public bool Readonly{get;set;}