2014-12-19 5 views
2

itextsharp를 사용하여 PDF 파일을 생성 중입니다.itextsharp를 사용하여 긴 텍스트의 위치를 ​​다음 줄로 바꾸는 방법은 무엇입니까?

leading2 문자열을 인쇄하고 있습니다. & leading2.

문제는 leading1 길이가 증가 할 때, leading2와 그 효과가 다듬어 질 때입니다.

그러나 leading1의 문자가 증가하지 않으면 leading1 & leading2를 다음 줄에 인쇄하려고합니다.

기본적으로 leading2는 = YOU DIDIT로 하드 코드됩니다. 그러나 leading1은 역동적 인 가치입니다.

그래서 긴 텍스트를 배치하고 줄 바꿈하는 방법을 알고 싶습니다.

여기 내 코드는 ...

누구든지 나를 도와 줄 수 있습니까?

PdfContentByte cb = writer.getDirectContent(); 
     cb.saveState(); 
     cb.beginText(); 
     cb.setFontAndSize(baseFontMedium, 10f); 

     // float x = 6.4392f * commonView.INCH; 
     float x = 6.47f * commonView.INCH; 
     float y = pageSize.getHeight() - (1.13f * commonView.INCH); 

     cb.setCMYKColorFillF(0f, 0f, 0f, 0.77f); 
     cb.setTextMatrix(1, 0, 0, 1, x, y); 
     cb.showText(leading1); 

     x += new Chunk(leading1, fontMedium10Pt).getWidthPoint(); 

     cb.setCMYKColorFillF(1f, 0f, 0f, 0f); 
     cb.setTextMatrix(1, 0, 0, 1, x, y); 
     cb.showText(leading2); 

     cb.endText(); 
     cb.restoreState() 

답변

4

가장 낮은 수준에서 PDF 구문을 사용하여 텍스트를 추가하도록 선택했습니다. 즉, 문서에 추가 할 텍스트 한 장당 길이를 계산 한 다음 좌표를 올바르게 조정하여 showText() 개의 다른 시퀀스에 텍스트를 추가하여 배포해야합니다.

어렵습니다.

그러나 iText를 사용하기로 선택했기 때문에 iText에서이 작업을 수행 할 수 있습니다. 예를 들어 특정 직사각형 안에 텍스트 스 니펫을 추가하려면 ColumnText 객체를 정의하고 Rectangle을 정의하고 Paragraphgo()으로 텍스트를 추가하십시오!

PdfContentByte cb = writer.getDirectContent(); 
ColumnText ct = new ColumnText(cb); 
ct.setSimpleColumn(new Rectangle(36, 600, 200, 800)); 
ct.addElement(new Paragraph("I want to add this text in a rectangle defined by the coordinates llx = 36, lly = 600, urx = 200, ury = 800")); 
int status = ct.go(); 

이제 텍스트 "I want to add this text in a rectangle defined by the coordinates llx = 36, lly = 600, urx = 200, ury = 800"은 좌표에 의해 정의되는 사각 영역 내에 래핑한다 LLX = 36 에서야 = 600 URX = 200 URY = 800 status 변수에게 지시를 제공하는지의 여부 텍스트가 완전히 렌더링되었습니다 (또는 완전히 맞지 않는 경우).

추가 읽기 :

이 예제 당신을 도움이된다면, 제가 만들기 위해 무엇을 할 수 있는지 이해하는 데 도움이 바랍니다 다른 개발자들이 당신이 만든 실수를하지 말고, 무엇을 만들 었는지 설명하십시오. 먼저 ColumnText을 시도하는 대신 작성한 코드를 작성하십시오. 정보가 나를 도울 것입니다 in writing a better book.

+0

llx, lly, urx 및 ury 매개 변수에 대한 유용한 설명은 다음과 같습니다. http://stackoverflow.com/questions/30748651/how-should-i-interpret-the-coordinates- of-a-rectangle-in-pdf –