src/main/java/com/ruoyi/common/utils/poi/PrintWordUtiil.java

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
package com.ruoyi.common.utils.poi;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
 
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.standard.Sides;
import java.awt.print.*;
import java.io.File;
import java.io.IOException;
 
public class PrintWordUtiil {
 
    //这个方法是需要传打印机名字的(即指定打印机) 下边有个重载的方法不需要传打印机名字
    public static void printWord(String filePath,String printerName) throws PrinterException {
 
//        初始化线程
 
        ComThread.InitSTA();
        ActiveXComponent word = new ActiveXComponent("Word.Application");
        //设置打印机名称
        if (printerName == null && printerName == ""){
            //如果打印机的名字为空,则默认机器首个打印机
            //  创建一个PrinterJob对象
            PrinterJob printerJob  =  PrinterJob.getPrinterJob();
 
            //  设置打印机
            PrintService printService  =  PrintServiceLookup.lookupDefaultPrintService();
            printerJob.setPrintService(printService);
            printerName = printService.getName();
            System.out.println("发现的打印机名名称为:"+printerName);
        }
 
        word.setProperty("ActivePrinter", new Variant(printerName));
 
        // 这里Visible是控制文档打开后是可见还是不可见,若是静默打印,那么第三个参数就设为false就好了
        Dispatch.put(word, "Visible", new Variant(false));
        // 获取文档属性
        Dispatch document = word.getProperty("Documents").toDispatch();
        // 打开激活文挡
        Dispatch doc=Dispatch.call(document, "Open", filePath).toDispatch();
        
        //Dispatch doc = Dispatch.invoke(document, "Open", Dispatch.Method,
        //  new Object[] { filePath }, new int[1]).toDispatch();
        try{
            Dispatch.callN(doc, "PrintOut");
            System.out.println("打印成功!");
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("打印失败");
        }finally {
            try {
                if (doc != null) {
                    Dispatch.call(doc, "Close", new Variant(0));//word文档关闭
                }
后面还有 32 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。