【发布时间】:2015-11-13 15:20:20
【问题描述】:
enter code here
首先,我以这种方式制作我的 pdfFile:
PdfReader pdfr=new PdfReader(filepath1);//existing file
PdfStamper pdfs=new PdfStamper(pdfr, filepath2);//file to be modified
...
PdfContentByte cb=pdfs.getOverContent(1);
cb.setColorFill(new BaseColor(0x00,0x4E,0x44));
cb.rectangle(coordX,min_Y,60,haut);
cb.saveState();
PdfGState state=new PdfGState();
state.setFillOpacity(0.1f);
cb.setGState(state);
cb.fillStroke();
cb.restoreState();
文件 pdf 在 Adobe Reader XI 中是正确的, 但是当我尝试用 servlet 读取它时,我看不到任何矩形。 小服务程序:
protected void doPost(...){
File pdfFile=new File(filepath2);
FileInputStream fis=new FileInputStream(filepath2);
response.setContentType("application/pdf");
response.addHeader("Content-Disposition","inline;filename=pdfFN);
response.setContentLength((int) filepath2.length());
OutputStream resOS=response.getOutputStream();
int length=1;
byte[] buffer=new byte[8192];
while((length=fis.read(buffer))!=-1)
{resOS.write(buffer,0,length);
}
fis.close();
resOS.flush();resOS.close();
会发生什么? 提前致谢。
【问题讨论】:
-
Servlet 不会“读取”PDF,当然也不会“查看”PDF,所以我敢肯定您正在尝试问其他问题,但就像对您投反对票的人一样问题,我不知道你在问什么。你能澄清你的问题吗?例如:为什么要在磁盘上创建文件?为什么不在内存中创建文件(这是在 servlet 上下文中处理 PDF 的最常用方法)。另外:您的代码 sn-ps 包含几个错误,使它们无法编译。我更正了一些错误,但您在发布问题时应该更准确。