2016-09-19 90 views
1

我有這種格式的標題 -問題與對齊圖像文本使用MigraDoc

標題」,「圖片」,「標題」

下面是代碼片段我使用來實現這一 -

Paragraph header = section.Headers.Primary.AddParagraph("Heading");    
    header.Format.Font.Bold = true; 
    header.AddTab(); 
    Image image = header.AddImage("../../Images/logo.png"); 
    image.Height = Unit.FromMillimeter(6); 
    header.AddFormattedText("Title", TextFormat.NotBold); 

我需要對齊我的「圖像」和「標題」,在這樣一種方式,標題是垂直居中相對於圖像的高度對齊,我怎麼能做到這一點?

非常感謝任何指針/代碼片段。

回答

1

你可以使用一個表,以適應所有的信息在一定的結構:

// create document 
Document MigraDokument = new Document(); 

// create section. 
Section section = MigraDokument.AddSection();    
section.PageSetup.PageFormat = PageFormat.A4; 

// create a table 
Table t = section.AddTable(); 
// size to use for the image and the image cell in the table 
int size = 6; 

// create 3 columns 
Column column_header = t.AddColumn("6cm"); 
column_header.Format.Alignment = ParagraphAlignment.Center; 

Column column_image = t.AddColumn(Unit.FromMillimeter(size)); 
column_image.Format.Alignment = ParagraphAlignment.Center; 

Column column_text = t.AddColumn("4cm"); 
column_text.Format.Alignment = ParagraphAlignment.Center; 

// Add 1 row to fill it with the content 
Row r = t.AddRow(); 

// add you Header 
Paragraph header = r.Cells[0].AddParagraph("Heading"); 
header.Format.Font.Bold = true; 
header.AddTab(); 

// add the image    
Image image = r.Cells[1].AddImage("../../logo.png"); 
image.Height = Unit.FromMillimeter(size); 

// Add your Title 
r.Cells[2].AddParagraph("Title"); 

// allign all of them 
r.Cells[0].VerticalAlignment = VerticalAlignment.Center; 
r.Cells[1].VerticalAlignment = VerticalAlignment.Center; 
r.Cells[2].VerticalAlignment = VerticalAlignment.Center; 

在我的文檔中的結果看起來如下:

enter image description here

+0

感謝,該方法在獲得理想的結果,因此我會接受一個答案的幫助下,將是美好的,如果本來可以不使用表和使用的「圖像」一些調整性質與「啪啦實現文本「(如果有的話) – Ashutosh

0

感謝@MongZhu的建議表格方式,張貼我現在使用的代碼片段,僅供將來參考。

 Table table = section.Headers.Primary.AddTable(); 
     table.AddColumn("11cm"); 
     table.AddColumn("2cm"); 
     table.AddColumn("8cm"); 

     Row row = table.AddRow(); 
     row.VerticalAlignment = VerticalAlignment.Center; 
     Paragraph header = row.Cells[0].AddParagraph("Heading"); 
     header.Format.Font.Bold = true;       
     Image image = row.Cells[1].AddImage("../../Images/logo.png"); 
     image.Height = Unit.FromMillimeter(6); 
     row.Cells[2].AddParagraph("Title");