2013-04-19 2 views
1

iTextSharp 확장자를 사용하여 데이터를 PDF 파일로 출력하고 있습니다. 나는 For loop을 사용하여 XML 양식에있는 데이터를 동적으로 출력합니다. 내가 겪고있는 문제는 행의 내용을 정렬하거나 pdf 페이지에 기록되는 '단락'을 정렬하는 것입니다.문자열의 내용 정렬 C#

__ 0002 dog name    breed    John Doe 
__ 0004 Kona     Doberman    Jesus Montero 

이 단순히 두 개의 문자열은 두 개의 별도의 루프에 pdf 파일에 기록되고 있음을 알아 두셔야합니다 :

__ 0002 dog name    breed    John Doe 
__ 0004 Kona     Doberman    Jesus Montero 

내가 같이하는 출력을 필요 전류 출력이 있습니다 For loop. 문자열을 추가하는 코드는 다음과 같습니다.

iText.Paragraph dogEntryParagraph = new iText.Paragraph(
    ( "__ " 
    + String.Format("{0,-40}{1,-40}{2,-40}{3,-40}" , 
     armBandString , 
     dogNameString , 
     breedString , 
     ownerNameString 
     ) 
) , 
    _smallFont 
) ; 

문자열 내에서 품종과 소유자 이름을 정렬하려고 잘못하고있는 사람은 누구입니까? 나는 많은 시간을 보냈지 만 그것을 가깝게 얻을 수는 있지만, 내가 필요한 것은 아닙니다.

+0

형식이 엉망입니다. 기본적으로 네가 알아야 할 것은 네 개의 값이있는 한 행의 열이 하나의 열에 있고 네 개의 열처럼 정렬 된 상태로 있어야한다는 것입니다. 그리고 테이블을 사용하는 NO는이 경우에 효과적인 옵션이 아닙니다. – user1546315

+0

재스민 (Jasmine)의 해결책을 고려할 때 테이블 사용을 방해하는 요구 사항은 무엇입니까? –

+0

필자가 대답 한 바대로 다른 옵션은 텍스트를 특정 좌표에 배치하는 것뿐입니다. 즉, 직접 테이블 기능을 구현하십시오. 이미 그 코드를 제공 받았을 때 나는 그렇게 할 이유가 없습니다. 날 믿어, 나는 이미이 길을 걸어왔다. 내 실수에서 배우십시오! – Jasmine

답변

3

테이블을 사용해야합니다. 이 문제는 iTextSharp에서 직접 경험했습니다. 심지어 고정 폭 글꼴을 사용하는 경우에도 특정 좌표에 텍스트를 그리고 흐름 레이아웃을 날려 버리지 않으면 작업하려는 것이 작동하지 않습니다. 그래서, iTextSharp에서 테이블 형식의 데이터를 할 수있는 가장 좋은 방법은

PdfPTable table = new PdfPTable(2); 

table.addCell("Dog Name"); 
table.addCell("Breed"); 

table.addCell("Akira"); 
table.addCell("Chinese Crested"); 

table.addCell("Kaika"); 
table.addCell("Greyhound"); 

document.add(table); 

이 정말 잘 작동 ...

다음, 개체로 먼저 테이블을 작성하여 흐름에 추가 ... 테이블 함께 원하는 경우 형식화 된 개체를 셀에 추가하거나 이미지를 추가 할 수 있습니다. 또한

http://www.geek-tutorials.com/java/itext/itext_table.php

+0

정말 고마워요. 너 너무 많은 두통과 좌절을 구해 줬어. 나는 그것이 iTextSharp 문제인지 전혀 몰랐다. – user1546315

+0

사실 PDF 문제입니다. iTextSharp는 PDF 표준에 묶여 있으므로 이런 식으로 구현해야합니다. 우리를 때로는 힘들게 만듭니다. 그러나 표준을 가지고 그것을 따라야하는 것이 중요합니다. – Jasmine

0

또한이 경우 고정 폭 글꼴을 사용하여 시도 할 수 ... 국경과 다른 일을 추가 할 수 있습니다. 그러면 각 공간과 문자가 고정 길이가됩니다.