Проблема печати Java - PullRequest
       1

Проблема печати Java

2 голосов
/ 10 ноября 2011

Я пытаюсь напечатать строку HTML в Ubuntu 10.10, используя Java, используя этот код:

public void printHTMLText(String text) throws Exception {
    if (printerName.equals(""))
        throw new Exception("no standart printer");
    PrintService printService = getCurrentPrinter();

    if (printService == null)
        helperFunctions
                .errorOut("Couldn't print HTML-Text: "
                        + text
                        + " because no current printer is given or current printer is not available");
    else {
        DocPrintJob printJob = printService.createPrintJob();
        DocFlavor[] avail = printService.getSupportedDocFlavors();
        DocFlavor htmlutf8 = null;
        for (int i = 0; i < avail.length; i++) {
            if (avail[i].toString().equals(
                    "text/html; charset=\"utf-8\"; class=\"[B\""))
                htmlutf8 = avail[i];
            helperFunctions.debugOut(avail[i].toString());
        }

        SimpleDoc doc;
        try {
            if (htmlutf8 == null)
                throw new PrintException(
                        "Sorry the chosen printer can't deliever text/html; charset=utf-8");
            // helperFunctions.debugOut(htmlutf8.getMimeType());

            doc = new SimpleDoc(text.getBytes("UTF-8"), new DocFlavor(
                    htmlutf8.getMimeType(),
                    htmlutf8.getRepresentationClassName()), null);

            printJob.print(doc, null);
            helperFunctions.infoOut("Printing HTML: " + text);

        } catch (PrintException ex) {
            helperFunctions.errorOut(ex.toString());
        }

    }
}

HTML-печать, согласно getSupportedDocFlavors (), поддерживается. Я не получаю ошибки Java и принтер отвечает. Но все, что я получаю, это пустая страница.

Что я делаю не так? Это стоило мне уже несколько часов, и я понятия не имею, поскольку Java не сообщает об ошибке.

Заранее спасибо

Редактировать: Обновлена ​​ссылка на пастель, поскольку срок ее действия истек

1 Ответ

1 голос
/ 10 ноября 2011

Попробуйте использовать JTextComponent # print . Даже если ваша программа не связана с Swing. JEditorPane имеет поддержку HTML и расширяет JTextComponent, поэтому он лучше всего подходит для работы. Oracle Tutorial о печати: Как печатать текст .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...