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();
使用Adobe Reader XI,文件pdf是正确的, 但是当我尝试用servlet读取它时,我看不到任何矩形。 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();
会发生什么? 提前谢谢。
答案 0 :(得分:0)
我道歉,我会更清楚。
首先我创建一个pdf文件(File1
),这是一个每周网格(有几天和几小时),带有Itext - >使用acrobat reader XI查看File1
没问题。
我使用File1
修改pdfStamper
:
PdfReader pdfr=new PdfReader(File1);//existing file code here
PdfStamper pdfs=new PdfStamper(pdfr, File2);//file to be modified
...
PdfContentByte cb=pdfs.getOverContent(1);
cb.setColorFill(new BaseColor(0x00,0x4E,0x44));
cb.rectangle(coordX,min_Y,60,haut);
Phrase phrase = new Phrase(text, new Font(bf, fontSize));//insert text in rectangle
ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, phrase,
// center horizontally
(float) (coordX + coordX+60) / haut_c, //haut_c
rect1,
0);
cb.saveState();
PdfGState state=new PdfGState();
state.setFillOpacity(0.1f);//text is now visible
cb.setGState(state);
cb.fillStroke();
cb.restoreState();
我尝试阅读File2
中的jsp
:
<object data="/Empl_temps/MyServlet?file='+File2+' type="application/pdf" width="600" height="900"></object>
MyServlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String pdfFileName=request.getParameter("file")+".pdf";
String contextPath="Y:\\Empl_temps\\";
System.out.println("Lect_pdf -"+contextPath+pdfFileName);
File pdfFile=new File(contextPath+pdfFileName);
FileInputStream fis=new FileInputStream(pdfFile);
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "inline;filename="+pdfFileName);
response.setContentLength((int)pdfFile.length());
OutputStream responseOutputStream=response.getOutputStream();
int length=-1;
byte[] buffer=new byte[8192];
while((length=fis.read(buffer))!=-1)
{
responseOutputStream.write(buffer, 0, length);
}
fis.close();
responseOutputStream.flush();responseOutputStream.close();
}
我可以阅读File2
,但我看不到矩形,我只看到矩形文字。