解壓縮後, 會得到三個資料夾:
- bin: 內有 proxygen.exe 執行檔, 用來產生Java與C#程式間溝通用的Proxy.
- lib: 包含將來執行時要用到的 .dll 與 .jar 檔.
- samples: 顧名思義, 放的是 jni4net 的範例程式碼.
Step 1: 利用 Visual Studio 建立一個名為 CSharpLib 的 C# 函式庫專案, 並簡單寫一個MainTable.cs 程式如下:
IReportRunnable design = this.birtReportEngine.openReportDesign("test_report.rptdesign");
IRunAndRenderTask task = this.birtReportEngine
.createRunAndRenderTask(design);
// set report parameters
task.setParameterValue("startTime", "2010-09-01");
task.setParameterValue("endTime", "2010-12-01");
// set output format
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
options.setOutputStream(response.getOutputStream());
task.setRenderOption(options);
// run the report
task.run();
task.close();
<?xml version="1.0" encoding="UTF-8" ?> <message> <from>yilin</from> <content>copyright © 2008 Power by Test site</content> <message>
原本以為 Netbeans6.1 跟以前的版本一樣, 要到 Tools –> Options 找 Encoding 的設定, 然後改成 Big5 / UTF-8.
沒想到這一版只要在專案上按滑鼠右鍵 –> Properties –> Source –> 畫面下方就有一個 Encoding 可以選.
如果原本檔案是用 Big5 儲存( Notepad 看到的編碼是 ANSI), 就選 Big5 的 Encoding.
如果是 UTF-8 的編碼, 預設應該就是 UTF-8 , 不用另外改 (簡體中文版例外).
注意: 已經用 Netbeans 開啟的檔案, 要關掉再開一次才會正常顯示
//產生一個200x200的BufferedImage
BufferedImage img = new BufferedImage(200, 200, BufferedImage.TYPE_BYTE_GRAY);
//產生一個正三角形與倒三角形,組合成一個六芒星的形狀
int[] aX = {100, 0, 200, 100};
int[] aY = {0, 150, 150, 0};
int[] bX = {100, 0, 200, 100};
int[] bY = {200, 50, 50, 200};
img.getGraphics().fillPolygon(aX, aY, 4);
img.getGraphics().fillPolygon(bX, bY, 4);
//強制將圖形以黑白兩色呈現, 這樣就可以將不規則圖形成為遮罩圖
Image mask = Image.getInstance(img, null, true);
//將繪製的圖形做一次Invert, 不然會變成顯示六芒星以外的圖
mask.setInverted(true);
mask.makeMask();
//讀取欲顯示的圖片
Image image = Image.getInstance("c:\\image.jpg");
//設定該圖片的遮罩圖
image.setImageMask(mask);
//設定該圖片在pdf版面中的位置
image.setAbsolutePosition(100, 100);
//最後透過PdfContentByte的assImage將圖片加入即可//設定Connection的URL
String filepath = "./test.mdb";
String url = "jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb);DBQ=" + filepath;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//取得Access的Connection
Connection objAccessConnection = DriverManager.getConnection(url);
DatabaseMetaData objMeta = objAccessConnection.getMetaData();
//取得Access的Table Schema
ResultSet objTables = objMeta.getTables(null, null, null, new String[]{"TABLE"});
//取得Access中的所有表格
while (objTables.next()) {
//表格名稱
String strTableName = objTables.getString("TABLE_NAME");
//查詢的SQL句
String strQuerySql = "SELECT * FROM " + strTableName;
//查詢用的Statement
Statement objAccessStatement = objAccessConnection.createStatement();
//取得資料集
ResultSet objData = objAccessStatement.executeQuery(strQuerySql);
}
//設定GET資料
Uri t_uri = new Uri("http://localhost/Test/Get.asp?id=yilin");
HttpWebRequest t_req = System.Net.WebRequest.Create(t_uri) as HttpWebRequest;
t_req.Method = "GET";
//取得回應的內容
System.Net.WebResponse t_resp = t_req.GetResponse();
System.IO.StreamReader t_stream = new System.IO.StreamReader(t_resp.GetResponseStream());
Console.WriteLine(t_stream.ReadToEnd().Trim());
string t_url = "http://localhost/Test/Post.asp"; string t_post = "id=yilin&password=helloworld"; //將POST資料轉成byte array byte[] t_bytdata = Encoding.UTF8.GetBytes(t_post); WebRequest t_req = WebRequest.Create(t_url); //設定POST資料 t_req.ContentType = "application/x-www-form-urlencoded"; t_req.Method = "POST"; Stream t_ws = t_req.GetRequestStream(); t_ws.Write(t_bytdata, 0, t_bytdata.Length); t_ws.Close();