raise ctypes.WinError(res)\r
self._rangeObj.setRange(lineStart.value,lineEnd.value)\r
\r
- def _getFormatFieldAtRange(self,range,formatConfig):\r
- formatField=textInfos.FormatField()\r
- fontObj=None\r
- paraFormatObj=None\r
- listString=range.ListFormat.ListString\r
- if listString and range.Paragraphs[1].range.start==range.start:\r
- formatField['line-prefix']=listString\r
- if formatConfig["reportSpellingErrors"] and range.spellingErrors.count>0: \r
- formatField["invalid-spelling"]=True\r
- if formatConfig["reportLineNumber"]:\r
- formatField["line-number"]=range.Information(wdFirstCharacterLineNumber)\r
- if formatConfig["reportPage"]:\r
- formatField["page-number"]=range.Information(wdActiveEndAdjustedPageNumber)\r
- if formatConfig["reportStyle"]:\r
- formatField["style"]=range.style.nameLocal\r
- if formatConfig["reportTables"] and range.Information(wdWithInTable):\r
- tableInfo={}\r
- tableInfo["column-count"]=range.Information(wdMaximumNumberOfColumns)\r
- tableInfo["row-count"]=range.Information(wdMaximumNumberOfRows)\r
- tableInfo["column-number"]=range.Information(wdStartOfRangeColumnNumber)\r
- tableInfo["row-number"]=range.Information(wdStartOfRangeRowNumber)\r
- formatField["table-info"]=tableInfo\r
- if formatConfig["reportAlignment"]:\r
- if not paraFormatObj: paraFormatObj=range.paragraphFormat\r
- alignment=paraFormatObj.alignment\r
- if alignment==wdAlignParagraphLeft:\r
- formatField["text-align"]="left"\r
- elif alignment==wdAlignParagraphCenter:\r
- formatField["text-align"]="center"\r
- elif alignment==wdAlignParagraphRight:\r
- formatField["text-align"]="right"\r
- elif alignment==wdAlignParagraphJustify:\r
- formatField["text-align"]="justify"\r
- if formatConfig["reportFontName"]:\r
- if not fontObj: fontObj=range.font\r
- formatField["font-name"]=fontObj.name\r
- if formatConfig["reportFontSize"]:\r
- if not fontObj: fontObj=range.font\r
- formatField["font-size"]="%spt"%fontObj.size\r
- if formatConfig["reportFontAttributes"]:\r
- if not fontObj: fontObj=range.font\r
- formatField["bold"]=bool(fontObj.bold)\r
- formatField["italic"]=bool(fontObj.italic)\r
- formatField["underline"]=bool(fontObj.underline)\r
- if fontObj.superscript:\r
- formatField["text-position"]="super"\r
- elif fontObj.subscript:\r
- formatField["text-position"]="sub"\r
- return formatField\r
-\r
- def _expandFormatRange(self,range):\r
- startLimit=self._rangeObj.start\r
- endLimit=self._rangeObj.end\r
- #Only Office 2007 onwards supports moving by format changes, -- and only moveEnd works.\r
- try:\r
- range.MoveEnd(13,1)\r
- except:\r
- range.Expand(wdWord)\r
- if range.start<startLimit:\r
- range.start=startLimit\r
- if range.end>endLimit:\r
- range.end=endLimit\r
-\r
def __init__(self,obj,position,_rangeObj=None):\r
super(WordDocumentTextInfo,self).__init__(obj,position)\r
if _rangeObj:\r