Ich habe den folgenden Code in MigraDoc GDI 1.50.4000-Beta3b und 1.32.4334.0 versucht. Wenn ich die Seitengröße auf legales Format einstelle, wird sie entweder nicht in das legale Format konvertiert, oder es verbleibt oben ein großer Rand, als ob die Seitengröße 8,5 x 11 wäre, und die zusätzliche Länge wurde oben eingefügt der PDF. Ich würde den Text lieber am Anfang der Seite beginnen. Wie kann ich das umgehen?Willst du große Marge am Anfang der legalen Seite Format entfernen
Im folgenden Beispiel ist oben ein großer Rand vorhanden.
// Create a new MigraDoc document
Document document = new Document();
//document.UseCmykColor = true;
// Add a section to the document
Section section = document.AddSection();
section.PageSetup = document.DefaultPageSetup.Clone();
section.PageSetup.PageFormat = PageFormat.Legal; //setting page size here didn't seem to work
section.PageSetup.TopMargin = "0cm";
// Add a paragraph to the section
Paragraph paragraph = section.AddParagraph();
paragraph.Format.Font.Color = Color.FromCmyk(100, 30, 20, 50);
// Add some text to the paragraph
paragraph.AddFormattedText(@"Hello World!", TextFormat.Bold);
#if GDI
// Using GDI-specific routines.
// Make sure to use "#if GDI" for any usings you add for platform-specific code.
{
}
#endif
#if WPF
// Using WPF-specific routines.
// Make sure to use "#if GDI" for any usings you add for platform-specific code.
{
}
#endif
// Create a renderer for the MigraDoc document.
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true);
// Associate the MigraDoc document with a renderer
pdfRenderer.Document = document;
// Layout and render document to PDF
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Pages[0].Size = PdfSharp.PageSize.Legal;
// Save the document...
const string filename = "HelloWorld.pdf";
pdfRenderer.PdfDocument.Save(filename);
// ...and start a viewer.
Process.Start(filename);
Schlechte Idee, die Seitengröße nach dem Rendern des Dokuments festzulegen. Funktioniert es, wenn Sie die Zeile 'section.PageSetup = document.DefaultPageSetup.Clone();' out? –
Vielen Dank !!! Das hat den Trick gemacht. Warum sagt diese URL dann "Sie sollten niemals DefaultPageSetup ändern, stattdessen einen Clone()" verwenden? http://stackoverflow.com/questions/32757196/how-can-set-the-page-size-of-migradoc Ich habe auch eingestellt, die Seitengröße nach dem Rendern einzustellen. Das war nur ein Schuss in die Dunkelheit, um zu sehen, ob es das Problem gelöst – Hoppe
Der Punkt ist: nicht ändern DefaultPageSetup. Ändern Sie das PageSetup Ihrer Sektion mit oder ohne Zuweisen eines Clones von DefaultPageSetup. –