我試過MigraDoc GDI 1.50.4000-beta3b和1.32.4334.0下面的代碼。當我將頁面大小設置爲合法格式時,它不會被轉換爲合法格式,或者它會在頂部留下大量空白,就好像頁面大小爲8.5 x 11,並且額外的長度被插入頂部的PDF。我寧願將文本從頁面頂部開始。我怎樣才能解決這個問題?想要在法律頁面格式頂部刪除大幅度
在下面的示例中,頂部有一個很大的餘量。
// 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);
在渲染文檔後設置頁面大小的想法很糟糕。如果你採用'section.PageSetup = document.DefaultPageSetup.Clone();'out這行嗎? –
非常感謝!那就是訣竅。那麼爲什麼這個URL會說「你不應該修改DefaultPageSetup,而是使用Clone()」? http://stackoverflow.com/questions/32757196/how-can-set-the-page-size-of-migradoc我也停止渲染後設置頁面大小。那只是一個黑暗中的鏡頭,看看它是否解決了問題 – Hoppe
關鍵是:不要修改DefaultPageSetup。修改您的部分的PageSetup,無論是否指定DefaultPageSetup的克隆。 –