use of com.lowagie.text.rtf.document.RtfInfoElement in project itext2 by albfernandez.
the class RtfDestinationInfo method handleCloseGroup.
/* (non-Javadoc)
* @see com.lowagie.text.rtf.direct.RtfDestination#handleGroupEnd()
*/
public boolean handleCloseGroup() {
if (this.text.length() > 0) {
Document doc = this.rtfParser.getDocument();
if (doc != null) {
if (this.elementName.equals("author")) {
doc.addAuthor(this.text);
}
if (this.elementName.equals("title")) {
doc.addTitle(this.text);
}
if (this.elementName.equals("subject")) {
doc.addSubject(this.text);
}
} else {
RtfDocument rtfDoc = this.rtfParser.getRtfDocument();
if (rtfDoc != null) {
if (this.elementName.equals("author")) {
Meta meta = new Meta(this.elementName, this.text);
RtfInfoElement elem = new RtfInfoElement(rtfDoc, meta);
rtfDoc.getDocumentHeader().addInfoElement(elem);
}
if (this.elementName.equals("title")) {
Meta meta = new Meta(this.elementName, this.text);
RtfInfoElement elem = new RtfInfoElement(rtfDoc, meta);
rtfDoc.getDocumentHeader().addInfoElement(elem);
}
if (this.elementName.equals("subject")) {
Meta meta = new Meta(this.elementName, this.text);
RtfInfoElement elem = new RtfInfoElement(rtfDoc, meta);
rtfDoc.getDocumentHeader().addInfoElement(elem);
}
}
}
this.setToDefaults();
}
return true;
}
use of com.lowagie.text.rtf.document.RtfInfoElement in project itext2 by albfernandez.
the class RtfMapper method mapElement.
/**
* Takes an Element subclass and returns an array of RtfBasicElement
* subclasses, that contained the mapped RTF equivalent to the Element
* passed in.
*
* @param element The Element to wrap
* @return An array of RtfBasicElement wrapping the Element
* @throws DocumentException
*/
public RtfBasicElement[] mapElement(Element element) throws DocumentException {
ArrayList rtfElements = new ArrayList();
if (element instanceof RtfBasicElement) {
RtfBasicElement rtfElement = (RtfBasicElement) element;
rtfElement.setRtfDocument(this.rtfDoc);
return new RtfBasicElement[] { rtfElement };
}
switch(element.type()) {
case Element.CHUNK:
Chunk chunk = (Chunk) element;
if (chunk.hasAttributes()) {
if (chunk.getAttributes().containsKey(Chunk.IMAGE)) {
rtfElements.add(new RtfImage(rtfDoc, chunk.getImage()));
} else if (chunk.getAttributes().containsKey(Chunk.NEWPAGE)) {
rtfElements.add(new RtfNewPage(rtfDoc));
} else if (chunk.getAttributes().containsKey(Chunk.TAB)) {
Float tabPos = (Float) ((Object[]) chunk.getAttributes().get(Chunk.TAB))[1];
RtfTab tab = new RtfTab(tabPos.floatValue(), RtfTab.TAB_LEFT_ALIGN);
tab.setRtfDocument(rtfDoc);
rtfElements.add(tab);
rtfElements.add(new RtfChunk(rtfDoc, new Chunk("\t")));
} else {
rtfElements.add(new RtfChunk(rtfDoc, (Chunk) element));
}
} else {
rtfElements.add(new RtfChunk(rtfDoc, (Chunk) element));
}
break;
case Element.PHRASE:
rtfElements.add(new RtfPhrase(rtfDoc, (Phrase) element));
break;
case Element.PARAGRAPH:
rtfElements.add(new RtfParagraph(rtfDoc, (Paragraph) element));
break;
case Element.ANCHOR:
rtfElements.add(new RtfAnchor(rtfDoc, (Anchor) element));
break;
case Element.ANNOTATION:
rtfElements.add(new RtfAnnotation(rtfDoc, (Annotation) element));
break;
case Element.IMGRAW:
case Element.IMGTEMPLATE:
case Element.JPEG:
rtfElements.add(new RtfImage(rtfDoc, (Image) element));
break;
case Element.AUTHOR:
case Element.SUBJECT:
case Element.KEYWORDS:
case Element.TITLE:
case Element.PRODUCER:
case Element.CREATIONDATE:
rtfElements.add(new RtfInfoElement(rtfDoc, (Meta) element));
break;
case Element.LIST:
// TODO: Testing
rtfElements.add(new RtfList(rtfDoc, (List) element));
break;
case Element.LISTITEM:
// TODO: Testing
rtfElements.add(new RtfListItem(rtfDoc, (ListItem) element));
break;
case Element.SECTION:
rtfElements.add(new RtfSection(rtfDoc, (Section) element));
break;
case Element.CHAPTER:
rtfElements.add(new RtfChapter(rtfDoc, (Chapter) element));
break;
case Element.TABLE:
try {
rtfElements.add(new RtfTable(rtfDoc, (Table) element));
} catch (ClassCastException e) {
rtfElements.add(new RtfTable(rtfDoc, ((SimpleTable) element).createTable()));
}
break;
case Element.PTABLE:
try {
rtfElements.add(new RtfTable(rtfDoc, (PdfPTable) element));
} catch (ClassCastException e) {
rtfElements.add(new RtfTable(rtfDoc, ((SimpleTable) element).createTable()));
}
break;
}
return (RtfBasicElement[]) rtfElements.toArray(new RtfBasicElement[rtfElements.size()]);
}
Aggregations