"P: \ file.pdf" dosya yoluna sahip bir pdf dosyasını okumalı ve bunu outputStream'e yazmam gerek. Bunu yapmanın en kolay yolu nedir?pdf dosyası nasıl okunur ve çıkışa yazılırStriptiz
@Controller
public class ExportTlocrt {
@Autowired
private PhoneBookService phoneBookSer;
private void setResponseHeaderTlocrtPDF(HttpServletResponse response) {
response.setContentType("application/pdf");
response.setHeader("content-disposition", "attachment; filename=Tlocrt.pdf");
}
@RequestMapping(value = "/exportTlocrt.html", method = RequestMethod.POST)
public void exportTlocrt(Model model, HttpServletResponse response, HttpServletRequest request){
setResponseHeaderTlocrtPDF(response);
File f = new File("C:\\Tlocrt.pdf");
try {
OutputStream os = response.getOutputStream();
byte[] buf = new byte[8192];
InputStream is = new FileInputStream(f);
int c = 0;
while ((c = is.read(buf, 0, buf.length)) > 0) {
os.write(buf, 0, c);
os.flush();
}
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
........................................... .................................................
Sorunuz, dosyadan özel bir 'OutputStream' ve @Pheonix'e bir kopyalama yordamının sorulmasını istiyor 'cevabı nasıl yapılacağını gösterir --- sorunuzu etiketlemenizin herhangi bir sebebi var [pdf] yalnız [itext] ? – mkl
Projemde başka bir şey için Itext kullandım, bu yüzden bu örnekte kullanılabilir olduğunu düşündüm. Ben hatalıydım. –
Aslında, tıpkı Stephan'ın yanıtının PDFBox kullanarak bir çözüm sunduğu gibi, tüm PDF'yi ayrıştırmak ve daha sonra yeniden serileştirmek için iText'i de kullanabilirsiniz. Ancak bir PDF kütüphanesi (PDFBox veya iText olsun) ile PDF'leri kopyalamak büyük bir kaynak israfıdır ve söz konusu PDF'yi değiştirebilir. – mkl