我有一个动态文本,其行数未知。该行数可以在1和1000之间。 现在我想创建一个PDF文档,如果达到特定行数,它将自动创建一个新页面。
我已经发现它可能适用于MigraDoc,但我已经测试过它了......它没有像我测试的那样工作。
// You always need a MigraDoc document for rendering.
Document doc = new Document();
MigraDoc.DocumentObjectModel.Section sec = doc.AddSection();
// Add a single paragraph with some text and format information.
MigraDoc.DocumentObjectModel.Paragraph para = sec.AddParagraph();
para.Format.Alignment = ParagraphAlignment.Justify;
para.Format.Font.Name = "Times New Roman";
para.Format.Font.Size = 12;
para.Format.Font.Color = MigraDoc.DocumentObjectModel.Colors.DarkGray;
para.Format.Font.Color = MigraDoc.DocumentObjectModel.Colors.DarkGray;
para.AddText("Duisism odigna acipsum delesenisl ");
para.AddFormattedText("ullum in velenit", TextFormat.Bold);
para.AddText(" ipit iurero dolum zzriliquisis nit wis dolore vel et nonsequipit, velendigna " +
"auguercilit lor se dipisl duismod tatem zzrit at laore magna feummod oloborting ea con vel " +
"essit augiati onsequat luptat nos diatum vel ullum illummy nonsent \nA \n B\nV \nD \nE\nF\nG\nA \n B\nV \nD \nE\nF\nG\nA \n B\nV \nD \nE\nF\nG\nA \n B\nV \nD \nE\nF\nG\nA \n B\nV \nD \nE\nF\nGnit ipis et nonsequis " +
"niation utpat. Odolobor augait et non etueril landre min ut ulla feugiam commodo lortie ex " +
"essent augait el ing eumsan hendre feugait prat augiatem amconul laoreet. ≤≥≈≠");
para.Format.Borders.Distance = "5pt";
para.Format.Borders.Color = MigraDoc.DocumentObjectModel.Colors.Gold;
// Create a renderer and prepare (=layout) the document
MigraDoc.Rendering.DocumentRenderer docRenderer = new DocumentRenderer(doc);
docRenderer.PrepareDocument();
这是我从MigraDoc示例中获取的代码,但它并不像我想要的那样真正起作用。它不是在适当数量的行之后创建新页面,而是在第一页的边框之外进一步写入。
如果达到合适的行数,你能给我一个多行文字创建新页面的例子吗?
答案 0 :(得分:0)
要从MigraDoc创建PDF文档,请使用PdfDocumentRenderer
类,您将获得所需数量的页面。
可在此处找到样本:
http://www.pdfsharp.net/wiki/HelloMigraDoc-sample.ashx
您使用的课程DocumentRenderer
适用于特殊情况。按照设计,它无法自动处理分页符。