当前位置: 首页 > 面试题库 >

Java Print程序存在规范问题?

杜祺
2023-03-14
问题内容

我用这个

DocFlavor[] docFalvor = prnSvc.getSupportedDocFlavors();
        for (int i = 0; i < docFalvor.length; i++) {
            System.out.println(docFalvor[i].getMimeType());
        }

获取我的打印机的DocFlavor并返回

image/gif
image/gif
image/gif
image/jpeg
image/jpeg
image/jpeg
image/png
image/png
image/png
application/x-java-jvm-local-objectref
application/x-java-jvm-local-objectref
application/octet-stream
application/octet-stream
application/octet-stream

和米使用

import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.Sides;


public class PrintFileWithSpec {


    public static void printFile(String filename){

    FileInputStream psStream=null;
    try {
       psStream = new FileInputStream(filename);
    } catch (FileNotFoundException ffne) {}

    if (psStream == null) {
        return;
    }

    DocFlavor psInFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
    Doc myDoc = new SimpleDoc(psStream, psInFormat, null);  
    PrintRequestAttributeSet aset = 
        new HashPrintRequestAttributeSet();
    aset.add(new Copies(5));
    //aset.add(MediaSize.ISO_A4); 
    aset.add(Sides.DUPLEX);
    PrintService[] services = 
      PrintServiceLookup.lookupPrintServices(psInFormat, aset);

    DocFlavor[] docFalvor = services[3].getSupportedDocFlavors();
    for (int i = 0; i < docFalvor.length; i++) {
        System.out.println(docFalvor[i].getMimeType());
    }

    if (services.length > 0) {
       DocPrintJob job = services[3].createPrintJob();
       try 
       {
           job.print(myDoc, aset);
       } catch (PrintException pe) {
  System.out.print(pe);

}
        }
        }

    public static void main(String [] args)
    {       
        printFile("D:/Resume.doc");
    }
}

代码打印文件bt,服务数组为空?

当我通过PrintServiceLookup.lookupPrintServices(null,null);

它返回所有可用的打印机,当我打印文档时,它给出javax.print.PrintException:打印机不接受工作…


问题答案:

尝试卸下并添加打印机。另外,如果Docflavor为“自动检测”,则您传递的属性集将无效。您要打印哪种类型的文档?它在受支持的Docflavor中吗?如果docflavor不支持,则无法使用Java
Print Service API打印doc,pdf等。



 类似资料:
  • 声明 FinClip小程序需给用户提供良好的体验。提供具有价值的内容,遵守国家相关法律法规,不提供违法或违反相关规则的内容或从事相关行为;不从事过度营销行为,鼓励广大开发者向用户提供符合需求的内容或实用工具。 小程序的开发者或运营者,需对小程序项下的应用或服务承担法律责任,我们不因审核行为而被认定为小程序的提供方或共同提供方,且不因审核需对小程序项下的应用或服务承担责任。 一、小程序命名审核规范

  • 我目前的输入 JSON 是 我想要如下所示的输出 JSON。我只需要添加一个额外的键并值“key5” 预期产量 并提及如何覆盖key4的值 请帮我找到这方面的Jolt Json规范。 以下是我使用的规格

  • 编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。 首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点。 包的名称由一个小写字母序列组成。 类的名称由大写字母开头,其他字母都由小写的单词组成。 类的实例的名称由一个小写字母开头,后面的单词由大写字母开头。 常量的名称都大写,并且指出完整含义。 参数的名称无其他具体规定。

  • 小数转 2 进制 方法:乘2取整 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止。第一次所得到为最高位,最后一次得到为最低位。 如0.25的二进制: 0.25*2 = 0.5 取整是0, 0.5*2 =1.0 取整是1, 即0.25的二进制为 0.01(第一

  • 小数转 2 进制 方法:乘2取整 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止。第一次所得到为最高位,最后一次得到为最低位。 如0.25的二进制: 0.25*2 = 0.5 取整是0, 0.5*2 =1.0 取整是1, 即0.25的二进制为 0.01(第一

  • 问题内容: 我正在尝试运行此查询: 它只是返回两个日期相等的对象,而忽略时间部分。 但我收到: {“功能[数据库] .TruncateTime不存在”} 堆栈跟踪: 我在用着: C#Visual Studio 2010 EntityFramework 4数据库优先 网络框架4 MYSQL服务器5.6 MySQL.Data和MySQL.Data.Entity的版本是6.6.5.0 MySQL支持Tr