So das ganze sieht jetzt wie folgt aus, allerdings wie übergebe ich meine Werte von LotusScript zu dem Java Agenten
.
Also ich glaub der Agent muss in Java aufgerufen werden.
Java:
* Copyright 2004 Jeremias Maerki. *
import lotus.domino.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.krysalis.barcode4j.impl.code39.Code39Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
import org.krysalis.barcode4j.tools.UnitConv;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
barcode39(inventarnr, tempdir);
} catch(Exception e) {
e.printStackTrace();
}
}
public static void barcode39(String barcode, String tempdir)
{
try {
//Create the barcode bean
Code39Bean bean = new Code39Bean();
final int dpi = 150;
//Configure the barcode generator
bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi)); //makes the narrow bar
//width exactly one pixel
bean.setWideFactor(3);
bean.doQuietZone(false);
//Open output file
File outputFile = new File(tempdir + "barcode.jpg");
OutputStream out = new FileOutputStream(outputFile);
try {
//Set up the canvas provider for monochrome JPEG output
BitmapCanvasProvider canvas = new BitmapCanvasProvider(
out, "image/jpeg", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0);
//Generate the barcode
bean.generateBarcode(canvas, barcode);
//Signal end of generation
canvas.finish();
} finally {
out.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
Das LotusScript bei QuerySave der Maske sieht so aus:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim tempdir As String
'Import des Barcode JPG
tempdir$ = Environ("temp")
tempdir= tempdir + "\"
Set agent = db.GetAgent( "BarcodeCode39")
Call agent.run
Set uidoc = workspace.CurrentDocument
Call uidoc.FieldClear("InvBarcode")
Call uidoc.GotoField("InvBarcode")
Call uidoc.Import("JPEG Image", tempdir +"barcode.jpg")
'Print tempdir
End Sub
Nun müsste ich doch irgendwie die Werte beim Aufruf des Java Agenten mit übergeben können?
Irgendwie komm ich da nicht weiter
MFG Michael