자바 작업 pdf 템 플 릿 (지정 도 메 인 에 텍스트 내용 과 그림 추가)

2726 단어 자바
프로젝트 수 요 는 pdf 템 플 릿 을 조작 하고 생 성 된 템 플 릿 에 따라 데 이 터 를 채 워 야 합 니 다. 
사용 하 는 jar 가방 은 iText - 5.0.6. jar 와 iTextAsian. jar 입 니 다.
상위 코드:
   
 public static void main(String[] args)
{
try
{
String TemplatePDF = "e:/F-3.pdf"; //    
String outFile = "e:/test.pdf"; //    pdf   
PdfReader reader = new PdfReader(TemplatePDF);
PdfStamper ps = new PdfStamper(reader, new FileOutputStream(outFile)); //       

AcroFields s = ps.getAcroFields();
//     
insertText(ps, s);
//     
insertImage(ps, s);
ps.close();
reader.close();
}
catch (Exception e)
{
e.printStackTrace();
} 
}
/**
*     
* 
* @param ps
* @param s
* @author WangMeng
* @date 2016 6 16 
*/
public static void insertImage(PdfStamper ps, AcroFields s)
{


try
{
List list = s.getFieldPositions("QR_CODE");
Rectangle signRect = list.get(0).position;


Image image = Image.getInstance("e:/pdf.jpg");
PdfContentByte under = ps.getOverContent(2);
float x = signRect.getLeft();
float y = signRect.getBottom();
System.out.println(x);
System.out.println(y);
image.setAbsolutePosition(x, y);
image.scaleToFit(signRect.getWidth(), signRect.getHeight());


under.addImage(image);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}


}
/**
*   Chunk
* 
* @return
* @author WangMeng
* @date 2016 6 16 
*/
public static Chunk CreateChunk()
{
BaseFont bfChinese;
Chunk chunk = null;
try
{
bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
Font fontChinese = new Font(bfChinese, 10 * 4 / 3);
chunk = new Chunk("  ", fontChinese);
}
catch (Exception e)
{
e.printStackTrace();
}


return chunk;
}
/**
*     
* 
* @return
* @author WangMeng
* @date 2016 6 16 
*/
public static void insertText(PdfStamper ps, AcroFields s)
{
List list = s.getFieldPositions("CONNECT_NAME");
Rectangle rect = list.get(0).position;


PdfContentByte cb = ps.getOverContent(1);
PdfPTable table = new PdfPTable(1);
float tatalWidth = rect.getRight() - rect.getLeft() - 1;
table.setTotalWidth(tatalWidth);


PdfPCell cell = new PdfPCell(new Phrase(CreateChunk()));
cell.setFixedHeight(rect.getTop() - rect.getBottom() - 1);
cell.setBorderWidth(0);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setLeading(0, (float) 1.1);


table.addCell(cell);
table.writeSelectedRows(0, -1, rect.getLeft(), rect.getTop(), cb);
}

 
메모: 주요 사 고 는 도 메 인 에 텍스트 와 그림 을 직접 삽입 하 는 방법 이 없 기 때 문 입 니 다. (있 을 수 있 지만 찾 지 못 했 을 수도 있 습 니 다) 도 메 인 을 가 져 오 는 위 치 를 사용 하여 지정 한 위치 에 표 나 그림 을 삽입 합 니 다.

좋은 웹페이지 즐겨찾기