2014-09-29 8 views
0

iText를 사용하여 단 3 줄만 포함 된 작은 라벨 (길이 1.75, 높이 0.75)을 만들어야합니다. 문제는 문서에 Chunk.NEWLINE을 추가 할 때마다 다음 줄로 이동하는 대신 다음 페이지로 이동합니다. 이것은 작은 페이지 크기 때문입니다.작은 크기의 라벨 만들기

내 텍스트가 같은 페이지에 있지만 다음 줄에 모두 들어가는 것을 어떻게 억제 할 수 있습니까?

Float width = 126.4725f; // 1.75 in 
Float height = 54.2025f; // 0.75 in 

Rectangle pageSize = new Rectangle(width, height); 
document = new Document(pageSize, 5f, 55f, 2f, 180f); 
specimenPDF = new File("specimenLabel_"+reqID); 
PdfWriter.getInstance(document, new FileOutputStream(specimenPDF)); 
document.open(); 
Paragraph specimenInformation = new Paragraph(); 
document.add(new Chunk(string1, FontFactory.getFont(FontFactory.HELVETICA, 2, Font.NORMAL, new BaseColor(new Color(0, 0, 0))))); 
document.add(Chunk.NEWLINE); 
document.add(new Chunk(string2, FontFactory.getFont(FontFactory.HELVETICA, 2, Font.NORMAL, new BaseColor(new Color(0, 0, 0))))); 
document.add(Chunk.NEWLINE); 
document.add(new Chunk(string3, FontFactory.getFont(FontFactory.HELVETICA, 2, Font.NORMAL, new BaseColor(new Color(0, 0, 0))))); 

specimenInformation.setAlignment(Element.ALIGN_TOP); 
document.add(specimenInformation); 
document.close(); 

답변

0

몇 가지 문제가 있습니다.

먼저 54 단위의 문서를 가지고 있고, iText에서 위쪽 여백에 2 단위를 사용하고 아래쪽 여백에 180 단위를 사용하여 가로 공간에 -128 단위를 사용하게합니다. iText가 기대하는 너비 대신 좌표를주는 것처럼 보입니다. 당신은 나보다 더 잘 알고 있습니다하지만 내가 좋아하는 뭔가를 변경할 것 :

document = new Document(pageSize, 5f, 5f, 5f, 5f); 

둘째, 당신은 Paragraph있어하지만 당신은 그것을 사용하지 않는 대신 문서에 직접 쓰고있다. 나는 실제로 Paragraph를 사용하는 것이 좋습니다 것 :

Paragraph specimenInformation = new Paragraph(); 
specimenInformation.add(new Chunk(string1, FontFactory.getFont(FontFactory.HELVETICA, 2, Font.NORMAL, new BaseColor(new Color(0, 0, 0))))); 
specimenInformation.add(Chunk.NEWLINE); 
specimenInformation.add(new Chunk(string2, FontFactory.getFont(FontFactory.HELVETICA, 2, Font.NORMAL, new BaseColor(new Color(0, 0, 0))))); 
specimenInformation.add(Chunk.NEWLINE); 
specimenInformation.add(new Chunk(string3, FontFactory.getFont(FontFactory.HELVETICA, 2, Font.NORMAL, new BaseColor(new Color(0, 0, 0))))); 

마지막으로, 당신은 키는 "라인"는 Leading 속성에 의해 수행되는 방법 iText를 말할 필요가있다. 이것을 Paragraph의 생성자에서 직접 설정할 수 있습니다. 아래 나는 너의 글꼴과 동일한 크기에 그것을 놓고있다.

Paragraph specimenInformation = new Paragraph(2); 
관련 문제