2012-10-05 4 views
1

MultiColumnText 개체의 Column에 단락 개체를 추가 할 때 단락 개체의 줄 높이를 설정하는 데 문제가 있습니다.iText PDF MultiColumnText 줄의 높이

각 줄 사이의 임의의 간격에 주목하십시오. 스크린은 두 번째 열에서 렌더링 된 내용을 여기에서 촬영했습니다. https://dl.dropbox.com/u/249320/Foliotek/Capture.PNG

나는 그것을 렌더링하고 다음 열로 올바르게 이동했습니다. 그러나 나는 각각의 새로운 행의 높이를 설정하는 것 같습니다. 생각?

내 코드 :

MultiColumnText mct = new MultiColumnText(); 
      mct.Alignment = Element.ALIGN_JUSTIFIED_ALL; 
      //8 

      // setup column 1 
      float[] left = {1020, 280, 1020, 7 }; 
      float[] right = {1022, 576, 
         1022, 280, 
         1096, 280, 
         1214, 154, 
         1214, 7 
         }; 
      mct.AddColumn(left, right); 

      // setup column 2 
      left = new float[] { 1422, 576, 
           1422, 266, 
           1259, 106, 
           1246, 105, 
           1246, 7 
          }; 
      right = new float[] {1433, 280, 1433, 7 }; 
      mct.AddColumn(left, right); 
      techDataColumnText += " GALLIA est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt."; 
      Paragraph techDataPhrase = new Paragraph(techDataColumnText, new Font(FuturaBoldBaseFont, 8f)); 

      mct.AddElement(techDataPhrase); 
      do 
      { 
       document.Add(mct); 
       mct.NextColumn(); 
      } while (mct.IsOverflow()); 

답변

1

세 가지 생각 : 당신이 그것에 많은 시간을 투자 할되지 않을 수도 있습니다

  1. MultiColumnText는 최신 iText를 릴리스에서 제거되었습니다. 미래 보장 솔루션을 원하면 ColumnText을 사용하십시오.
  2. 임의의 선 높이가 있다고 가정합니다. PDF 언어에서는 선 높이를 선행이라고합니다. 내가 어디서나 setLeading()을 사용하는 것을 보지 못한다. (어쩌면 나는 뭔가를 간과하고있다.)
  3. (Multi)ColumnTextPdfPCell에는 두 가지 모드가 있습니다. 텍스트 모드 및 합성 모드.

합성 모드에서, 용기 (열 또는 셀)의 설정 내용 (추가 된 Paragraph 다른 객체)의 설정 대신 무시된다. 이 모드에서 콘테이너의 내용은 서로 다른 리드, 정렬을 가질 수 있습니다.

텍스트 모드에서는 컨테이너 (열 또는 셀)의 레벨에서 선두를 설정하고 모든 내용 그 설정을 따른다. 이 모드에서는 모든 내용이 동일한 선행, 동일한 정렬을 갖습니다.

불규칙한 열을 만들면 텍스트 모드에서만 작업 할 수 있습니다. 행의 레벨에서 행간을 설정해야합니다.

+0

당신은 당연히 칼럼 레벨에서 선두를 추가해야했습니다. 또한 iText 4는 실제로 열 수준에서 행간을 올바르게 설정하지 않으므로 불규칙한 열이 올바르게 작동하려면 iText 5를 사용해야합니다. 브루노 감사합니다. – bigamil