2011-03-16 71 views
1

嗨有 我已經成功地使用這個偉大的圖書館PDF Sharp.now我想玩一些動態的東西,所以人們建議切換到Migradoc我喜歡它的段落功能。現在問題是當我添加長段,然後新的頁面不添加,而不是有不完整的文本顯示(意義上文本溢出不完整),我已經在頁腳底部添加了一個圖像look.how我可以做,我輸入動態文字(可變長度),它只是增加了所需的頁數。基於文本的自動新頁面

到目前爲止我的代碼是

XFont font = new XFont("Times New Roman", 12, XFontStyle.Bold); 
      XFont fontReg = new XFont("Times New Roman", 12, XFontStyle.Regular); 

      // HACK² 
      gfx.MUH = PdfFontEncoding.Unicode; 
      gfx.MFEH = PdfFontEmbedding.Default; 

      string appPath = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath); 
      XImage image = XImage.FromFile(appPath + "/header.png"); 
      gfx.DrawImage(image, 0, 0); 
      //Civil Stamp 
      gfx.DrawImage(XImage.FromFile(appPath + "/cStamp.png"), 370, 380); 

      gfx.DrawImage(XImage.FromFile(appPath + "/Sp.png"), 230, 380); 

      CoverPageHeader(); 

      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.Left; 
      para.Format.Font.Name = "Times New Roman"; 
      para.Format.Font.Size = 12; 
      para.Format.Font.Color = MigraDoc.DocumentObjectModel.Colors.Black; 

      para.AddText("We are pleased to present the attached Document Please review the Agreement and, if acceptable, " + 
       "sign one copy and return it to us. We will sign the copy of the agreement and return one for " + 
       "your records."); 

      para.AddLineBreak(); 
      para.AddLineBreak(); 
      para.AddText(longlongtextString); 
      para.AddLineBreak(); 
      para.AddLineBreak();    
      para.AddText("Sincerely,"); 

MigraDoc.Rendering.DocumentRenderer docRenderer = new DocumentRenderer(doc); 
      docRenderer.PrepareDocument(); 

      // Render the paragraph. You can render tables or shapes the same way. 
      docRenderer.RenderObject(gfx, XUnit.FromCentimeter(0.7), XUnit.FromCentimeter(9), "18cm", para); 

      gfx.DrawString("Kelly Turbin PhD., P.E.-SECB", font, XBrushes.Black, 20, 500); 
      gfx.DrawString("Principal", font, XBrushes.Black, 20, 520); 
      gfx.DrawString("Project No " + textBoxProjNumber.Text, fontReg, XBrushes.Black, 20,785); 

      gfx.DrawImage(XImage.FromFile(appPath + "/AccB.png"), 20, 700); 
      gfx.DrawImage(XImage.FromFile(appPath + "/ScreenMagic.png"), 100, 690); 
      gfx.DrawImage(XImage.FromFile(appPath + "/Footer.png"), 220, 750); 

     } 

回答

0

不要使用渲染對象,而是使用RenderDocument,並根據需要的頁面將被自動創建。

示例代碼瀏覽: http://www.pdfsharp.net/wiki/HelloMigraDoc-sample.ashx

+0

沒有用於docRenderer.RenderDocument沒辦法有兩種方法只渲染對象和RenderPage – 2011-03-16 12:28:06

+0

如果我改變代碼的最後幾行,然後什麼都不是出現在PDF PdfDocumentRenderer渲染器=新PdfDocumentRenderer(真,PdfSharp.Pdf.PdfFontEmbedding 。總是); renderer.Document = doc; renderer.RenderDocument(); – 2011-03-16 12:33:55

-1

有沒有辦法來自動創建一個基於文本的大小新的網頁,當您使用Mix of PDFSharp and MigraDoc,因爲它是在的問題。唯一的解決辦法是僅使用MigraDoc及其RenderDocument方法。