public RtfParagraph(RtfDocument doc,
Paragraph paragraph) {
super(doc);
RtfFont baseFont = null;
if(paragraph.getFont() instanceof RtfParagraphStyle) {
this.paragraphStyle = this.document.getDocumentHeader().getRtfParagraphStyle(((RtfParagraphStyle) paragraph.getFont()).getStyleName());
baseFont = this.paragraphStyle;
} else {
baseFont = new RtfFont(this.document, paragraph.getFont());
this.paragraphStyle = new RtfParagraphStyle(this.document, this.document.getDocumentHeader().getRtfParagraphStyle("Normal"));
this.paragraphStyle.setAlignment(paragraph.getAlignment());
this.paragraphStyle.setFirstLineIndent((int) (paragraph.getFirstLineIndent() * RtfElement.TWIPS_FACTOR));
this.paragraphStyle.setIndentLeft((int) (paragraph.getIndentationLeft() * RtfElement.TWIPS_FACTOR));
this.paragraphStyle.setIndentRight((int) (paragraph.getIndentationRight() * RtfElement.TWIPS_FACTOR));
this.paragraphStyle.setSpacingBefore((int) (paragraph.spacingBefore() * RtfElement.TWIPS_FACTOR));
this.paragraphStyle.setSpacingAfter((int) (paragraph.spacingAfter() * RtfElement.TWIPS_FACTOR));
if(paragraph.hasLeading()) {
this.paragraphStyle.setLineLeading((int) (paragraph.getLeading() * RtfElement.TWIPS_FACTOR));
}
this.paragraphStyle.setKeepTogether(paragraph.getKeepTogether());
}
for(int i = 0; i < paragraph.size(); i++) {
Element chunk = (Element) paragraph.get(i);
if(chunk instanceof Chunk) {
((Chunk) chunk).setFont(baseFont.difference(((Chunk) chunk).getFont()));
} else if(chunk instanceof RtfImage) {
((RtfImage) chunks.get(i)).setAlignment(this.paragraphStyle.getAlignment());
}
try {
RtfBasicElement[] rtfElements = doc.getMapper().mapElement(chunk);
for(int j = 0; j < rtfElements.length; j++) {
chunks.add(rtfElements[j]);
}
} catch(DocumentException de) {
}
}
}
Constructs a RtfParagraph belonging to a RtfDocument based on a Paragraph. Parameters:
doc - The RtfDocument this RtfParagraph belongs to
paragraph - The Paragraph that this RtfParagraph is based on
|