GWT: Как создать PDF сохранить / открыть окно? - PullRequest
2 голосов
/ 07 декабря 2011

Я использую версию GWT2.4 в своем приложении. В этом приложении я создал форму, используя элемент управления GWT (например, текстовое поле, текстовые сообщения).

Я также создал предварительный просмотр формы. В этом предварительном просмотре у меня есть кнопка генерации PDF. Теперь я хочу создать поведение для работы с PDF-ссылками так же, как в браузерах (Mozilla / Chrome). Например, в Mozilla при нажатии на ссылку PDF он запрашивает либо сохранить, либо открыть во всплывающем окне.

Во время отладки я обнаружил банку с именем iText, которую можно использовать для создания pdf, в этом я хочу реализовать поведение браузеров. Пожалуйста, помогите мне. Заранее спасибо.

1 Ответ

2 голосов
/ 07 декабря 2011

Считать содержимое файла в байтовый массив.

Затем сделайте запрос на сервлет или сервис, например. таким образом:

Window.Location.replace("rest/downloadPdf");

Эта служба должна возвращать Ответ с правильным типом содержимого:

@Path("downloadPdf")
@GET
@Produces({"application/pdf"})
@Consumes(MediaType.TEXT_PLAIN)
public Response downloadPdf() throws Exception {    
    byte[] bytes = getYourPDFContents();    
    return Response
            .ok(bytes, MediaType.APPLICATION_OCTET_STREAM)
            .header("Content-Disposition", "attachment; filename=\"yourFile.pdf\"")
            .build();
}

Браузер покажет диалоговое окно «Сохранить как».

Это пример службы, вы должны включить библиотеку Джерси в свой проект, чтобы иметь возможность использовать метод, как я написал выше.

...