2015-09-24 2 views
0

Извините, я только начинаю PDFsharp.Как установить размер страницы MigraDoc?

Как я могу установить PageSize для документа? Скажем, A4. Как его установить? Вот он мой код. Благодарю.

Document document = new Document(); 

    // Add a section to the document 
    Section section = document.AddSection(); 
    section.AddParagraph("dddddd"); 


    // Add a section to the document 
    var table = section.AddTable(); 
    table.AddColumn("8cm"); 
    table.AddColumn("8cm"); 

    var row = table.AddRow(); 
    var paragraph = row.Cells[0].AddParagraph("Left text"); 
    paragraph.AddTab(); 
    paragraph.AddText("Right text"); 
    paragraph.Format.ClearAll(); 
    // TabStop at column width minus inner margins and borders: 
    paragraph.Format.AddTabStop("27.7cm", TabAlignment.Right); 
    row.Cells[1].AddParagraph("Second column"); 
    table.Borders.Width = 1; 
+2

Документ = файл, раздел = группа страниц, [и т. Д.] (Http://www.pdfsharp.net/wiki/MigraDoc_PageSetup.ashx). – Sinatr

+1

MigraDoc очень похож на Word: у вас есть документ с разделами, содержащими параграфы. –

+0

Да. Это то, что я пытался найти. Благодарю. –

ответ

3

A4 - размер по умолчанию.

В каждом разделе есть свойство PageSetup, где вы можете указать размер страницы, поля и т. Д.

var section = document.LastSection; 
section.PageSetup.PageFormat = PageFormat.A4; 
section.PageSetup.TopMargin = "3cm"; 

Вы никогда не должны изменять DefaultPageSetup, использовать Clone() вместо этого. PageFormat не работает для Clone(), потому что PageWidth и PageHeight установлены для формата A4 по умолчанию.
Чтобы получить формат Letter, вы можете использовать этот код, чтобы перезаписать PageWidth и PageHeight:

var section = document.LastSection; 
section.PageSetup = Document.DefaultPageSetup.Clone(); 
section.PageSetup.PageFormat = PageFormat.Letter; // Has no effect after Clone(), just for documentation purposes. 
section.PageSetup.PageWidth = Unit.FromPoint(612); 
section.PageSetup.PageHeight = Unit.FromPoint(792); 
section.PageSetup.TopMargin = "3cm"; 

Чтобы получить формат Letter, вы можете использовать этот код для сброса PageWidth и PageHeight сделать PageFormat работу снова:

var section = document.LastSection; 
section.PageSetup = Document.DefaultPageSetup.Clone(); 
section.PageSetup.PageWidth = Unit.Empty; 
section.PageSetup.PageHeight = Unit.Empty; 
section.PageSetup.PageFormat = PageFormat.Letter; 
section.PageSetup.TopMargin = "3cm"; 

Создание Clone() полезно, если ваш код использует, например, левый и правый поля для вычисления ширины таблицы или таковой. Нет необходимости создавать клон, если вы задаете все поля явно или не используете поля для вычислений.
Если вам нужно Clone(), вы можете использовать приведенные здесь методы, чтобы установить размер страницы.

+0

Спасибо. Вы имеете в виду 'section.PageSetup.PageWidth =" 21cm "; section.PageSetup.PageHeight =" 29.7cm ";'? Могу я ? –

+0

Добавил фрагмент кода к моему сообщению. –

+0

Один вопрос пожалуйста. Я обнаружил, что AddTab имеет различное поведение между таблицей и абзацем. AddTab в таблице приведет к выравниванию содержимого. как css 'float: right'. Но в абзаце это не так. просто добавьте вкладку как обычно. Это правда? Пожалуйста, помогите уточнить. –

 Смежные вопросы

  • Нет связанных вопросов^_^