本文整理汇总了Java中com.lowagie.text.pdf.PdfWriter.addAnnotation方法的典型用法代码示例。如果您正苦于以下问题:Java PdfWriter.addAnnotation方法的具体用法?Java PdfWriter.addAnnotation怎么用?Java PdfWriter.addAnnotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.lowagie.text.pdf.PdfWriter
的用法示例。
在下文中一共展示了PdfWriter.addAnnotation方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onGenericTag
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String)
*/
public void onGenericTag(PdfWriter writer, Document document,
Rectangle rect, String text) {
rect.setBottom(rect.getBottom() - 3);
PdfFormField field = (PdfFormField) genericChunkFields.get(text);
if (field == null) {
TextField tf = new TextField(writer, new Rectangle(rect.getLeft(padding), rect.getBottom(padding), rect.getRight(padding), rect.getTop(padding)), text);
tf.setFontSize(14);
try {
field = tf.getTextField();
} catch (Exception e) {
throw new ExceptionConverter(e);
}
}
else {
field.put(PdfName.RECT, new PdfRectangle(rect.getLeft(padding), rect.getBottom(padding), rect.getRight(padding), rect.getTop(padding)));
}
if (parent == null)
writer.addAnnotation(field);
else
parent.addKid(field);
}
示例2: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Generates an Acroform with a Combobox
*/
@Test
public void main() throws Exception {
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
// step 2:
PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("combo.pdf"));
// step 3: we open the document
document.open();
// step 4:
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
String options[] = { "Red", "Green", "Blue" };
PdfFormField field = PdfFormField.createCombo(writer, true, options, 0);
field.setWidget(new Rectangle(100, 700, 180, 720), PdfAnnotation.HIGHLIGHT_INVERT);
field.setFieldName("ACombo");
field.setValueAsString("Red");
writer.addAnnotation(field);
// step 5: we close the document
document.close();
}
示例3: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Demonstrates the use of layers.
*
* @param args
* no arguments needed
*/
@Test
public void main() throws Exception {
// step 1: creation of a document-object
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
// step 2: creation of the writer
PdfWriter writer = PdfWriter.getInstance(document,
PdfTestBase.getOutputStream("optionalcontent.pdf"));
writer.setPdfVersion(PdfWriter.VERSION_1_5);
writer.setViewerPreferences(PdfWriter.PageModeUseOC);
// step 3: opening the document
document.open();
// step 4: content
PdfContentByte cb = writer.getDirectContent();
Phrase explanation = new Phrase(
"Automatic layers, form fields, images, templates and actions",
new Font(Font.HELVETICA, 18, Font.BOLD, Color.red));
ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, explanation, 50,
650, 0);
PdfLayer l1 = new PdfLayer("Layer 1", writer);
PdfLayer l2 = new PdfLayer("Layer 2", writer);
PdfLayer l3 = new PdfLayer("Layer 3", writer);
PdfLayer l4 = new PdfLayer("Form and XObject Layer", writer);
PdfLayerMembership m1 = new PdfLayerMembership(writer);
m1.addMember(l2);
m1.addMember(l3);
Phrase p1 = new Phrase("Text in layer 1");
Phrase p2 = new Phrase("Text in layer 2 or layer 3");
Phrase p3 = new Phrase("Text in layer 3");
cb.beginLayer(l1);
ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, p1, 50, 600, 0f);
cb.endLayer();
cb.beginLayer(m1);
ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, p2, 50, 550, 0);
cb.endLayer();
cb.beginLayer(l3);
ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, p3, 50, 500, 0);
cb.endLayer();
TextField ff = new TextField(writer, new Rectangle(200, 600, 300, 620),
"field1");
ff.setBorderColor(Color.blue);
ff.setBorderStyle(PdfBorderDictionary.STYLE_SOLID);
ff.setBorderWidth(TextField.BORDER_WIDTH_THIN);
ff.setText("I'm a form field");
PdfFormField form = ff.getTextField();
form.setLayer(l4);
writer.addAnnotation(form);
Image img = Image.getInstance(PdfTestBase.RESOURCES_DIR
+ "pngnow.png");
img.setLayer(l4);
img.setAbsolutePosition(200, 550);
cb.addImage(img);
PdfTemplate tp = cb.createTemplate(100, 20);
Phrase pt = new Phrase("I'm a template", new Font(Font.HELVETICA, 12,
Font.NORMAL, Color.magenta));
ColumnText.showTextAligned(tp, Element.ALIGN_LEFT, pt, 0, 0, 0);
tp.setLayer(l4);
tp.setBoundingBox(new Rectangle(0, -10, 100, 20));
cb.addTemplate(tp, 200, 500);
ArrayList<Object> state = new ArrayList<Object>();
state.add("toggle");
state.add(l1);
state.add(l2);
state.add(l3);
state.add(l4);
PdfAction action = PdfAction.setOCGstate(state, true);
Chunk ck = new Chunk("Click here to toggle the layers", new Font(
Font.HELVETICA, 18, Font.NORMAL, Color.yellow)).setBackground(
Color.blue).setAction(action);
ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase(ck),
250, 400, 0);
cb.sanityCheck();
// step 5: closing the document
document.close();
}
示例4: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Generates an Acroform with a PushButton
*/
@Test
public void main() throws Exception {
Document.compress = false;
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
// step 2:
PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("pushbutton.pdf"));
// step 3: we open the document
document.open();
// step 4:
PdfFormField pushbutton = PdfFormField.createPushButton(writer);
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
PdfAppearance normal = cb.createAppearance(100, 50);
normal.setColorFill(Color.GRAY);
normal.rectangle(5, 5, 90, 40);
normal.fill();
PdfAppearance rollover = cb.createAppearance(100, 50);
rollover.setColorFill(Color.RED);
rollover.rectangle(5, 5, 90, 40);
rollover.fill();
PdfAppearance down = cb.createAppearance(100, 50);
down.setColorFill(Color.BLUE);
down.rectangle(5, 5, 90, 40);
down.fill();
pushbutton.setFieldName("PushMe");
pushbutton.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, normal);
pushbutton.setAppearance(PdfAnnotation.APPEARANCE_ROLLOVER, rollover);
pushbutton.setAppearance(PdfAnnotation.APPEARANCE_DOWN, down);
pushbutton.setWidget(new Rectangle(100, 700, 200, 750), PdfAnnotation.HIGHLIGHT_PUSH);
writer.addAnnotation(pushbutton);
// step 5: we close the document
document.close();
}
示例5: exportElement
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
@Override
public void exportElement(JRPdfExporterContext exporterContext, JRGenericPrintElement element)
{
PdfWriter writer = exporterContext.getPdfWriter();
JasperPrint jasperPrint = exporterContext.getExportedReport();
JRPrintText printText = (JRPrintText)element.getParameterValue(TextInputElement.PARAMETER_PRINT_TEXT_ELEMENT);
if (printText == null) //FIXMEINPUT deal with xml serialization
{
return;
}
Rectangle rectangle = new Rectangle(
element.getX() + exporterContext.getOffsetX(),
jasperPrint.getPageHeight() - element.getY() - exporterContext.getOffsetY(),
element.getX() + exporterContext.getOffsetX() + element.getWidth(),
jasperPrint.getPageHeight() - element.getY() - exporterContext.getOffsetY() - element.getHeight()
);
TextField text = new TextField(writer, rectangle, getFieldName(element));
Color backColor = printText.getBackcolor();
if(backColor != null){
text.setBackgroundColor(backColor);
}
Color forecolor = printText.getForecolor();
if(forecolor != null){
text.setTextColor(forecolor);
}
text.setText(printText.getFullText());
text.setDefaultText("default:" + printText.getFullText());
// text.setBackgroundColor(element.getBackcolor());
// text.setTextColor(element.getForecolor());
// text.setText(getText(element));
// text.setDefaultText(getDefaultText(element));
//FIXME: dynamic settings below:
// text.setAlignment(Element.ALIGN_LEFT);
// text.setBorderColor(Color.BLACK);
// text.setBorderWidth(TextField.BORDER_WIDTH_THIN);
// text.setBorderStyle(PdfBorderDictionary.STYLE_INSET);
// text.setChoiceExports(null);
// text.setChoices(null);
// text.setChoiceSelection(0);
// text.setExtensionFont(null);
// text.setExtraMargin(0, 0);
// try{
// text.setFont(BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1250, true));
// }catch(Exception e){
// throw new JRRuntimeException(e);
// }
text.setFontSize(printText.getFontsize());
if (Boolean.TRUE.equals(element.getParameterValue(TextInputElement.PARAMETER_MULTI_LINE)))
{
text.setOptions(TextField.MULTILINE);
}
// text.setRotation(90);
text.setVisibility(TextField.VISIBLE);
try{
PdfFormField field = text.getTextField();
writer.addAnnotation(field);
}catch(Exception e){
throw new JRRuntimeException(e);
}
}
示例6: addCell_WithRadioButton
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
@SuppressWarnings( "unused" )
private void addCell_WithRadioButton( PdfPTable table, PdfWriter writer, PdfPCell cell, String strfldName )
{
PdfFormField radiogroupField = PdfFormField.createRadioButton( writer, true );
radiogroupField.setFieldName( strfldName );
cell.setCellEvent( new PdfFieldCell( radiogroupField, new String[]{ "Yes", "No", "null" }, new String[]{
"true", "false", "" }, "", 30.0f, PdfDataEntryFormUtil.UNITSIZE_DEFAULT, PdfFieldCell.TYPE_RADIOBUTTON, writer ) );
table.addCell( cell );
writer.addAnnotation( radiogroupField );
}
示例7: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Generates an Acroform with a Checkbox
*/
@Test
public void main() throws Exception {
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
// step 2:
PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("checkbox.pdf"));
// step 3: we open the document
document.open();
// step 4:
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
PdfFormField field = PdfFormField.createCheckBox(writer);
PdfAppearance tpOff = cb.createAppearance(20, 20);
PdfAppearance tpOn = cb.createAppearance(20, 20);
tpOff.rectangle(1, 1, 18, 18);
tpOff.stroke();
tpOn.setRGBColorFill(255, 128, 128);
tpOn.rectangle(1, 1, 18, 18);
tpOn.fillStroke();
tpOn.moveTo(1, 1);
tpOn.lineTo(19, 19);
tpOn.moveTo(1, 19);
tpOn.lineTo(19, 1);
tpOn.stroke();
field.setWidget(new Rectangle(100, 700, 120, 720), PdfAnnotation.HIGHLIGHT_INVERT);
field.setFieldName("Urgent");
field.setValueAsName("Off");
field.setAppearanceState("Off");
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", tpOn);
writer.addAnnotation(field);
// step 5: we close the document
document.close();
}
示例8: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Generates an Acroform with a TextField
*/
@Test
public void main() throws Exception {
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
// step 2:
PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("textfield.pdf"));
// step 3: we open the document
document.open();
// step 4:
BaseFont helv = BaseFont.createFont("Helvetica", "winansi", false);
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
String text = "Some start text";
float fontSize = 12;
Color textColor = new GrayColor(0f);
PdfFormField field = PdfFormField.createTextField(writer, false, false, 0);
field.setWidget(new Rectangle(171, 750, 342, 769), PdfAnnotation.HIGHLIGHT_INVERT);
field.setFlags(PdfAnnotation.FLAGS_PRINT);
field.setFieldName("ATextField");
field.setValueAsString(text);
field.setDefaultValueAsString(text);
field.setBorderStyle(new PdfBorderDictionary(2, PdfBorderDictionary.STYLE_SOLID));
field.setPage();
PdfAppearance tp = cb.createAppearance(171, 19);
PdfAppearance da = (PdfAppearance) tp.getDuplicate();
da.setFontAndSize(helv, fontSize);
da.setColorFill(textColor);
field.setDefaultAppearanceString(da);
tp.beginVariableText();
tp.saveState();
tp.rectangle(2, 2, 167, 15);
tp.clip();
tp.newPath();
tp.beginText();
tp.setFontAndSize(helv, fontSize);
tp.setColorFill(textColor);
tp.setTextMatrix(4, 5);
tp.showText(text);
tp.endText();
tp.restoreState();
tp.endVariableText();
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp);
writer.addAnnotation(field);
// step 5: we close the document
document.close();
}
示例9: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Generates an Acroform with a RadioButton
*/
@Test
public void main() throws Exception {
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
// step 2:
PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("radiobutton.pdf"));
// step 3: we open the document
document.open();
// step 4:
PdfContentByte cb = writer.getDirectContent();
cb.moveTo(0, 0);
PdfFormField radio = PdfFormField.createRadioButton(writer, true);
PdfAppearance tpOff = cb.createAppearance(20, 20);
PdfAppearance tpOn = cb.createAppearance(20, 20);
tpOff.circle(10, 10, 9);
tpOff.stroke();
tpOn.circle(10, 10, 9);
tpOn.stroke();
tpOn.circle(10, 10, 3);
tpOn.fillStroke();
radio.setFieldName("CreditCard");
radio.setValueAsName("MasterCard");
PdfFormField radio1 = PdfFormField.createEmpty(writer);
radio1.setWidget(new Rectangle(100, 700, 120, 720), PdfAnnotation.HIGHLIGHT_INVERT);
radio1.setAppearanceState("MasterCard");
radio1.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
radio1.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "MasterCard", tpOn);
radio.addKid(radio1);
PdfFormField radio2 = PdfFormField.createEmpty(writer);
radio2.setWidget(new Rectangle(100, 660, 120, 680), PdfAnnotation.HIGHLIGHT_INVERT);
radio2.setAppearanceState("Off");
radio2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
radio2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Visa", tpOn);
radio.addKid(radio2);
PdfFormField radio3 = PdfFormField.createEmpty(writer);
radio3.setWidget(new Rectangle(100, 620, 120, 640), PdfAnnotation.HIGHLIGHT_INVERT);
radio3.setAppearanceState("Off");
radio3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
radio3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "American", tpOn);
radio.addKid(radio3);
writer.addAnnotation(radio);
// step 5: we close the document
document.close();
}
示例10: main
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
/**
* Creates a document with some PdfAnnotations.
*
*/
@Test
public void main() throws Exception {
// step 1: creation of a document-object
Document document = new Document();
// step 2:
PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("Annotations.pdf"));
// step 3:
writer.setPdfVersion(PdfWriter.VERSION_1_5);
document.open();
// step 4:
PdfContentByte cb = writer.getDirectContent();
// page 1
PdfFileSpecification fs = PdfFileSpecification.fileExtern(writer, PdfTestBase.RESOURCES_DIR + "cards.mpg");
writer.addAnnotation(PdfAnnotation.createScreen(writer, new Rectangle(200f, 700f, 300f, 800f), "cards.mpg", fs,
"video/mpeg", true));
PdfAnnotation a = new PdfAnnotation(writer, 200f, 550f, 300f, 650f, PdfAction.javaScript(
"app.alert('Hello');\r", writer));
document.add(new Chunk("click to trigger javascript").setAnnotation(a).setLocalDestination("top"));
writer.addAnnotation(a);
writer.addAnnotation(PdfAnnotation.createFileAttachment(writer, new Rectangle(100f, 650f, 150f, 700f),
"This is some text", "some text".getBytes(), null, "some.txt"));
writer.addAnnotation(PdfAnnotation.createText(writer, new Rectangle(200f, 400f, 300f, 500f), "Help",
"This Help annotation was made with 'createText'", false, "Help"));
writer.addAnnotation(PdfAnnotation.createText(writer, new Rectangle(200f, 250f, 300f, 350f), "Help",
"This Comment annotation was made with 'createText'", true, "Comment"));
cb.rectangle(200, 700, 100, 100);
cb.rectangle(200, 550, 100, 100);
cb.rectangle(200, 400, 100, 100);
cb.rectangle(200, 250, 100, 100);
cb.stroke();
document.newPage();
// page 2
writer.addAnnotation(PdfAnnotation.createLink(writer, new Rectangle(200f, 700f, 300f, 800f),
PdfAnnotation.HIGHLIGHT_TOGGLE, PdfAction.javaScript("app.alert('Hello');\r", writer)));
writer.addAnnotation(PdfAnnotation.createLink(writer, new Rectangle(200f, 550f, 300f, 650f),
PdfAnnotation.HIGHLIGHT_OUTLINE, "top"));
writer.addAnnotation(PdfAnnotation.createLink(writer, new Rectangle(200f, 400f, 300f, 500f),
PdfAnnotation.HIGHLIGHT_PUSH, 1, new PdfDestination(PdfDestination.FIT)));
writer.addAnnotation(PdfAnnotation.createSquareCircle(writer, new Rectangle(200f, 250f, 300f, 350f),
"This Comment annotation was made with 'createSquareCircle'", false));
document.newPage();
// page 3
PdfContentByte pcb = new PdfContentByte(writer);
pcb.setColorFill(new Color(0xFF, 0x00, 0x00));
writer.addAnnotation(PdfAnnotation.createFreeText(writer, new Rectangle(200f, 700f, 300f, 800f),
"This is some free text, blah blah blah", pcb));
writer.addAnnotation(PdfAnnotation.createLine(writer, new Rectangle(200f, 550f, 300f, 650f), "this is a line",
200, 550, 300, 650));
writer.addAnnotation(PdfAnnotation.createStamp(writer, new Rectangle(200f, 400f, 300f, 500f),
"This is a stamp", "Stamp"));
writer.addAnnotation(PdfAnnotation.createPopup(writer, new Rectangle(200f, 250f, 300f, 350f),
"Hello, I'm a popup!", true));
cb.rectangle(200, 700, 100, 100);
cb.rectangle(200, 550, 100, 100);
cb.rectangle(200, 250, 100, 100);
cb.stroke();
// step 5: we close the document
document.close();
}
示例11: exportElement
import com.lowagie.text.pdf.PdfWriter; //导入方法依赖的package包/类
public void exportElement(JRPdfExporterContext exporterContext,
JRGenericPrintElement element)
{
try
{
PdfWriter writer = exporterContext.getPdfWriter();
PdfIndirectObject swfRef;
boolean newContext = !existingContexts.containsKey(exporterContext);
if (newContext)
{
// add the Adobe 1.7 extensions catalog dictionary
PdfDictionary extensions = new PdfDictionary();
PdfDictionary adobeExtension = new PdfDictionary();
adobeExtension.put(new PdfName("BaseVersion"), PdfWriter.PDF_VERSION_1_7);
adobeExtension.put(new PdfName("ExtensionLevel"), new PdfNumber(3));
extensions.put(new PdfName("ADBE"), adobeExtension);
writer.getExtraCatalog().put(new PdfName("Extensions"), extensions);
// add the swf file
byte[] swfData = readSwf();
PdfFileSpecification swfFile = PdfFileSpecification.fileEmbedded(writer,
null, "Open Flash Chart", swfData);
swfRef = writer.addToBody(swfFile);
existingContexts.put(exporterContext, swfRef);
}
else
{
swfRef = (PdfIndirectObject) existingContexts.get(exporterContext);
}
Rectangle rect = new Rectangle(element.getX() + exporterContext.getOffsetX(),
exporterContext.getExportedReport().getPageHeight() - element.getY() - exporterContext.getOffsetY(),
element.getX() + exporterContext.getOffsetX() + element.getWidth(),
exporterContext.getExportedReport().getPageHeight() - element.getY() - exporterContext.getOffsetY() - element.getHeight());
PdfAnnotation ann = new PdfAnnotation(writer, rect);
ann.put(PdfName.SUBTYPE, new PdfName("RichMedia"));
PdfDictionary settings = new PdfDictionary();
PdfDictionary activation = new PdfDictionary();
activation.put(new PdfName("Condition"), new PdfName("PV"));
settings.put(new PdfName("Activation"), activation);
ann.put(new PdfName("RichMediaSettings"), settings);
PdfDictionary content = new PdfDictionary();
HashMap<String, PdfIndirectReference> assets = new HashMap<String, PdfIndirectReference>();
assets.put("map.swf", swfRef.getIndirectReference());
PdfDictionary assetsDictionary = PdfNameTree.writeTree(assets, writer);
content.put(new PdfName("Assets"), assetsDictionary);
PdfArray configurations = new PdfArray();
PdfDictionary configuration = new PdfDictionary();
PdfArray instances = new PdfArray();
PdfDictionary instance = new PdfDictionary();
instance.put(new PdfName("Subtype"), new PdfName("Flash"));
PdfDictionary params = new PdfDictionary();
String chartData = (String) element.getParameterValue(PARAMETER_CHART_DATA);
String vars = "inline_data=" + chartData;
params.put(new PdfName("FlashVars"), new PdfString(vars));
instance.put(new PdfName("Params"), params);
instance.put(new PdfName("Asset"), swfRef.getIndirectReference());
PdfIndirectObject instanceRef = writer.addToBody(instance);
instances.add(instanceRef.getIndirectReference());
configuration.put(new PdfName("Instances"), instances);
PdfIndirectObject configurationRef = writer.addToBody(configuration);
configurations.add(configurationRef.getIndirectReference());
content.put(new PdfName("Configurations"), configurations);
ann.put(new PdfName("RichMediaContent"), content);
writer.addAnnotation(ann);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}