我想从包含一些图像的FixedDocument创建XPS文件。当我打开XPS文件时,对于100%缩放,图像看起来还可以,但是随着更高的缩放,图像质量下降。是否可以将图像放在XPS文件中,以便在缩放100%以上时不会丢失图像质量?
我已使用以下代码将图像添加到FixedDocument:
FixedDocument fixedDocument = new FixedDocument();
FixedPage page = new FixedPage();
var filename = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Context.NomAplicacio, "Settings", "logo3.jpg");
var bitImage = new BitmapImage();
bitImage.BeginInit();
bitImage.StreamSource = new FileStream(filename, FileMode.Open, FileAccess.Read);
bitImage.DecodePixelWidth = 150;
bitImage.CacheOption = BitmapCacheOption.OnLoad;
bitImage.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
bitImage.EndInit();
bitImage.StreamSource.Seek(0, SeekOrigin.Begin);
bitImage.Freeze();
var tempImage = new System.Windows.Controls.Image { Source = bitImage };
bitImage.StreamSource.Dispose();
page.Children.Add(tempImage);
PageContent pageContent = new PageContent();
((IAddChild)pageContent).AddChild(page);
fixedDocument.Pages.Add(pageContent);
这是我的代码,用于从FixedDocument生成XPS文件:
using (var container = Package.Open(fileNameXps, FileMode.Create))
{
using (var xpsDoc = new XpsDocument(container, CompressionOption.NotCompressed))
{
var pol = new XpsPackagingPolicy(xpsDoc);
var rsm = new XpsSerializationManager(pol, false);
var paginator = fixedDocument.DocumentPaginator;
rsm.SaveAsXaml(paginator);
}
}
查看XPS文件,我发现图像(在文件夹资源内部)已重新缩放,并且与原始图像相比尺寸非常小。可能是问题所在,但我不知道如何在其中包含原始图像的情况下创建XPS。