WPF إلى XPS في اتجاه المناظر الطبيعية
-
21-09-2019 - |
سؤال
أحاول إنشاء مستند XPS من عنصر تحكم WPF. تعمل الطباعة حتى الآن ، لكن لا يمكنني إيجاد طريقة لإنشاء XPS في وضع المناظر الطبيعية.
الكود الخاص بي لإنشاء ملف XPS ، في الغالب مأخوذة من صفحة أخرى
public FixedDocument ReturnFixedDoc()
{
FixedDocument fixedDoc = new FixedDocument();
PageContent pageContent = new PageContent();
FixedPage fixedPage = new FixedPage();
var ctrl = new controlToPrint();
//Create first page of document
fixedPage.Children.Add(ctrl);
((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
fixedDoc.Pages.Add(pageContent);
//Create any other required pages here
return fixedDoc;
}
public void SaveCurrentDocument()
{
// Configure save file dialog box
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "MyReport"; // Default file name
dlg.DefaultExt = ".xps"; // Default file extension
dlg.Filter = "XPS Documents (.xps)|*.xps"; // Filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// Process save file dialog box results
if (result == true)
{
// Save document
string filename = dlg.FileName;
FixedDocument doc = ReturnFixedDoc();
XpsDocument xpsd = new XpsDocument(filename, FileAccess.Write);
System.Windows.Xps.XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
xw.Write(doc);
xpsd.Close();
}
}
أي مساعدة موضع تقدير.
المحلول
حاول ضبط حجم صفحة ثابتة في الإرجاع:
// hard coded for A4
fixedPage.Width = 11.69 * 96;
fixedPage.Height = 8.27 * 96;
الأرقام في النموذج (بوصة) x (نقاط لكل بوصة). 96 هو DPI من WPF. لقد استخدمت أبعاد صفحة A4.
لا تنتمي إلى StackOverflow