精华内容
下载资源
问答
  • java打印word

    2017-07-21 14:29:58
    java打印word
  • java打印word的jacob

    2018-05-29 14:29:52
    java打印word的jacob java打印word的jacobjava打印word的jacob
  • java打印word(下载jar包送源码)
  • 主要介绍了如何通过Java打印Word文档,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java 打印Word文档

    2020-02-16 15:18:58
    Java 打印Word文档 本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法。文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入。 【示例1】通过...

    Java 打印Word文档
    本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法。文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入。

    【示例1】通过物理打印机打印
    Java代码 收藏代码
    import com.spire.doc.Document;
    import com.spire.ms.System.Drawing.Printing.PrinterSettings;

    public class PrintWord {

    public static void main(String[] args) {  
    
        //加载Word文档  
        Document document = new Document();  
        document.loadFromFile("C:\\Users\\Administrator\\Desktop\\DocoumentToPrint.docx");  
    
        //创建PrinterSettings对象  
        PrinterSettings printerSettings = new PrinterSettings();  
    
        //指定物理打印机名称  
        printerSettings.setPrinterName("\\\\192.168.1.104\\HP LaserJet P1007");  
    
        //设置打印份数  
        printerSettings.setCopies((short) 1);  
    
        //设置打印范围  
        printerSettings.setFromPage(2);  
        printerSettings.setToPage(4);  
    
        //应用打印设置  
        document.getPrintDocument().setPrinterSettings(printerSettings);  
    
        //执行打印  
        document.getPrintDocument().print();  
    }  
    

    }

    【示例2】通过虚拟打印机打印

    Java代码 收藏代码
    import com.spire.doc.Document;
    import com.spire.ms.System.Drawing.Printing.PrinterSettings;

    public class PrintWord {

    public static void main(String[] args) {  
    
        //加载Word文档  
        Document document = new Document();  
        document.loadFromFile("C:\\Users\\Administrator\\Desktop\\DocumentToPrint.docx");  
    
        //创建PrinterSettings对象  
        PrinterSettings printerSettings = new PrinterSettings();  
    
        //指定虚拟打印机  
        printerSettings.setPrinterName("Microsoft Print to PDF");  
    
        //打印到文档  
        printerSettings.setPrintToFile(true);  
    
        //指定打印文档的保存路径和名称  
        printerSettings.setPrintFileName("output/PrintToPDF.pdf");  
    
        //应用打印设置  
        document.getPrintDocument().setPrinterSettings(printerSettings);  
    
        //执行打印  
        document.getPrintDocument().print();  
    }  
    

    }
    喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!
    祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!在这里插入图片描述

    展开全文
  • java打印word的分享

    2019-03-06 01:09:30
    博文链接:https://comeon-liming.iteye.com/blog/121957
  • java实现word预览打印

    2020-12-22 10:04:48
    framemaker动态生成模板word文件,实现转为PDF在页面预览打印
  • java jcom word,excel打印

    2011-11-25 11:23:49
    java jcom word,excel打印
  • BS系统。在服务器存有多个word文件。要求在页面点击打印直接打印。 用户点击打印能够选择打印那些文件,并且能够控制份数。 (PS:文件是用户上传的,无法写死)
  • Java 使用jacob打印word文档

    千次阅读 2018-02-01 11:01:25
    记录并整理自己网上查阅的资料,网上的代码感觉始终有点不全,一些操作没有完全关闭,比如打开的Word没有关闭,一直占用这系统资源;由于网上很多实例都是讲解打印Excel文档的,微软的MSDN上面的具体的ActiveX部件...


    记录并整理自己网上查阅的资料,网上的代码感觉始终有点不全,一些操作没有完全关闭,比如打开的Word没有关闭,一直占用这系统资源;由于网上很多实例都是讲解打印Excel文档的,微软的MSDN上面的具体的ActiveX部件对象的属性、事件、方法等也是以Excel为例的(https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/sheets-printout-method-excel

    而我这里打印的文件是Word文档,所以在设置打印参数的时候发现没有打印份数这个参数(也可能是我没有深究到),还没有具体的打印完成状态返回,直接发送打印指令过去就完了。

    具体操作如下:

    1. 首先将JACOB的DLL拷贝至 C:\Windows\System32 中,然后引入jar包(jacob.jar)到项目中
    2. DCom Server Process Launcher(DcomLaunch)服务需要打开[services.msc]
    3. 需要安装Microsoft office 2003+

    具体的实现代码:

    /**
     * @param path  文档路径
     * @param copies  打印份数(word的打印这个参数无法设置)
     */
    public static void printWord(String path,int copies){
        if(path.isEmpty()||copies<1){
            System.out.println("无文档文件");
            return;
        }
        System.out.println("开始打印");
        ComThread.InitSTA();
        ActiveXComponent word=new ActiveXComponent("Word.Application");//创建 ActiveX部件对象,这里是Word的
        Dispatch doc=null;
        Dispatch.put(word, "Visible", new Variant(false)); Visible是控制文档打开后是可见还是不可见,false:静默打印(不可见)
        Dispatch docs=word.getProperty("Documents").toDispatch();
        doc=Dispatch.call(docs, "Open", path).toDispatch();
    
        try {
            Dispatch.call(doc, "PrintOut");//打印
            System.out.println("完成打印");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("打印失败");
        }finally{
            try {
                if(doc!=null){
                    Dispatch.call(doc, "Close",new Variant(true));//word文档关闭
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
            //退出
            word.invoke("Quit", new Variant[0]);
            //释放资源
            ComThread.Release();
            ComThread.quitMainSTA();
        }
    }
    

    一个基本的打印就完成了,直接调用这个方法即可打印Word文档。
    附(jar包和dll文件下载,由于csdn已经不能设置免费下载了,所以我就设了最少的一个2积分):http://download.csdn.net/download/qq_26891233/10234805

    展开全文
  • java实现word模板打印

    千次阅读 2019-12-07 14:19:28
    先将你的word模板配置好 这里面的${}类似与jsp的el表达式,之后在java代码中放入你的值,既能将你想要输入的值打在模板上。然后再将这个word转xml,再改为ftl(这里改的都是他的后缀)。 java的数据导入 map.put(...

    转ftl模板

    先将你的word模板配置好
    在这里插入图片描述
    这里面的${}类似与jsp的el表达式,之后在java代码中放入你的值,既能将你想要输入的值打在模板上。然后再将这个word转xml,再改为ftl(这里改的都是他的后缀)。

    java的数据导入

    map.put("xsmc1",ConvertUtils.toString(kckh.get(0).get("xsmc1")));
    map.put("xsmc2",ConvertUtils.toString(kckh.get(0).get("xsmc2")));
    map.put("xsmc3",ConvertUtils.toString(kckh.get(0).get("xsmc3")));
    map.put("xsmc4",ConvertUtils.toString(kckh.get(0).get("xsmc4")));
    map.put("xsmc5",ConvertUtils.toString(kckh.get(0).get("xsmc5")));
    //type是获取模板路径的一个key
    file = WordGenerator.createDoc(map, type);
    
     /**
         * 将键值数据填充到模板中
         * @param dataMap	键值数据map
         * @param type	模板
         * @return
         */
        public static File createDoc(Map<?, ?> dataMap, String type) {  
            String name = "temp" + (int) (Math.random() * 100000) + ".doc";  
            File f = new File(name);  
            Template t = allTemplates.get(type);  
            try {  
                // 这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word文档会因为有无法识别的编码而无法打开  
                Writer w = new OutputStreamWriter(new FileOutputStream(f), "utf-8");  
                t.process(dataMap, w);  
                w.close();  
            } catch (Exception ex) {  
                ex.printStackTrace();  
                throw new RuntimeException(ex);  
            }  
            return f;   
        }  
    

    jar包就是用freemarker.jar就行。

    ftl模板问题修改

    ftl虽然里面内容比较多,但是其实修改起来是比较方便的。
    在这里插入图片描述
    首先tc可以理解为html中的td,其实有tcPr、p、pPr和r。我们应该注意的地方就是r,里面就是你要输入的模板值。因为有时候改word模板是一件很麻烦的事情,可以直接将整个w:tc拿起来复制粘贴使用,需要改的就是w:r中的内容。
    如果你传入的值为null,他用模板创建createDoc时会报错。我们可以根据报错找到具体是模板中的那一行。

    <#if xsmc1 ??>${xsmc1}<#/if>//这里是判断他的这个值是否为null
    

    在这里插入图片描述
    实现复选框勾选展示的,因为我这里word版本的问题,左边的是不勾选,右边为勾选。

    <#if kcfzr ??> //先判断是否为null,为什么则为不勾选的。因为数据库中拿到的值可能为null
    <#if kcfzr=="1">
    	<w:sym w:font="Wingdings 2" w:char="0052"/>//勾选中
    <#else>
    	<w:sym w:font="Wingdings 2" w:char="00A3"/>//没有勾选
    </#if>
    <#else>
    	<w:sym w:font="Wingdings 2" w:char="00A3"/>
    </#if>
    

    在这里插入图片描述

    展开全文
  • Java中Jacob打印word、excel

    千次阅读 2015-02-04 16:04:02
    打印word和excel是可以根据参数设置打印机的,但是ppt的ActivePrinter属性是只读的,不能设置打印机,看了ppt只能转换为PDF再打印了 private static void printWord(PrintService printService, byte[] ...

    最近做项目需要打印office,搞了好久,现在分享下。打印word和excel是可以根据参数设置打印机的,但是ppt的ActivePrinter属性是只读的,不能设置打印机,看了ppt只能转换为PDF再打印了


    private static void printWord(PrintService printService, byte[] content, String type, PageRanges pageRanges){

            //得到文件路径
            String filePath = getPrintUtils().writeTemporaryFile(content, type);
            ActiveXComponent app = null;    //word运行程序对象
            Dispatch doc = null;    //word文档
            try{
                ComThread.InitSTA();
                //创建ActiveX部件对象
                app = new ActiveXComponent("Word.Application");
                //设置打印机名称
                app.setProperty("ActivePrinter", new Variant(printService.getName()));
                Dispatch.put(app, "Visible", new Variant(false));
                //打开word文档
                Dispatch docs = app.getProperty("Documents").toDispatch();
                doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[]{filePath, new Variant(false), new Variant(true), new Variant(false)},
                        new int[1]).toDispatch();
                //开始打印
                Object[] object = new Object[2];
                object[0] = Variant.VT_MISSING;
                object[1] = Variant.VT_MISSING;
                if(pageRanges != null) {
                    object[0] = new Integer(pageRanges.getMembers()[0][0]);
                    object[1] = new Integer(pageRanges.getMembers()[0][1]);

                }

                //object对象具体参数可参考MSDN上word的Document方法设置参数

                Dispatch.callN(doc, "PrintOut", object);
            }catch (Exception e){
                e.printStackTrace();
                return;
            }finally {
                if(doc != null){
                    Dispatch.call(doc, "Close", false);
                }
                if(app != null){
                    app.invoke("Quit", 0);
                }
                ComThread.Release();
                //删除临时文件
                File file = new File(filePath);
                file.delete();
            }

        }


    private static void printExcel(PrintService printService, byte[] content, String type, PageRanges pageRanges){
            String filePath = getPrintUtils().writeTemporaryFile(content, type);
            ActiveXComponent app = null;    //word运行程序对象
            Dispatch excel = null;    //Excel文档
            try {
                ComThread.InitSTA();
                app = new ActiveXComponent("Excel.Application");
                // 打开文档
                Dispatch.put(app, "Visible", new Variant(false));
                Dispatch workbooks = app.getProperty("Workbooks").toDispatch();
                excel = Dispatch.call(workbooks, "Open", filePath).toDispatch();
                //开始打印
                Object[] object = new Object[8];
                object[0] = Variant.VT_MISSING;
                object[1] = Variant.VT_MISSING;
                if(pageRanges != null){
                    object[0] = new Integer(pageRanges.getMembers()[0][0]);
                    object[1] = new Integer(pageRanges.getMembers()[0][1]);
                }
                object[2] = Variant.VT_MISSING;
                object[3] = new Boolean(false);
                object[4] = printService.getName();
                object[5] = new Boolean(false);
                object[6] = Variant.VT_MISSING;
                object[7] = Variant.VT_MISSING;
                //object对象具体参数可参考MSDN上excel的Workbook方法设置参数
                Dispatch.callN(excel,"PrintOut",object);
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                if(excel != null){
                    Dispatch.call(excel, "Close", false);
                }
                if(app != null){
                    app.invoke("Quit", new Variant[] {});
                }
                ComThread.Release();
                //删除临时文件
                File file = new File(filePath);
                file.delete();
            }

        }

    展开全文
  • 我曾写过一篇文章,它主要介绍了如何通过物理打印机和虚拟打印机来打印Word文档。今天这篇教程将介绍一种新的方法来实现对Word文档的打印。 此次使用到的类库仍然是Spire.Doc for Java。它提供的PrinterJob类可设置...
  • java预览word,并实现打印,各大主流浏览器都支持 ,linux/windows支持,如果根据文档做不出来,可以联系我QQ979225014
  • 现在用纯JAVA做到的CS架构的系统,现在需要文件打印,我可以生成PDF或者word文档,但是一直没有方法打印出来,求大神指点指点!
  • 前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档。 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整。网上的代码也是千篇一律,在我的打印设备Canon iR2525/2530 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,688
精华内容 18,675
关键字:

java打印word

java 订阅