2016-11-15 9 views
0

У меня есть динамический текст с неизвестным количеством строк. Это число строк может быть между 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

Ну, проблема в том, что этот текст является лишь примером для тестирования длинного текста. В реальном примере были бы просто переменная вместо текста, но она также может быть до тех пор, пока этот текст. Должен ли я каждый раз разделить этот текст? И если да, как я могу это сделать для разных номеров строк? Я использую Migradoc 1.32 – Benziner

ответ

0

Чтобы создать PDF-документ от MigraDoc, используйте класс PdfDocumentRenderer, и вы получите как можно больше страниц.

Образец можно найти здесь:
http://www.pdfsharp.net/wiki/HelloMigraDoc-sample.ashx

Класс DocumentRenderer используется для особых случаев. По дизайну он не может обрабатывать разрывы страниц автоматически.

+0

Ну, это именно то, что мне не помогает. Примеры слишком велики, и есть слишком много проблем, на которые я должен сосредоточиться, пока это действительно не сработает. Можете ли вы просто дать мне небольшой пример с текстом, который выходит за 2 страницы, чтобы я мог видеть, что действительно необходимо для этого? Я уже тестировал пример MigraDoc, но он останавливает отладку в разных точках. Вот почему я прошу небольшой пример – Benziner