@Override
	public String print() {
		StringBuilder printed = new StringBuilder();
		Line selectedLine = this.getSelectedLine();
		// print intro
		TextIntro intro = this.document.getTextIntro();
		for (int i = 0; i < intro.getLineNb(); i++) {
			if (intro.getLine(i).equals(selectedLine)) {
				printed.append(new StringBuilder(intro.getLine(i).toString())
						.insert(this.getSelectedCharacterNb(), "[").insert(
								this.getSelectedLine().length() == this
										.getSelectedCharacterNb() ? this
										.getSelectedCharacterNb() + 1 : this
										.getSelectedCharacterNb() + 2, "]")
						+ "\n");
			} else {
				printed.append(intro.getLine(i).toString() + "\n");
			}
		}

		for (int i = 0; i < this.document.getSubSectionNb(); i++) {
			printed.append(this.printSection(this.document.getSubSection(i), 1));
		}

		return printed.toString();
	}