如何在Java中发送到打印机时获取文件的页数?

时间:2013-06-07 18:45:35

标签: java printing desktop

我正在开发一个项目,我收到一个文件,然后使用desktop.print(file);进行打印 但是,如果此文件非常大,比如说50页,那么我不想将作业发送到打印机。

有没有办法在我开始工作之前获取要打印文件的页数?

以下是我执行此操作的代码部分:

File file = new File(filePath);         
try {
    desktop.print(file);
} catch (IOException e) {
    System.out.println("error in trying to print");
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

如果您获得文件大小并查看它是否小于或大于50页文件大小,那该怎么办?这种方式基于文件大小,您可以决定是否要打印它。这是你如何获得文件大小:

    public static void main(String[] args)
    {   
        File file =new File("c:\\java_xml_logo.jpg");

        if(file.exists()){

            double bytes = file.length();
            double kilobytes = (bytes / 1024);
            double megabytes = (kilobytes / 1024);
            double gigabytes = (megabytes / 1024);
            double terabytes = (gigabytes / 1024);
            double petabytes = (terabytes / 1024);
            double exabytes = (petabytes / 1024);
            double zettabytes = (exabytes / 1024);
            double yottabytes = (zettabytes / 1024);

            System.out.println("bytes : " + bytes);
            System.out.println("kilobytes : " + kilobytes);
            System.out.println("megabytes : " + megabytes);
            System.out.println("gigabytes : " + gigabytes);
            System.out.println("terabytes : " + terabytes);
            System.out.println("petabytes : " + petabytes);
            System.out.println("exabytes : " + exabytes);
            System.out.println("zettabytes : " + zettabytes);
            System.out.println("yottabytes : " + yottabytes);
        }else{
             System.out.println("File does not exists!");
        }

    }
}

source