Как конвертировать из строки в PDF в Java

#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 Паван Варма