@RequestMapping(value = "/merge", method = RequestMethod.POST, produces = "application/pdf")
public ResponseEntity<?> getPDF(@RequestBody DocRequest req) {
try {
ArrayList<String> urls = pdf.getFileList(req);
pdf.mergePdf(urls, req); // <-- this will generate a pdf called "untitled.pdf" on the server (outputstream)
byte[] pdf = Files.readAllBytes(new File("untitled.pdf").toPath());
HttpHeaders headers = new HttpHeaders();
headers.setContentLength(pdf.length);
headers.set("Content-Disposition", "attachment; filename=untitled.pdf");
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
return new ResponseEntity<>(pdf ,headers, HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
}
//if above did not return a proper response, then request is bad.
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Если я открою файл untitled.pdf на сервере, он будет выглядеть нормально.Но когда я использую Swagger для загрузки PDF, я вижу, что PDF содержит случайные символы в файле.Изображение с содержимым было в порядке, но текст в формате PDF выглядит как куча вопросительных знаков и некоторых случайных символов, таких как пример ниже
"7SLHZLYLHKILMVYL`V\LSLJ[`V\YPU]LZ[TLU[VW[PVUZ!
(YH[PVYLX\PYLTLU[VM!T\Z[ILTHPU[HPULK\ZPUNVULPU]LZ[TLU[VW[PVUMYVT,8(;VY(?(7YLTPLY=07MVYL]LY`VUL
V\[ZPKLT\[\HSM\UKZLSLJ[LKUV[PUJS\KPUN[OL.06VY:[HISL=HS\L-\UK
;OLTH_PT\TU\TI"
Почему или что вызывает это ??
Обновление
Ошибка, когда я пытался открыть PDF через ридер, выскакивает следующее сообщение:
Cannot extract the embedded font 'CMOHAC+Helvetica-Light'. Some characters may not display or print correctly.
Также, когда я открываю PDF через ридер, я вижу кучуточек вместо этих символов, если я просто нажму на PDF, чтобы открыть.