WPF a XPS en orientación horizontal
-
21-09-2019 - |
Pregunta
Estoy tratando de generar un documento XPS de un control de WPF. Imprenta hasta ahora, pero no puedo encontrar una manera de crear el XPS en modo horizontal.
Mi código para crear el archivo XPS, sobre todo tomado de otra página SO
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();
}
}
Cualquier ayuda es apreciada.
Solución
Trate de ajustar el tamaño de su FixedPage en ReturnFixedDoc:
// hard coded for A4
fixedPage.Width = 11.69 * 96;
fixedPage.Height = 8.27 * 96;
Los números están en la forma (pulgadas) x (puntos por pulgada). 96 es el DPI de WPF. He utilizado las dimensiones de una página A4.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow