Ich habe ein PDF-Dokument, das ich erstellen möchte, mit etwa 20 Spalten unterschiedlicher Breite. Es wird ungefähr die Hälfte der Spalten auf der ersten Seite angezeigt und schneidet dann den Rest ab. Ich möchte, dass es die Seitenbreite bestimmt und die restlichen Spalten auf die zweite Seite verschiebt. Gibt es eine Möglichkeit, dies in Rendering oder PageSetup anzugeben? Ich denke, ich muss die Breite berechnen, die erste Seite erstellen und dann die zweite erstellen.Wie bekomme ich MigraDoc, um PDF mit dynamischer Seitenbreite zu erstellen?
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();
danke, was ist der beste Weg, um eine Seite hinzuzufügen, nachdem die erste erstellt wurde? – jerryn44
Sie können 'AddPageBreak()' für Ihren Abschnitt aufrufen, um einen Seitenumbruch vor der zweiten Tabelle zu erzwingen. Sie können 'AddSection()' für Ihr Dokument aufrufen, um einen neuen Abschnitt zu erstellen (dies führt implizit zu einem Seitenumbruch). Der neue Abschnitt kann ein anderes Seitenformat verwenden. Wenn Sie also benutzerdefinierte Seitenformate verwenden möchten, können Sie in einem neuen Abschnitt für die zweite Tabelle auch eine andere Seitenbreite verwenden. –
Präfekt. Danke – jerryn44