#java #pdf
#java #PDF
Вопрос:
В настоящее время я использую этот код, но его выбрасывание PrintJobFlavorException
. Это мой код, помогите мне исправить это:
public class PJUtil {
public static void main(String[] args) throws Exception {
DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF;
Writer output = null;
String text = "printing in pdfPrinting in Java ";
File file = new File("C:\CMPSup_AL_.PDF");
output = new BufferedWriter(new FileWriter(file));
output.write(text);
output.close();
InputStream is = new BufferedInputStream(new FileInputStream(file));
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = service.createPrintJob();
Doc doc = new SimpleDoc(is, flavor, null);
PrintJobWatcher pjDone = new PrintJobWatcher(job);
job.print(doc, null);
pjDone.waitForDone();
is.close();
}
}
и исключение
Exception in thread "main" sun.print.PrintJobFlavorException: invalid flavor
at sun.print.Win32PrintJob.print(Win32PrintJob.java:327)
at Collections.PrinterJobUtil.main(PrinterJobUtil.java:89)
Комментарии:
1. что заставляет вас думать, что эта текстовая строка является действительным документом PDF? (подсказка, это не так).
2. Вы не можете просто назвать файл PDF, он должен быть фактическим файлом в формате PDF. Не знаю, в чем проблема, но это, конечно, не поможет.
Ответ №1:
возможно, ваш принтер не поддерживает текстовое представление. Взгляните на эту статью java printing, особенно на страницу 5.
Ответ №2:
Как указывали другие, вы не можете просто создать файл с именем PDF и распечатать его. Если вам нужно сгенерировать PDF, вы можете взглянуть на itext.
Ответ №3:
Просто чтобы дать вам еще один вариант для создания файлов PDF. Попробуйте использовать PDFBox от Apache и взгляните на кулинарную книгу. В примере HelloWorld показано, как создать простой PDF-документ, подобный тому, который вы пытались создать в своем примере кода.
Ответ №4:
Также взгляните на отчеты Jasper http://community.jaspersoft.com/project/jasperreports-library
Ответ №5:
Измените вкус DocFlavor = DocFlavor.INPUT_STREAM.PDF в * DocFlavor flavor = DocFlavor .INPUT_STREAM.АВТОСМЫСЛ *.
E Паван Варма