如何使用jacob将word转换为PDF

使用Jacob实现将Word文件转换为Pdf文件 如果是首次使用 jacob,建议先直接从 github上下载 zip包,因为在实现Word转Pdf的时候,不仅需要用到 jacob.jar,还需要 jacob.dll 库,而zip包中都有。官方使用文档可以参考:https://github.com/freemansoft/jacob-project/blob/main/docs/UsingJacob.md。// 如果安装的是微软的 Office,需要使用 Word.Application。 阅读详情

一、代码实现功能介绍:

word文档转换为PDF文件的功能。

二、使用的环境条件:

正是由于jacob的jni这种特性,所以运行jacob的机器上必须要有jacob.dll在系统的path中,而且还要有相应的被调用的com组件存在。

下面列表说明了本项目使用的软件环境和一些注意事项:
  1.Word2003、Adobe Acrobat 8.0 Professional(注:也可以使用7.5以上版本,我在做的时候,7.0版本有一些BUG,后又重新安装了8.0版本,安装地址及破解地址分别为:
http://down1.greendown.cn//200611/AcroPro80_efg.rar
http://soft.greendown.cn//200611/AcroPro80_Crack.rar);
  2.并且关闭了Adobe PDF打印机属性->Adobe PDF Setting中的“do not send fonts to PDF”选项(注:此属性在Adobe Reader中的文件->打印的属性中进行设置。如果使用7.5以下版本可能会不好用,无法进行设置);
  3.安装了gs811w32.rar(PDF转换时所需要的脚本ps),地址为:
http://www.allmail.com.cn/gs811w32.rar
  4.安装了postscript.rar(PDF虚拟打印机的驱动),地址为:
http://www.pdfhome.com.cn/Resource/DownLoad/postscript.rar
虚拟打印机安装完成之后,控制面板》打印机及其他硬件》打印机和传真》添加打印机(如果添加时显示“操作无法完成。打印后台程序服务没有运行。”请打开控制面板》性能和维护》管理工具》服务》找到“Print Spooler”》右击属性》启动)》选择本地打印机(如果没有打印机请将“检测并安装即插打印机”的钩去掉)》下一步》选择“使用以下端口”(My Document/*.pdf  (Adobe PDF Port))》下一步,记住打印机的名字:Adobe PDF)》下一步(打印机请选择:不测试)
  5.下载得到了jacob.jar。地址为:
http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368
将解压后的源代码包中jacob.dll存放到system32目录下。(注:目前比较稳定的版本分别为1.7、1.8、1.9,我用的是1.8版本)

注意:

第1、2个条件是必须的。不然会可能出现下面的错误:

三、原理:

doc -> ps ->pdf  >>>>    office 2003 ->gs811w32->Adobe Acrobat 8->postscript->打印机

四、源代码:

package com.bjinfotech.practice.jacob;

import com.jacob.com.*;
import com.jacob.activeX.*;

public class Dispatch_MSWord {
      private ActiveXComponent wordCom=null;
      private Object wordDoc=null;
      private final Variant False=new Variant(false);
      private final Variant True=new Variant(true);
       
        /**
         * 打开word文档
         * @param filePath word文档
         * @return 返回word文档对象
         */
      public boolean openWord(String filePath){
                //建立ActiveX部件
                wordCom=new ActiveXComponent("Word.Application");               
                try{
                        //返回wrdCom.Documents的Dispatch
                        Object wrdDocs=wordCom.getProperty("Documents").toDispatch();
                        //调用wrdCom.Documents.Open方法打开指定的word文档,返回wordDoc
                        wordDoc=Dispatch.invoke(wrdDocs,"Open",Dispatch.Method,new Object[]{filePath},new int[1]).toDispatch();
                        return true;
                }
                catch(Exception ex){
                        ex.printStackTrace();
                }
                return false;
        }
       
        /**
         * 关闭word文档
         */
     public void closeWord(){
                //关闭word文件
             if (wordCom!=null){
           int save = 0;
           Variant doNotSaveChanges = new Variant(save);
                       wordCom.invoke("Quit",new Variant[]{doNotSaveChanges});
             wordCom=null;                    
           ComThread.Release();
      }
     }       
       
        /**
         * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件
         * @param sourceFilePath 源文件路径
         * @param destinPSFilePath 首先生成的PS文件路径
         * @param destinPDFFilePath 生成PDF文件路径
         */
     public void docToPDF(String sourceFilePath,String destinPSFilePath,String destinPDFFilePath){
                if (!openWord(sourceFilePath)){
                        closeWord();
                        return;
                }
                //建立Adobe Distiller的com对象
                ActiveXComponent distiller=new ActiveXComponent("PDFDistiller.PDFDistiller.1");
                try{
                //设置当前使用的打印机,我的Adobe Distiller打印机名字为"Adobe PDF"
                wordCom.setProperty("ActivePrinter",new Variant("Adobe PDF"));                      

                //是否在后台运行
                Variant Background=False;
                //是否追加打印
                Variant Append =False;
                //打印所有文档
                int wdPrintAllDocument=0;
                Variant Range =new Variant(wdPrintAllDocument);
                //输出的postscript文件的路径
                Variant OutputFileName =new Variant(destinPSFilePath);            
                //调用word文档对象的PrintOut方法:将word文档打印为postscript文档,简称ps文档
                Dispatch.callN(wordDoc, "PrintOut", new Variant[]{Background,Append,Range,OutputFileName}) ;
                System.out.println("由word文档打印为ps文档成功!");
               
                //调用Distiller对象的FileToPDF方法所用的参数,详细内容参考Distiller Api手册
                //作为输入的ps文档路径
                Variant inputPostScriptFilePath=new Variant(destinPSFilePath);
                //作为输出的pdf文档的路径
                Variant outputPDFFilePath=new Variant(destinPDFFilePath);
                //定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件
                Variant PDFOption=new Variant("");
                //调用FileToPDF方法将ps文档转换为pdf文档
                Dispatch.callN(distiller,"FileToPDF",new Variant[]{inputPostScriptFilePath,outputPDFFilePath,PDFOption});
                System.out.println("由ps文档转换为pdf文档成功!");               
                }
                catch(Exception ex){
                        ex.printStackTrace();
                }
                finally{
                        closeWord();
                }
        }
       
        public static void main(String[] argv){
                Dispatch_MSWord d=new Dispatch_MSWord();
                d.docToPDF("c:/MacroTest.doc","c:/1p.ps","c:/1p.pdf");
        }
}

 
五、参考资源:

http://www.matrix.org.cn/resource/article/2005-11-04/jacob_word_PDF_43923.html
http://blog.youkuaiyun.com/hcx_2008/archive/2007/09/10/1779534.aspx 

通过Jacob和freemarker将word转换成PDF 有时候我们需要在一些系统中生成一些pdf文件,用于展示一些文档信息,我们采用的办法是通过freemarker制作模板xx.ftl,然后将数据填充到freeamarker模板里,生成word文档,然后再通过jacob将word转化成PDF。 调用代码: String doc = fileName + “.doc”; WordUtil.buildDoc(template, doc, params); ... 阅读详情

相关推荐

使用Jacob库实现Word到PDF转换的详细指南.zip

组件对象模型(Component Object Model, COM)是Microsoft推出的一种软件组件架构,用于创建可交互的二进制软件组件。它被广泛应用于Windows平台的各种软件开发中。尽管COM框架提供了强大的功能,但其本身并不支持跨语言特性,特别是不直接支持Java。为了在Java平台上调用Windows COM组件,开发者需要使用特定的桥接库。

weixin_35414260的博客 1138

jacob word 转pdf

jacob jar link:https://sourceforge.net/projects/jacob-project/files/jacob-project/ 1、解开下载的jacob_1.18.zip,在文件夹中找到jacob.dll和jacob.jar两个文件 2、将压缩包解压后,Jacob.jar添加到Libraries中 3、将Jacob.dll放至“WINDOWS\SYSTE

1298

java利用jacob将word转pdf

主要为大家详细介绍了java利用jacob将word转pdf,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java处理图片 adobe_JAVA使用jacob调用adobe动态库pdf转换图片 | 学步园

前提,目前java处理pdf 转换图片,能达到高清的很少。所有的java pdf工具我都试过了,或多或少都有一些问题,达不到理想的效果。我试过pdfbox、PDFRenderer、xpdf、jpedal等等pdf工具,不是中文乱码、字体不识别、格式混乱、就是分辨率过低,毕竟都是开源的工具。其中有一个收费的纯java的pdf工具转换效果非常理想,就是太贵了。这里附上这个收费的地址,有兴趣的可以去看看...

weixin_42464697的博客 887

Python+Seaborn可视化:双因素方差分析结果这样呈现更专业

本文详细介绍了如何利用Python中的Seaborn和statsmodels库,专业地执行并可视化双因素方差分析结果。通过模拟实验数据,演示了从模型构建、统计检验(包括交互作用分析)到诊断验证的全流程。重点展示了如何使用Seaborn绘制交互效应图、组合分布图及热图,将复杂的统计结果转化为直观、富有洞察力的可视化图表,助力科研论文与商业报告的专业呈现。

weixin_29274969的博客 137

MATLAB打开.m文件乱码解决办法

Matlab打开.m文件出现中文乱码问题,是因为Matlab存在两种编码格式:GBK和UTF-8,而不同版本的Matlab编码格式可能不统一,因此在不同版本的Matlab打开文件,由于编码格式的改变,会导致注释乱码。 1.查看你的Matlab的文件编码方式,在Matlab的命令行窗口输入feature('locale') ,如下图,可以看到默认编码为GBK,那问题就变成了将Matlab的文件编码方式GBK修改成UTF-8; 2.找到你的Matlab安装目录bin文件夹下的lcdata_utf.

zhugby的博客 4万+

java使用jacob 将word转换为pdf

查询了很多网站 知道使用jacob 可以将word 转换成pdf; 首先我自己的环境是windows xp ,office2007 ,jdk1.5; 1.先下载office2007 能另存为pdf的插件 SaveAsPDFandXPS.exe 安装 2.附件提供了jacob1.9的下载 3.这点很重要也是耗时我最久的就是jacob.dll与jacob.jar的存放位置;位置

王星乐的博客 1929

大疆前端开发面试题及参考答案(4万字长文)

在前端项目中,难点和性能优化的挑战无处不在。比如在处理复杂交互界面时,实现流畅的动画效果和实时反馈就是一大难点。当界面中有大量元素需要同时进行交互和动态更新,像电商平台的商品筛选和排序功能,不仅要保证操作的即时响应,还要确保界面在各种设备和网络环境下的稳定性,这就需要对事件处理、DOM 操作和数据更新机制有深入理解。在性能优化方面,首屏加载速度是常见的难点。当页面包含大量图片、脚本和样式文件时,如何合理地进行资源压缩、合并与缓存,以减少加载时间,是需要精心考虑的。

大模型大数据攻城狮的专栏 1154

jacob将word,excel,ppt转换为PDF格式

使用的一些心得吧 jacob的底层调用的其实是office的驱动,由于linux上肯定没有word,所以使用jacob对文档进行处理的话,肯定就不能部署在linux服务器上了,只有在windows服务器上。 也正是因为这个原因,jacob对于word或者excel的操作,就相当于我们打开word或者excel文件进行操作,从道理上来说,能用word处理的,jacob都可以,诸如转换为Pdf,插...

star_kite的博客 1092

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4572

C#实战:YOLOv5+海康工业相机上位机开发全攻略(从图像采集到检测落地)

工业场景下AI质检系统的开发需要综合考虑硬件适配性、算法性能和稳定性。本文针对新能源电池极片缺陷检测场景,提出基于海康工业相机+YOLOv5+C#的技术方案,涵盖以下关键点: 工业级技术选型:选择支持全局快门的海康相机、OpenCvSharp图像处理、YOLOv5s轻量化模型,确保在无GPU工控机上稳定运行。 开发流程优化: 海康SDK集成:详细说明DLL配置和常见报错解决方案 YOLOv5模型导出:强调batch=1、opset12等工业适配参数 相机采集封装:提供线程安全的C#封装类,支持触发采集模式

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1196

java jacob docx转pdf_jacob将word、excel转换为pdf文件

Excel转pdf:package jacob;import java.io.*;import java.util.Calendar;import java.util.Date;import com.jacob.activeX.ActiveXComponent;import com.jacob.com.ComThread;import com.jacob.com.Dispatch;import c...

weixin_39525300的博客 156

软考高级-系统架构设计师 论文范文参考(一)

系统架构设计师 论文参考

片言可决讼,半纸能缚龙 4341

Java 使用 jacob 将 word 文档转换为 pdf 文件

网上查询了许许多多的博客,说利用 poi、iText、Jsoup、jdoctopdf、使用 jodconverter 来调用 openOffice 的服务来转换等等,我尝试了很多种,但要么显示不完全,要么可是可能有问题,使用这个 jacob 的方法我最开始是最不想用的,因为它要导入 dll 文件,但最后我还是选择了使用该方法,原因是感觉转换后的 pdf 文件简直就是完美。   jacob 缺点:...

918

华为OD机试 - 跳房子I(Java 双机位A卷 100分)

可行的两步组合有 [1, 2] (索引和 0+3=3)、[1, 2] (索引和 0+4=4)、[4, 2] (索引和 1+3=4)、[4, 2] (索引和 1+4=5)、[5, 2] (索引和 2+3=5)、[5, 2] (索引和 2+4=6)。此样例有多种组合满足两回合跳到最后,譬如[-1,9], [2,6],其中[-1,9]的索引和为0+3=3, [2,6]的索引和为1+4=5, 所以索引和最小的步数组合为[-1,9].[3, 2] 和 [1, 4] 都满足和等于 5,且索引和均为 3。

学Java,找哪吒 4508

信息传输仿真:卫星通信系统仿真_(12).基于SystemVue的卫星通信仿真

SystemVue是Cadence公司开发的一款用于系统级设计和仿真的软件工具。它主要用于无线通信系统的设计和验证,特别是在卫星通信、雷达、射频和微波通信等领域。SystemVue提供了一个集成的环境,用户可以通过拖拽和连接各种预定义的模块来构建复杂的通信系统模型,从而进行性能分析和优化。

2401_87715305的博客 1370

PDF报表操作01~~使用Jacob将word转换pdf

文章目录1. jacob介绍2. 使用场景3. 环境准备3.1 百度云下载3.2 把下载的jar放入到本地仓库3.3 把下面dll放入到java的jre/bin目录中3.4 在项目中加入依赖4. Jacob调用MS Office COM自动化组件转换Office文档为PDF5. 代码展示 1. jacob介绍         jacob是Java与COM组件桥接的缩写,即JAVA-COM Bridge。通过使用Jacob类库,我

自学之路←_← 741

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java应用jcom将word转pdf_Java 使用 jacob 将 word 文档转换为 pdf 文件

网上查询了许许多多的博客,说利用 poi、iText、Jsoup、jdoctopdf、使用 jodconverter 来调用 openOffice 的服务来转换等等,我尝试了很多种,但要么显示不完全,要么可是可能有问题,使用这个 jacob 的方法我最开始是最不想用的,因为它要导入 dll 文件,但最后我还是选择了使用该方法,原因是感觉转换后的 pdf 文件简直就是完美。jacob 缺点:需要 w...

weixin_42502811的博客 326

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java word转pdf jacob_Java 使用 jacob 将 word 文档转换为 pdf 文件

网上查询了许许多多的博客,说利用 poi、iText、Jsoup、jdoctopdf、使用 jodconverter 来调用 openOffice 的服务来转换等等,我尝试了很多种,但要么显示不完全,要么可是可能有问题,使用这个 jacob 的方法我最开始是最不想用的,因为它要导入 dll 文件,但最后我还是选择了使用该方法,原因是感觉转换后的 pdf 文件简直就是完美。jacob 缺点:需要 w...

weixin_31482671的博客 277

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java使用jacob控制office组件实现word、excel、PPT转换成PDF

java使用jacob控制office组件实现word、excel、PPT转换成PDF 首先要下载jacob-1.14.3-x64.dll或jacob-1.14.3-x86.dll组件,将组件放到jdk\bin目录下 配置jacob-1.14.3maven &amp;amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;

Michean的博客 2140

利用Jacob将word转换为pdf

最近一个项目中需要实现该功能,折腾了很久才弄出来。为了自己以后不用再折腾,特此将过程和遇到的问题记录下来。 运行环境 window server2008 x64,tomcat,jdk6,word2007 说明:word2007需要安装SaveAsPDF插件,插件微软官网可以直接下载。 大概步骤 (1)去jacob官网下载jacob程序包,包括两个dll文件和一个jar包文件 (2)将jaco

蓝猫的专栏 1362
上一篇: 参数检查
下一篇: Jakarta POI 3.0
java_user
博客等级 码龄21年 11粉丝 40原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值