0
这是我的第一篇文章,我非常沮丧地使用Silverlight,因为我是一个新手。我有三个Silverlight UI(StackPanels基本上)“stkMain1”,“stkMain2”和“stkMain3”。使用SilverPDF的多页PDF导出Silverlight UI
我必须将这三个堆栈面板转换为PDF。我使用silverPDF(我想这还使用iTextSharp的和PDFSharp。)
我已经写了下面的代码:
Private Sub cmdImage_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles cmdImage.Click
Dim d As New SaveFileDialog()
d.Filter = "PDF file format|*.pdf"
' Save the document...
If d.ShowDialog() = True Then
stkMain.Children.Clear()
stkMain.Children.Add(stkMain1)
Dim document As New PdfDocument()
Dim page As PdfPage = document.AddPage
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim img As ImageTools.ExtendedImage = BillPage1.ToImage
Dim mstream As New MemoryStream()
Dim encoder As New JpegEncoder()
encoder.Encode(img, mstream)
mstream.Seek(0, SeekOrigin.Begin)
Dim pdfImg As XImage = XImage.FromStream(mstream)
gfx.DrawImage(pdfImg, 0, 0)
End If
End Sub
该做的一切正确的,并给出一个PDF文件的一个页面..精湛输出和竖起大拇指。 现在真正的问题开始:
Private Sub cmdImage_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles cmdImage.Click
Dim d As New SaveFileDialog()
d.Filter = "PDF file format|*.pdf"
' Save the document...
If d.ShowDialog() = True Then
stkMain.Children.Clear()
stkMain.Children.Add(BillPage1)
Dim document As New PdfDocument()
Dim page As PdfPage = document.AddPage
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim img As ImageTools.ExtendedImage = BillPage1.ToImage
Dim mstream As New MemoryStream()
Dim encoder As New JpegEncoder()
encoder.Encode(img, mstream)
mstream.Seek(0, SeekOrigin.Begin)
Dim pdfImg As XImage = XImage.FromStream(mstream)
gfx.DrawImage(pdfImg, 0, 0)
document.Pages.Add()
Dim page1 As PdfPage = document.AddPage
Dim gfx1 As XGraphics = XGraphics.FromPdfPage(page1)
Dim img1 As ImageTools.ExtendedImage = BillPage2.ToImage
Dim mstream1 As New MemoryStream()
Dim encoder1 As New JpegEncoder()
encoder1.Encode(img1, mstream1)
mstream1.Seek(0, SeekOrigin.Begin)
Dim pdfImg1 As XImage = XImage.FromStream(mstream1)
gfx1.DrawImage(pdfImg1, 0, 0)
document.Save(d.OpenFile())
End If
End Sub
现在,这造成两页,我得到一个扰码输出时,stackpanels的内容相互重叠。
如何解决这个?我需要绝对帮助。该项目将于2011年3月26日(星期一)递交。
在此先感谢 拉维
你能解释一下你的输出是什么样子多一点?我不太了解Silverlight,但它看起来像是将UI元素转换为元素并将其添加到PDF中的单个页面,然后使用下一个UI元素重复该元素,对吗?第一页好吗?这只是第二页看起来不好吗?什么重叠什么?这是PDF还是图像创建中的问题?你有没有尝试手动将图像保存到磁盘,看看他们是否是他们的? – 2011-03-26 18:30:08