Jestem początkującym z Spring MVC, ale jestem pod wrażeniem możliwości.Jak uzyskać zawartość PDF (obsługiwaną przez metodę sterownika Spring MVC) pojawiać się w nowym oknie
Używam wersji 3.1.0-RELEASE i muszę wyświetlić plik PDF w odpowiedzi na formularz: przesłanie formularza.
Oto (mały) kod pisałem w kontrolerze:
@RequestMapping(value = "new_product", method = RequestMethod.POST, params = "print")
@ResponseBody
public void saveAndShowPDF(ModelMap map, ShippingRequestInfo requestInfo, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException {
saveProductChanges(map, requestInfo, request, httpServletResponse);
httpServletResponse.setContentType("application/pdf");
byte[] pdfImage = productService.getPDFImage(requestInfo.getRequestId());
httpServletResponse.getOutputStream().write(pdfImage);
}
Ten kod wysyła bajt PDF [] powrót do pierwotnego okna.
Jak wyświetlić plik PDF w oddzielnym oknie, aby nadal wyświetlać w innym oknie pierwotne okno przeglądarki? Najlepiej byłoby, gdyby plik PDF był wyświetlany za pomocą programu do przeglądania plików PDF (Adobe Reader, FoxIt itp.), Ale dobrze byłoby, gdyby plik PDF pojawił się w oddzielnym oknie przeglądarki.
EDIT postanowiłem ustawić Content-Dyspozycja taka, że przeglądarka Pojawi się zapisać/otwarte okno, w którym użytkownik może otworzyć Adobe (z utratą stronę główną przeglądarki)
httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");
Dzięki wszystkim !
Target = "_ blank" (mam nadzieję) wyświetli plik PDF w osobnym oknie. Jeśli zwrócę do metody kontrolera ciąg znaków, czy mogę mieć oryginalne okno renderować nową stronę (wraz z plikiem PDF w nowym oknie)? –
Skarbie ... Nie mogę użyć target = "__ puste", ponieważ formularz ma wiele przycisków type = "submit", a ja tylko ten przycisk potrzebuje odpowiedzi (PDF) w osobnym oknie. Postanowiłem ustawić Content-Disposition, aby otworzyć okno zapisu, w którym użytkownik może otworzyć Adobe (z utratą głównej strony przeglądarki). httpServletResponse.setHeader ("Content-Disposition", "attachment; filename = product.pdf "); –