2016-11-15 10 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

MigraDoc에서 PDF 문서를 만들려면 PdfDocumentRenderer 클래스를 사용하면 필요한만큼의 페이지가 생성됩니다.

샘플

는 여기에서 찾을 수 있습니다 :
http://www.pdfsharp.net/wiki/HelloMigraDoc-sample.ashx

사용중인 DocumentRenderer 클래스는 특별한 경우입니다. 의도적으로 페이지 나누기를 자동으로 처리 할 수 ​​없습니다.

+0

그것은 정확히 나를 돕지 않는 것이다. 예제가 너무 커서 문제가 너무 많아서 실제로 작동 할 때까지 집중해야합니다. 2 페이지가 넘는 텍스트로 매우 작은 예제를 제공하여 실제로 필요한 것을 볼 수 있습니까? MigraDoc 예제를 이미 테스트했지만 다른 지점에서 디버깅을 중지합니다. 그것이 내가 작은 예제를 요구하는 이유입니다. – Benziner