/** * Calculates the start index of the given text run * * @param textrun the text run to search for * @return the start index with the paragraph collection or -1 if not found */ /* package */ int getStartIdxOfTextRun(HSLFTextRun textrun) { int idx = 0; for (HSLFTextParagraph p : parentList) { for (HSLFTextRun r : p) { if (r == textrun) { return idx; } idx += r.getLength(); } } return -1; }
protected static void applyParagraphIndents(List<HSLFTextParagraph> paragraphs, List<IndentProp> paraStyles) { int paraIdx = 0; for (IndentProp p : paraStyles) { for (int ccPara = 0, ccStyle = p.getCharactersCovered(); ccPara < ccStyle; paraIdx++) { if (paraIdx >= paragraphs.size() || ccPara >= ccStyle-1) { return; } HSLFTextParagraph para = paragraphs.get(paraIdx); int len = 0; for (HSLFTextRun trun : para.getTextRuns()) { len += trun.getLength(); } para.setIndentLevel(p.getIndentLevel()); ccPara += len + 1; } } }
protected static void applyParagraphStyles(List<HSLFTextParagraph> paragraphs, List<TextPropCollection> paraStyles) { int paraIdx = 0; for (TextPropCollection p : paraStyles) { for (int ccPara = 0, ccStyle = p.getCharactersCovered(); ccPara < ccStyle; paraIdx++) { if (paraIdx >= paragraphs.size()) { return; } HSLFTextParagraph htp = paragraphs.get(paraIdx); TextPropCollection pCopy = new TextPropCollection(0, TextPropType.paragraph); pCopy.copy(p); htp.setParagraphStyle(pCopy); int len = 0; for (HSLFTextRun trun : htp.getTextRuns()) { len += trun.getLength(); } if (paraIdx == paragraphs.size()-1) { len++; } pCopy.updateTextSize(len); ccPara += len; } } }
for (String rawText : text.split("(?<=\r)")) { boolean lastRunEmpty = (htr.getLength() == 0); boolean lastParaEmpty = lastRunEmpty && (htp.getTextRuns().size() == 1);
for (int rlen=0,rIdx=0; rIdx < runs.size(); csIdx+=rlen, rIdx++) { HSLFTextRun run = runs.get(rIdx); rlen = run.getLength(); if (csIdx < h.getEndIndex() && h.getStartIndex() < csIdx+rlen) { String rawText = run.getRawText();
thisLink.setEndIndex(thisLink.getEndIndex()+run.getLength()); } else { if (lastLink != null) {
lastRTPC.copy(rtpc); int len = tr.getLength(); ptpc.updateTextSize(ptpc.getCharactersCovered() + len); rtpc.updateTextSize(len);
int endIdx = startIdx + run.getLength(); txinfo.setStartIndex(startIdx); txinfo.setEndIndex(endIdx);