2012-04-13 28 views
6

Có đoạn mã như sau:Cách biện minh cho văn bản bằng iTextSharp?

var workStream = new MemoryStream(); 
var doc = new Document(PageSize.LETTER, 10, 10, 42, 35); 
PdfWriter.GetInstance(doc, workStream).CloseStream = false; 
doc.Open(); 

var builder = new StringBuilder(); 
builder.Append("MY LONG HTML TEXT"); 
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(builder.ToString()), null); 

foreach (var htmlElement in parsedHtmlElements) 
     doc.Add(htmlElement); 

doc.Close(); 

byte[] byteInfo = workStream.ToArray(); 
workStream.Write(byteInfo, 0, byteInfo.Length); 
workStream.Position = 0; 
return new FileStreamResult(workStream, "application/pdf") 

Và có một vấn đề làm sao cho pdf đó hợp lý? Có phương pháp hay thứ gì đó nhanh chóng làm điều đó không?

+0

Tôi không thực sự rõ ràng về những gì bạn đang cố gắng làm. Xin vui lòng làm rõ những gì "làm cho pdf điều chỉnh" có nghĩa là. –

+0

Một cái gì đó giống như CRTL + J trong MS Word, các dòng aligh bên trái và bên phải của trang trong cùng một thời điểm. –

Trả lời

10

Ah, tôi hiểu rồi, ý của bạn là "hợp lý" thay vì "điều chỉnh". Tôi đã cập nhật câu hỏi của bạn. Nó thực sự khá dễ dàng. Về cơ bản nó phụ thuộc vào loại nội dung mà bạn đang thêm và liệu nội dung đó có hỗ trợ khái niệm này ngay từ đầu hay không. Giả sử rằng bạn có đoạn cơ bản bạn có thể đặt Alignment tài sản trên chúng trước khi thêm chúng trong vòng lặp chính của bạn:

foreach (var htmlElement in parsedHtmlElements){ 
    //If the current element is a paragraph 
    if (htmlElement is Paragraph){ 
     //Set its alignment 
     ((Paragraph)htmlElement).Alignment = Element.ALIGN_JUSTIFIED; 
    } 
    doc.Add(htmlElement); 
} 

Có hai loại biện minh, Element.ALIGN_JUSTIFIEDElement.ALIGN_JUSTIFIED_ALL. Thứ hai là giống như lần đầu tiên ngoại trừ nó cũng biện minh cho dòng cuối cùng của văn bản mà bạn có thể hoặc có thể không muốn làm.

Các vấn đề liên quan