2016-03-01 68 views
0

我想改变与pdfSharp WPF C#创建的文档的方向,如果我想有一个横向文档pdfSharp文档的方向

这里我应该怎么做是我的代码

 private void savePDF() 
    { 

     string date = DateTime.Now.ToString().Replace('/', '-').Replace(':', '-'); 

     MemoryStream lMemoryStream = new MemoryStream(); 
     Package package = Package.Open(lMemoryStream, FileMode.Create); 
     XpsDocument doc = new XpsDocument(package); 
     XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); 
     writer.Write(rapport); 
     doc.Close(); 
     package.Close(); 
     var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream); 
     PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, "E:\\"+ date +".pdf", 0); 



    } 
+0

你能提供一个如何创建'关系'文档? –

+0

关系只是我的网格的名称,所以我只需在xaml文件中添加x:Name =“rapport” – Tib

+0

是您的文档只有一个页面? –

回答

0

首先把你的关系写成FixedDocument

FixedDocument fixedDoc = new FixedDocument(); 
    PageContent pageContent = new PageContent(); 
    FixedPage fixedPage = new FixedPage(); 


     string savedrapport = XamlWriter.Save(rapport); 

     StringReader stringReader = new StringReader(savedrapport); 
     XmlReader xmlReader = XmlReader.Create(stringReader); 
     Grid newrapportInstance = (Grid)XamlReader.Load(xmlReader); 

     //Create first page of document 
     fixedPage.Children.Add(newrapportInstance); 
    ((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage); 
    // hard coded for A4 
    fixedPage.Width = 11.69 * 96; 
    fixedPage.Height = 8.27 * 96; 
    fixedDoc.Pages.Add(pageContent); 
    //Create any other required pages here 

    MemoryStream lMemoryStream = new MemoryStream(); 
    Package package = Package.Open(lMemoryStream, FileMode.Create); 
    XpsDocument doc = new XpsDocument(package); 
    XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc); 
    writer.Write(fixedDoc); 
    doc.Close(); 
    package.Close(); 
    var pdfXpsDoc = PdfSharp.Xps.XpsModel.XpsDocument.Open(lMemoryStream); 
    PdfSharp.Xps.XpsConverter.Convert(pdfXpsDoc, "E:\\"+ date +".pdf", 0); 
+0

fixedPage.Width和fixedPage.Height之间切换如果你想不同的方向 –

+0

我刚刚尝试过,但我有一个'System.InvalidOperationException'行fixedPage.Children.Add(关系); – Tib

+0

它在UI中显示的融洽网格? –