|
private
Dictionary<string,
List<XpsResource>>
AddPageResources(IXpsFixedPageWriter fixedPageWriter)
{
//
Collection of all resources for this page.
// Key: "XpsImage",
"XpsFont"
// Value: List of XpsImage or XpsFont
Dictionary<string, List<XpsResource>> resources =
new
Dictionary<string,
List<XpsResource>>();
//
Collections of images and fonts used in the current page.
List<XpsResource> xpsImages =
new List<XpsResource>();
List<XpsResource>
xpsFonts = new
List<XpsResource>();
try
{
XpsImage xpsImage;
XpsFont xpsFont;
//
Add, Write, and Commit image1 to the current page.
xpsImage =
fixedPageWriter.AddImage(XpsImageType.JpegImageType);
WriteToStream(xpsImage.GetStream(), image1);
xpsImage.Commit();
xpsImages.Add(xpsImage); // Add image1 as a required resource.
//
Add, Write, and Commit font 1 to the current page.
xpsFont =
fixedPageWriter.AddFont();
WriteObfuscatedStream(
xpsFont.Uri.ToString(),
xpsFont.GetStream(), font1);
xpsFont.Commit();
xpsFonts.Add(xpsFont); // Add font1 as a required resource.
//
Add, Write, and Commit image2 to the current page.
xpsImage =
fixedPageWriter.AddImage(XpsImageType.TiffImageType);
WriteToStream(xpsImage.GetStream(), image2);
xpsImage.Commit();
xpsImages.Add(xpsImage); // Add image2 as a required resource.
//
Add, Write, and Commit font2 to the current page.
xpsFont =
fixedPageWriter.AddFont(false);
WriteToStream(xpsFont.GetStream(), font2);
xpsFont.Commit();
xpsFonts.Add(xpsFont); // Add font2 as a required resource.
//
Return the image and font resources in a combined collection.
resources.Add("XpsImage", xpsImages);
resources.Add("XpsFont", xpsFonts);
return
resources;
}
catch
(XpsPackagingException xpsException)
{
throw xpsException;
}
}
|