- 浏览: 99379 次
- 性别:
- 来自: 广州
-
最新评论
-
norain1988:
收藏~正在做这样的转换,但是楼主,我遇到一个问题,我以前的项目 ...
在Flash Builder 4中编译Flex 3项目 -
lctexe:
...
在Flash Builder 4中编译Flex 3项目 -
pc_kai:
...
FLEX地图应用教程之四 -
liaoshaoyao:
在FLex4下地图不能拖动呀, 请问楼主有遇到过这个问题没有呀 ...
FLEX地图应用教程之一 -
whao189:
楼主啊。 你那个点击下载 。。。里面是木马啊。。。,,,,,, ...
FLEX地图应用教程之一
1. java应用jcom将word转pdf
2.
3. 经验 2009 - 03 - 01 09 : 47 阅读 528 评论 0
4. 字号: 大大 中中 小小
5. 在JAVA中使用JCOM和JXL注意要点:
6.
7. (1 )在你的lib下要有jdom- 1.0 .jar,jxl- 2.5 . 5 .jar,jcom- 2.2 . 4 .jar,jcom.dll。(jcom下载地址(http: //sourceforge.net/projects/jcom))
8.
9. (2 )要把jcom.dll同时放到你JDK的bin目录下或者放到系统盘的windows下(推荐放到JDK的BIN下)
10.
11. (3 )你的机器需要安装ms office以及acrobat(不是reader)注:Acrobat Reader 软件是一个用于浏览 PDF 文件的实用程序;而 Adobe Acrobat 4.0 软件则用来创建和改善 PDF 文件,它是解决信息的共享、检查和发布的完整工具。
12.
13. 把上面的JAR包都放好后开始写应用中的工具类(申明一下在JCOM中得到的都是IDispatch对象,以下还会抛出一个JComException的异常)
14.
15. (1 )首先应该判断一个传进来的路径是Word 或是 Excel 还是其他的东东。
16.
17. if (path.endsWith( ".doc" )){
18.
19. ......
20.
21. }
22.
23. 注:如果是excel后缀是".xls" ;
24.
25. (2 )然后你要有两个对象:
26.
27. ReleaseManager rm = new ReleaseManager();
28.
29. IDispatch xlsApp=null ;
30.
31. 注:ReleaseManager相当于一个容器,与你机器上的所有JCOM组建交互,根据你传的参数他会去寻找你机器上的所有JCOM能操作的组建;
32.
33. IDispatch 可以理解为一个对象,所有的东东都是对象;
34.
35. (3 )你要让他知道你要和EXCEL交互你得这样做
36.
37. xlsApp = new IDispatch(rm, "Excel.Application" );
38.
39. (4 )接着要得到一个Workbooks(工作薄)
40.
41. IDispatch excel = (IDispatch) xlsApp.get("Workbooks" );
42.
43. (5 )设置当前对象是否可见
44.
45. xlsApp.put("Visible" , new java.lang.Boolean( false ));
46.
47. (6 )得到工作薄以后要打开
48.
49. IDispatch workbook = (IDispatch) excel.method("open" , new Object[] { FilePath(EXCEL存放的路径) });
50.
51. (7 )判断文件是否存在如果存在则删除
52.
53. File f = new File(outPath);
54.
55. if (f.exists())
56.
57. f.delete();
58.
59. (8 )将工作薄另存为
60.
61. workbook.method("saveAs" , new Object[] { outPath, new Integer( 9 ) });
62.
63. (9 )获得一个工作薄(workbook)下的所有工作表(Sheets)
64.
65. IDispatch sheets = (IDispatch) workbook.get("Sheets" );
66.
67. 注:得到的是一个数组;
68.
69. (10 )获得工作表(Sheets)的总数
70.
71. int sheetsCount = Integer.parseInt(sheets.get( "Count" ).toString());
72.
73. (11 )得到每个工作表(Sheets)的名称
74.
75. for ( int sheetInx= 1 ;sheetInx <= sheetsCount;sheetInx++) {
76.
77. IDispatch sheet = (IDispatch) sheets.get("item" , new Object[] { new Integer(sheetInx) });
78.
79. String sheetName = sheet.get("name" ).toString();
80.
81. }
82.
83. 注意:excel都是从1 开始遍历 而不是从 0 开始 所以 for 里面有多种写法看自己怎么顺手怎么写;
84.
85. 遍历工作表除了传索引还能传工作表名称:IDispatch sheet = ((IDispatch) sheets.get("item" , new Object[] { sheetName }));
86.
87. (12 )获得正在活动的工作表(sheet)
88.
89. IDispatch asheet = (IDispatch) xlsApp.get("ActiveSheet" );
90.
91. 注:xlsApp是从ReleaseManager里面获得EXCEL对象的一个IDispatch对象
92.
93. 如果是获得sheets要先获得工作薄(Workbook)然后用工作薄(Workbook)获得他下的所有工作表(sheets)
94.
95. (13 )获得工作表里面的所有行总数( 6 万多行吧)
96.
97. IDispatch row = (IDispatch)cursheet.get("Rows" );
98.
99. int rows = Integer.parseInt(row.get( "Count" ).toString());
100.
101. (14 )获得工作表里面的所有列总数( 256 列)
102.
103. IDispatch col = (IDispatch)sheet.get("Columns" );
104.
105. int cols = Integer.parseInt(col.get( "Count" ).toString());
106.
107. (15 )获得工作表里面可视的所有行总数
108.
109. IDispatch row = (IDispatch) ((IDispatch)cursheet.get("UsedRange" )).get( "Rows" );
110.
111. int rows = Integer.parseInt(row.get( "Count" ).toString());
112.
113. (16 )获得工作表里面可视的所有列总数
114.
115. IDispatch col = (IDispatch) ((IDispatch)cursheet.get("UsedRange" )).get( "Columns" );
116.
117. int cols = Integer.parseInt(col.get( "Count" ).toString());
118.
119. (17 )获得行列以后要获得里面的内容(这里用的rows 和 cols就是上面所得的)
120.
121. String cellVal="" ;
122.
123. String cellTxt="" ;
124.
125. String hasFormula= "" ;
126.
127. String cellFormula="" ;
128.
129. for ( int i= 0 ;i<rows;i++){
130.
131. for ( int j= 0 ;j<cols;j++){
132.
133. IDispatch cells = (IDispatch) cursheet.get("Cells" , new Object[] { new Integer(i+ 1 ), new Integer(j+ 1 ) });
134.
135. cellVal = cells.get("value" ).toString();
136.
137. cellTxt = cells.get("text" ).toString();
138.
139. hasFormula = cells.get("HasFormula" ).toString();
140.
141. cellFormula = cells.get("FormulaR1C1" ).toString();
142.
143. }
144.
145. }
146.
147. 注:这个遍历的时候也是从1 开始;
148.
149. cells.get("value" )获得的是浮点数格式 如果你输入的是 1 ,得到的会是 1.0 ;
150.
151. cells.get("text" )获得的是本身,你输入什么获得的就是什么;
152.
153. cells.get("HasFormula" )判断是否是公式,如果单元格里是公式则返回真( true ),如果不是公式则返回假( false );
154.
155. cells.get("FormulaR1C1" )获得公式,获得单元格里公式的内容;
156.
157. (18 )保护工作表
158.
159. asheet.method("Protect" , new Object[] { password, new java.lang.Boolean( true ), new java.lang.Boolean( true ) });
160.
161. 注:Protect后有N多参数 第1 -- 3 个分别是 password,DrawingObjects,Contects。
162.
163. (19 )解工作表保护
164.
165. asheet.method("Unprotect" , new Object[] { password });
166.
167. (20 )在 finally 里面写关闭
168.
169. if (xlsApp != null ) {
170.
171. ((IDispatch) xlsApp.get("ActiveWorkbook" )).put( "Saved" , new java.lang.Boolean( true )); //保存工作薄
172.
173. xlsApp.method("quit" , null ); //quit 是关闭的是整个EXCEL
174.
175. xlsApp = null ;
176.
177. }
178.
179. rm.release();
180.
181. rm = null ;
182.
183. (21 )关闭根据情况也写在 finally 里面
184.
185. workbook.method("close" , null );
186.
187. xlsApp.method("quit" , null );
188.
189. xlsApp=null ;
190.
191. rm.release();
192.
193. rm = null ;
194.
195. 注:workbook.method("close" , null );关闭的是Workbook里的工作表;
196.
197. xlsApp.method("quit" , null );关闭的是整个工作薄
198.
199. 注意:
200.
201. 关闭的时候一定要加上
202.
203. //rm 就是ReleaseManager的实例
204.
205. rm.release();
206.
207. rm = null ;
208.
209. 如果你打开EXCEL不加上面两句的话在进程里面还运行着EXCEL.EXE
210.
211. 附:word转pdf实例:
212.
213. package com.etong.util;
214.
215. import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
216. import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
217.
218. public class Office2Pdf {
219.
220. public void createPDF(String officePath,String pdfPath) throws Exception {
221. ReleaseManager rm = null ;
222. IDispatch app = null ;
223. try {
224. rm=new ReleaseManager();
225. app = new IDispatch(rm, "PDFMakerAPI.PDFMakerApp" );
226. app.method("CreatePDF" , new Object[]{officePath,pdfPath});
227. } catch (Exception e) {
228. e.printStackTrace();
229. } finally {
230. try {
231. app=null ;
232. rm.release();
233. rm = null ;
234. } catch (Exception e) {
235. throw e;
236. }
237. }
238. }
239.
240. public static void main(String[] args) throws Exception {
241. Office2Pdf one=new Office2Pdf();
242. one.createPDF("D:\\an\\11.doc" , "D:\\an\\11.pdf" );
243. }
244. }
2.
3. 经验 2009 - 03 - 01 09 : 47 阅读 528 评论 0
4. 字号: 大大 中中 小小
5. 在JAVA中使用JCOM和JXL注意要点:
6.
7. (1 )在你的lib下要有jdom- 1.0 .jar,jxl- 2.5 . 5 .jar,jcom- 2.2 . 4 .jar,jcom.dll。(jcom下载地址(http: //sourceforge.net/projects/jcom))
8.
9. (2 )要把jcom.dll同时放到你JDK的bin目录下或者放到系统盘的windows下(推荐放到JDK的BIN下)
10.
11. (3 )你的机器需要安装ms office以及acrobat(不是reader)注:Acrobat Reader 软件是一个用于浏览 PDF 文件的实用程序;而 Adobe Acrobat 4.0 软件则用来创建和改善 PDF 文件,它是解决信息的共享、检查和发布的完整工具。
12.
13. 把上面的JAR包都放好后开始写应用中的工具类(申明一下在JCOM中得到的都是IDispatch对象,以下还会抛出一个JComException的异常)
14.
15. (1 )首先应该判断一个传进来的路径是Word 或是 Excel 还是其他的东东。
16.
17. if (path.endsWith( ".doc" )){
18.
19. ......
20.
21. }
22.
23. 注:如果是excel后缀是".xls" ;
24.
25. (2 )然后你要有两个对象:
26.
27. ReleaseManager rm = new ReleaseManager();
28.
29. IDispatch xlsApp=null ;
30.
31. 注:ReleaseManager相当于一个容器,与你机器上的所有JCOM组建交互,根据你传的参数他会去寻找你机器上的所有JCOM能操作的组建;
32.
33. IDispatch 可以理解为一个对象,所有的东东都是对象;
34.
35. (3 )你要让他知道你要和EXCEL交互你得这样做
36.
37. xlsApp = new IDispatch(rm, "Excel.Application" );
38.
39. (4 )接着要得到一个Workbooks(工作薄)
40.
41. IDispatch excel = (IDispatch) xlsApp.get("Workbooks" );
42.
43. (5 )设置当前对象是否可见
44.
45. xlsApp.put("Visible" , new java.lang.Boolean( false ));
46.
47. (6 )得到工作薄以后要打开
48.
49. IDispatch workbook = (IDispatch) excel.method("open" , new Object[] { FilePath(EXCEL存放的路径) });
50.
51. (7 )判断文件是否存在如果存在则删除
52.
53. File f = new File(outPath);
54.
55. if (f.exists())
56.
57. f.delete();
58.
59. (8 )将工作薄另存为
60.
61. workbook.method("saveAs" , new Object[] { outPath, new Integer( 9 ) });
62.
63. (9 )获得一个工作薄(workbook)下的所有工作表(Sheets)
64.
65. IDispatch sheets = (IDispatch) workbook.get("Sheets" );
66.
67. 注:得到的是一个数组;
68.
69. (10 )获得工作表(Sheets)的总数
70.
71. int sheetsCount = Integer.parseInt(sheets.get( "Count" ).toString());
72.
73. (11 )得到每个工作表(Sheets)的名称
74.
75. for ( int sheetInx= 1 ;sheetInx <= sheetsCount;sheetInx++) {
76.
77. IDispatch sheet = (IDispatch) sheets.get("item" , new Object[] { new Integer(sheetInx) });
78.
79. String sheetName = sheet.get("name" ).toString();
80.
81. }
82.
83. 注意:excel都是从1 开始遍历 而不是从 0 开始 所以 for 里面有多种写法看自己怎么顺手怎么写;
84.
85. 遍历工作表除了传索引还能传工作表名称:IDispatch sheet = ((IDispatch) sheets.get("item" , new Object[] { sheetName }));
86.
87. (12 )获得正在活动的工作表(sheet)
88.
89. IDispatch asheet = (IDispatch) xlsApp.get("ActiveSheet" );
90.
91. 注:xlsApp是从ReleaseManager里面获得EXCEL对象的一个IDispatch对象
92.
93. 如果是获得sheets要先获得工作薄(Workbook)然后用工作薄(Workbook)获得他下的所有工作表(sheets)
94.
95. (13 )获得工作表里面的所有行总数( 6 万多行吧)
96.
97. IDispatch row = (IDispatch)cursheet.get("Rows" );
98.
99. int rows = Integer.parseInt(row.get( "Count" ).toString());
100.
101. (14 )获得工作表里面的所有列总数( 256 列)
102.
103. IDispatch col = (IDispatch)sheet.get("Columns" );
104.
105. int cols = Integer.parseInt(col.get( "Count" ).toString());
106.
107. (15 )获得工作表里面可视的所有行总数
108.
109. IDispatch row = (IDispatch) ((IDispatch)cursheet.get("UsedRange" )).get( "Rows" );
110.
111. int rows = Integer.parseInt(row.get( "Count" ).toString());
112.
113. (16 )获得工作表里面可视的所有列总数
114.
115. IDispatch col = (IDispatch) ((IDispatch)cursheet.get("UsedRange" )).get( "Columns" );
116.
117. int cols = Integer.parseInt(col.get( "Count" ).toString());
118.
119. (17 )获得行列以后要获得里面的内容(这里用的rows 和 cols就是上面所得的)
120.
121. String cellVal="" ;
122.
123. String cellTxt="" ;
124.
125. String hasFormula= "" ;
126.
127. String cellFormula="" ;
128.
129. for ( int i= 0 ;i<rows;i++){
130.
131. for ( int j= 0 ;j<cols;j++){
132.
133. IDispatch cells = (IDispatch) cursheet.get("Cells" , new Object[] { new Integer(i+ 1 ), new Integer(j+ 1 ) });
134.
135. cellVal = cells.get("value" ).toString();
136.
137. cellTxt = cells.get("text" ).toString();
138.
139. hasFormula = cells.get("HasFormula" ).toString();
140.
141. cellFormula = cells.get("FormulaR1C1" ).toString();
142.
143. }
144.
145. }
146.
147. 注:这个遍历的时候也是从1 开始;
148.
149. cells.get("value" )获得的是浮点数格式 如果你输入的是 1 ,得到的会是 1.0 ;
150.
151. cells.get("text" )获得的是本身,你输入什么获得的就是什么;
152.
153. cells.get("HasFormula" )判断是否是公式,如果单元格里是公式则返回真( true ),如果不是公式则返回假( false );
154.
155. cells.get("FormulaR1C1" )获得公式,获得单元格里公式的内容;
156.
157. (18 )保护工作表
158.
159. asheet.method("Protect" , new Object[] { password, new java.lang.Boolean( true ), new java.lang.Boolean( true ) });
160.
161. 注:Protect后有N多参数 第1 -- 3 个分别是 password,DrawingObjects,Contects。
162.
163. (19 )解工作表保护
164.
165. asheet.method("Unprotect" , new Object[] { password });
166.
167. (20 )在 finally 里面写关闭
168.
169. if (xlsApp != null ) {
170.
171. ((IDispatch) xlsApp.get("ActiveWorkbook" )).put( "Saved" , new java.lang.Boolean( true )); //保存工作薄
172.
173. xlsApp.method("quit" , null ); //quit 是关闭的是整个EXCEL
174.
175. xlsApp = null ;
176.
177. }
178.
179. rm.release();
180.
181. rm = null ;
182.
183. (21 )关闭根据情况也写在 finally 里面
184.
185. workbook.method("close" , null );
186.
187. xlsApp.method("quit" , null );
188.
189. xlsApp=null ;
190.
191. rm.release();
192.
193. rm = null ;
194.
195. 注:workbook.method("close" , null );关闭的是Workbook里的工作表;
196.
197. xlsApp.method("quit" , null );关闭的是整个工作薄
198.
199. 注意:
200.
201. 关闭的时候一定要加上
202.
203. //rm 就是ReleaseManager的实例
204.
205. rm.release();
206.
207. rm = null ;
208.
209. 如果你打开EXCEL不加上面两句的话在进程里面还运行着EXCEL.EXE
210.
211. 附:word转pdf实例:
212.
213. package com.etong.util;
214.
215. import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
216. import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
217.
218. public class Office2Pdf {
219.
220. public void createPDF(String officePath,String pdfPath) throws Exception {
221. ReleaseManager rm = null ;
222. IDispatch app = null ;
223. try {
224. rm=new ReleaseManager();
225. app = new IDispatch(rm, "PDFMakerAPI.PDFMakerApp" );
226. app.method("CreatePDF" , new Object[]{officePath,pdfPath});
227. } catch (Exception e) {
228. e.printStackTrace();
229. } finally {
230. try {
231. app=null ;
232. rm.release();
233. rm = null ;
234. } catch (Exception e) {
235. throw e;
236. }
237. }
238. }
239.
240. public static void main(String[] args) throws Exception {
241. Office2Pdf one=new Office2Pdf();
242. one.createPDF("D:\\an\\11.doc" , "D:\\an\\11.pdf" );
243. }
244. }
发表评论
-
Flex 4 SDK 新特性教程系列
2010-06-01 16:13 943本章是Flex 4 SDK 新特性教程系列 的第4章。本 ... -
在Flash Builder 4中编译Flex 3项目
2010-04-30 11:33 2874在Flash Builder 4里编译Flex3项目,要了解以 ... -
Flex与JSON及XML的互操作
2010-04-29 15:56 1183Flex之于Java,就像美丽之于大脑,或者还有别的说法?谁能 ... -
FLEX地图应用教程之四
2010-04-29 15:48 1448相信看到这篇的朋友,应该用我前三篇的例子玩过这个地 ... -
FLEX地图应用教程之三
2010-04-29 15:47 1390继续昨天的教程,不过这里要更正下,今天的方法会跟昨天有所不同, ... -
FLEX地图应用教程之二
2010-04-29 15:47 1469在上一步 , 我们已经基本学会如何连接API,显示地图 ... -
FLEX地图应用教程之一
2010-04-29 15:46 2130用FLEX做地图,然后在地图上实现各种应用,我想大家都会非常的 ... -
在Flex中使用GoogleMap
2010-04-29 15:33 1294在Flex中使用GoogleMap,可以让自己的网 ... -
12个Flex常用功能代码
2010-04-21 10:59 8361。 复制内容到系统剪贴板 System.setCl ... -
Flex加载图片,菜单条,编辑器,目录树,图片上传,播放器,
2010-04-15 10:52 16961、加载图片或swf文件 <?xml version=& ... -
Flex画图板(转)
2010-04-14 15:59 912<?xml version="1.0" ... -
flex+cairngorm+spring+hibernate整合实例
2010-04-12 11:43 1112准备:SQL server2005: JD ... -
FLEX中嵌入html代码
2010-04-12 11:16 897<?xml version="1.0" ... -
java与flex通信
2010-04-12 11:15 758一、准备: 服务 端:JDK1.5 (这个不用 ... -
Flex获取窗体大小 Flex与JS互相调用
2010-04-12 11:15 1759有时我们需要弹出自定义提示框,并显示在屏幕中心,这是需要根据 ... -
flex 3如何通过iframe嵌入html网页
2010-04-12 11:14 1440网上有很多文章写flex嵌入网页的方法,不过这里介绍一种普遍的 ... -
Flex 获取屏幕的分辨率
2010-04-12 11:13 1509<?xml version="1.0" ... -
flex与数据库交互
2010-04-12 11:12 826一》 通过java与数据库交互读取数据,然后flex和java ... -
如何使用mx:RemoteObject
2010-04-12 11:11 1309第一步:创建flex项目时指明项目使用远程数据调用,并指明远程 ... -
flex开发的仿pdf阅读器(swftools将PDF转成swf)
2010-04-12 11:08 3639SWFTools 是一组用来处理 ...
相关推荐
实现word excel ppt转为pdf,并提供转格式后删除原来的文件。(需要使用jcom)
"Jcom转换office为pdf"这个主题涉及到的是如何使用Java库JCom来实现将Microsoft Office格式的文件(如Word、Excel、PowerPoint)转换成PDF格式。这种转换在多种场景下都是必要的,比如保证文档在不同平台和设备上的...
三种java转换word 的方式 1、利用小美的Jacob调用MS Office转换文档为PDF 2、JCom是日本的一个开源项目,可以轻松实现office转换pdf 3、可以利用开源的OpenOffice,这个是linux提供的一个用于office的工具,调用内部...
在IT行业中,转换...总结来说,通过Jcom调用JNI将Office文档转换为PDF是一种结合了Java和Windows COM组件技术的解决方案,它允许Java开发者利用已有的Office转换能力,但这种方法在性能和资源管理上可能存在挑战。
标题中的"jcom.jar和jcom.dll"是两个关键组件,它们在Java环境中用于与Microsoft Office应用程序,如Visio、Word和Excel进行交互,并支持文件转换功能。jcom.jar是Java类库,它包含了用于与DLL(动态链接库)交互的...
- **Word到PDF**:将Microsoft Word文档转换为PDF格式,这在需要跨平台分享或打印时非常有用。 - **Excel处理**:读取、修改或创建Excel电子表格,可以进行数据导入导出、计算公式、图表操作等。 - **图片处理**:...
标题中的“Office to PDF”指的是将Microsoft Office创建的文件(如Excel的XLS,Word的DOC,PowerPoint的PPT)转换成PDF格式的过程。在Windows XP操作系统和MyEclipse 7开发环境中,进行这样的转换可能需要使用特定...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
在本方案中,Jacob主要用于调用MS Office(如Word、Excel等)的应用程序接口(API),将上传的文档转换为PDF格式。 **Jacob的核心特性** 包括: - **ActiveXComponent类**:用于加载COM组件,并提供访问这些组件的...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...