我正在玩MigraDoc打印报告。出于某种原因,我无法打印页脚 - 尽管它们在预览器和生成的PDF中显示得很好。
这是我的代码 - 我将其修改为准系统进行测试,仍然无法使其正常工作。
Dim doc = New MigraDoc.DocumentObjectModel.Document
Dim sec = doc.AddSection
Dim f = sec.Footers.Primary
f.AddParagraph("test")
'Footer appears just fine on previewer
Dim ddl As String = MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToString(doc)
Me.Preview.Ddl = ddl
'Here's where I tried to print the doc directly. No footer printed.
'Dim d As New MigraDoc.Rendering.Printing.MigraDocPrintDocument()
'd.Renderer = New MigraDoc.Rendering.DocumentRenderer(doc)
'd.Renderer.PrepareDocument()
'd.Print()
'Here's where I tried to use the previewer's renderer. Still no footer printed
'Dim d As New MigraDoc.Rendering.Printing.MigraDocPrintDocument(Me.Preview.Renderer)
'd.Print()
我在名为Preview的表单上有一个MigraDoc.Rendering.Forms.DocumentPreview控件。如果您按原样运行表单,预览控件将显示一个空白页面,其页脚显示“测试”。一切都很好,但我无法打印那个页脚。如果我尝试直接打印(第一块注释代码),我只会得到一个空白页面。当我尝试使用预览器的渲染器(第二个注释代码块)打印它时相同。
有什么想法吗?
答案 0 :(得分:0)
AFAIK当您尝试使用MigraDoc 1.32的WPF版本进行打印时出现问题:无法打印任何内容。
您的测试文档似乎只包含页脚。也许添加一个“Hello,World!”段在正常的身体。我认为这不仅仅是缺少的页脚。
使用GDI +版本进行打印确实可以工作IIRC。
答案 1 :(得分:0)
我遇到了这个问题,发现如果我设置页脚距离页面底部的距离并将其设置为大于或等于它将显示的底部边距大小。
我的底部边距是0.75英寸。此代码将页脚放在页面的最底部:
doc.DefaultPageSetup.FooterDistance = new Unit(.75, UnitType.Inch);
这很奇怪。 PDF的数字副本总是有页脚。只有当它被打印时才会消失。打开数字副本并通过Adobe Reader打印也始终打印页脚。
我认为MigraDoc必须有一些与Post Script / PDF处理器不兼容的东西。无论哪种方式,这都是一个简单的解决方法。