感测特定目录中的pdf文件并打印“文件”;。pdf";使用Java的文件
我正在通过Netbeans使用Java创建一个程序,该程序可以感知特定目录(C:\Users\User\Documents)中的新文件。要感测的文件应仅为“.pdf”文件格式。一旦程序检测到一个新文件,它将输出在特定目录中检测到一个新文件。它应该显示“检测到新文件”。文件检测后,java将自动将新检测到的文件打印到特定的打印机。(仅使用一台打印机)。要打印的文件还应使用特定属性进行打印,例如份数、纸张类型等。打印后,java将通知用户文件已打印 我到处搜索,只找到了打印pdf的基本代码。我想知道在下面的代码上做什么和更改什么。我刚刚接触java编程,我发现很难确定要更改什么以及在程序中添加什么。我学习了java的基础知识,但我真的觉得很难:(感测特定目录中的pdf文件并打印“文件”;。pdf";使用Java的文件,java,file,pdf,netbeans,printing,Java,File,Pdf,Netbeans,Printing,我正在通过Netbeans使用Java创建一个程序,该程序可以感知特定目录(C:\Users\User\Documents)中的新文件。要感测的文件应仅为“.pdf”文件格式。一旦程序检测到一个新文件,它将输出在特定目录中检测到一个新文件。它应该显示“检测到新文件”。文件检测后,java将自动将新检测到的文件打印到特定的打印机。(仅使用一台打印机)。要打印的文件还应使用特定属性进行打印,例如份数、纸张类型等。打印后,java将通知用户文件已打印 我到处搜索,只找到了打印pdf的基本代码。我想知道
谢谢:)这仅适用于u打印机支持pdf文档的本机打印。几年前市场上可供使用的打印机不多(打印机的低价部分)。否则你应该使用一个类来调用操作系统原生打印对话框newfileinputstream(“GMA trip.pdf”),这是文件“GMA trip.pdf”的相对路径(取决于你应用程序启动的目录)。改为构建pdf文档的完整路径。谢谢:)我想先试试:)我个人更喜欢使用foxit reader打印pdf文件(可以在无头模式下启动foxit reader,而且它确实可以很好地检测pdf文档的方向、填充等)。foxit reader可以接受打印机属性,如页数、灰度、,等等,从数据库?
package printpdf;
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.MediaSize;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.Sides;
public class Printpdf {
public static void main(String[] args) {
FileInputStream textStream;
try {
FileInputStream textstream = new FileInputStream("GMA trip.pdf");
} catch (FileNotFoundException ffne) {
}
Object textstream = null;
if (textstream == null) {
return;
}
DocFlavor myFormat = DocFlavor.INPUT_STREAM.PDF;
Object texttream = null;
Doc myDoc = new SimpleDoc(texttream, myFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(5));
aset.add(MediaSizeName.ISO_A4);
aset.add(Sides.DUPLEX);
PrintService[] services =
PrintServiceLookup.lookupPrintServices(myFormat, aset);
if (services.length > 0) {
DocPrintJob job = services[0].createPrintJob();
try {
job.print(myDoc, aset);
} catch (PrintException pe) {}
}
}
}