2017-02-13 4 views
0

私は作成しようとしているPDF文書を、約20桁の幅で変更しています。それは最初のページの列の約半分を取得し、残りの部分をカットします。私は、ページ幅を決定し、残りの列を2ページ目に移動したいと思います。レンダリングやPageSetupでこれを指定する方法はありますか?私は幅を計算し、最初のページを作成してから2番目のページを作成する必要があると思います。MigraDocで動的ページ幅のPDFを作成するにはどうすればよいですか?

Table table = new Table(); 

PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always); 
renderer.Document = doc; 
doc.DefaultPageSetup.Orientation = MigraDoc.DocumentObjectModel.Orientation.Landscape; 

//create the columns 
for (int i = 1; i < tripReportGrid.Columns.Count; i++) 
    { 
     col = table.AddColumn(tripReportGrid.Columns[i].Width); 
     col.Format.Alignment = ParagraphAlignment.Center; 
    } 

...fill the content same way 

renderer.RenderDocument(); 

答えて

0

ページの幅は設定したものです。設定しない場合はA4です。

ページの幅を任意の値に設定できます。これはおそらく、画面上でPDFファイルを見るときにはOKです。

または、1ページに収まるように1つの表に複数の列を追加できます。ランドスケープ形式のA4は29.7 cmです。デフォルトのマージンは左右2.5cmです。

そして、BTW:決してDefaultPageSetupを変更しないでください。 DefaultPageSetupのClone()をセクションのPageSetupに割り当て、必要に応じて変更します。

+0

ありがとうございます、最初のものが作成された後、ページを追加するにはどうすればよいですか? – jerryn44

+0

2番目のテーブルの前にページ区切りを強制するためにセクションに 'AddPageBreak()'を呼び出すことができます。文書に対して 'AddSection()'を呼び出して新しいセクションを作成することができます(これは暗黙のうちに改ページにつながります)。新しいセクションでは異なるページフォーマットを使用できるため、カスタムページフォーマットを使用する場合は、2番目のテーブルの新しいセクションで別のページ幅を使用することもできます。 –

+0

氏。ありがとうございました – jerryn44

関連する問題