Używam Spring MVC. Muszę napisać usługę, która pobierze dane z treści żądania, doda dane do pliku pdf i zwróci plik pdf do przeglądarki. Dokument PDF jest generowany za pomocą itextpdf. Jak to zrobić, używając Spring MVC. Próbowałem używać tej funkcji showhelp, która generuje plik pdf. Właśnie umieszczam losowe dane w pliku pdf.Zwróć wygenerowany pdf za pomocą sprężyny MVC
public static Document showHelp(Employee emp) throws Exception {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("C:/tmp/report.pdf"));
document.open();
document.add(new Paragraph("table"));
document.add(new Paragraph(new Date().toString()));
PdfPTable table=new PdfPTable(2);
PdfPCell cell = new PdfPCell (new Paragraph ("table"));
cell.setColspan (2);
cell.setHorizontalAlignment (Element.ALIGN_CENTER);
cell.setPadding (10.0f);
cell.setBackgroundColor (new BaseColor (140, 221, 8));
table.addCell(cell);
ArrayList<String[]> row=new ArrayList<String[]>();
String[] data=new String[2];
data[0]="1";
data[1]="2";
String[] data1=new String[2];
data1[0]="3";
data1[1]="4";
row.add(data);
row.add(data1);
for(int i=0;i<row.size();i++) {
String[] cols=row.get(i);
for(int j=0;j<cols.length;j++){
table.addCell(cols[j]);
}
}
document.add(table);
document.close();
return document;
}
Jestem pewien, że to jest złe. Chcę, aby ten plik PDF był generowany, a okno dialogowe zapisywania/otwierania otwierane przez przeglądarkę, aby mogło być przechowywane w systemie plików klienta. Proszę pomóż mi.
To mi pomogło. Wielkie dzięki!!! Mam jeszcze jeden. tutaj przechowuję wygenerowany plik pdf do mojego systemu plików, a następnie odczytuję go i konwertuję na bajty. Co powinienem zrobić, jeśli muszę konwertować wygenerowany plik pdf w drodze. Z góry dzięki –
Zamiast używać 'FileOutputStream' w twoim' PdfWriter.getInstance() 'możesz użyć' ByteArrayOutputStream'. – kryger
@kryger, czy wiesz, jak otworzyć plik PDF w oknie przeglądarki? Użyłem twojej metody i zachęcam użytkownika do natychmiastowego zapisania pliku :) –