public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithGradient(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Initialize List of XpsGradentStop List <XpsGradientStop> stops = new List <XpsGradientStop>(); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 244, 253, 225), 0.0673828f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 251, 240, 23), 0.314453f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 252, 209, 0), 0.482422f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 241, 254, 161), 0.634766f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 53, 253, 255), 0.915039f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 12, 91, 248), 1f)); // Create new path by defining geometery in abbreviation form XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,210 L 228,210 228,300 10,300")); path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f); path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 0f), new PointF(228f, 0f)); ((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops); // Save resultant XPS document doc.Save(dataDir + "AddHorizontalGradient_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithGradient(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Initialize List of XpsGradentStop List <XpsGradientStop> stops = new List <XpsGradientStop>(); stops.Add(doc.CreateGradientStop(doc.CreateColor(253, 255, 12, 0), 0f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(252, 255, 154, 0), 0.359375f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(252, 255, 56, 0), 0.424805f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(253, 255, 229, 0), 0.879883f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(252, 255, 255, 234), 1f)); // Create new path by defining geometery in abbreviation form XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,110 L 228,110 228,200 10,200")); path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f); path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 110f), new PointF(10f, 200f)); ((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops); // Save resultant XPS document doc.Save(dataDir + "AddVerticalGradient_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Initialize PDF output stream using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Create, System.IO.FileAccess.Write)) // Initialize XPS input stream using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.Open, System.IO.FileAccess.Read)) { // Load XPS document form the stream XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions()); // or load XPS document directly from file. No xpsStream is needed then. // XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions()); // Initialize options object with necessary parameters. Aspose.Page.Xps.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.Xps.Presentation.Pdf.PdfSaveOptions() { JpegQualityLevel = 100, ImageCompression = Aspose.Page.Xps.Presentation.Pdf.PdfImageCompression.Jpeg, TextCompression = Aspose.Page.Xps.Presentation.Pdf.PdfTextCompression.Flate, PageNumbers = new int[] { 1, 2, 6 } }; // Create rendering device for PDF format Aspose.Page.Xps.Presentation.Pdf.PdfDevice device = new Aspose.Page.Xps.Presentation.Pdf.PdfDevice(pdfStream); document.Save(device, options); } // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithShapes(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Radial gradient stroked ellipse in the lower left List<XpsGradientStop> stops = new List<XpsGradientStop>(); stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 0, 255), 0f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), .25f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 255, 0), .5f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 255, 0), .75f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), 1f)); XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 20,250 A 100,50 0 1 1 220,250 100,50 0 1 1 20,250")); path.Stroke = doc.CreateRadialGradientBrush(new PointF(575f, 125f), new PointF(575f, 100f), 75f, 50f); ((XpsGradientBrush)path.Stroke).SpreadMethod = XpsSpreadMethod.Reflect; ((XpsGradientBrush)path.Stroke).GradientStops.AddRange(stops); stops.Clear(); path.StrokeThickness = 12f; // Save resultant XPS document doc.Save(dataDir + "AddEllipse_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithGradient(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Initialize List of XpsGradentStop List <XpsGradientStop> stops = new List <XpsGradientStop>(); // Add Colors to Gradient stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 142, 4), 0f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 202, 0), 0.144531f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 250, 0), 0.264648f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), 0.414063f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(233, 0, 255), 0.544922f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(107, 27, 190), 0.694336f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(63, 0, 255), 0.844727f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 199, 80), 1f)); // Create new path by defining geometery in abbreviation form XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,10 L 228,10 228,100 10,100")); path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f); path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 10f), new PointF(228f, 100f)); ((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops); // Save resultant XPS document doc.Save(dataDir + "AddLinearGradient_out.xps"); // ExEnd:1 }
///<Summary> /// ConvertXpsToPdf method to convert Xps file to pdf ///</Summary> public Response ConvertXpsToPdf(string fileName, string folderName) { return(ProcessTask(fileName, folderName, ".pdf", false, false, delegate(string inFilePath, string outPath, string zipOutFolder) { using (FileStream pdfStream = new FileStream(outPath, System.IO.FileMode.Create, System.IO.FileAccess.Write)) using (FileStream xpsStream = new FileStream(inFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions()); Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream); document.Save(device, new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()); } })); }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithPages(); // Create new XPS Document XpsDocument doc = new XpsDocument(dataDir + "Sample1.xps"); // Insert an empty page at beginning of pages list doc.InsertPage(1, true); // Save resultant XPS document doc.Save(dataDir + "AddPages_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Input file string inputFileName = dataDir + "input.xps"; //Outut file string outputFileName = dataDir + "XPStoImage_out.jpeg"; // Initialize XPS input stream using (Stream xpsStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) { // Load XPS document form the stream XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions()); // or load XPS document directly from file. No xpsStream is needed then. // XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions()); // Initialize options object with necessary parameters. JpegSaveOptions options = new JpegSaveOptions() { SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality, Resolution = 300, PageNumbers = new int[] { 1, 2, 6 } }; // Create rendering device for PDF format ImageDevice device = new ImageDevice(); document.Save(device, options); // Iterate through document partitions (fixed documents, in XPS terms) for (int i = 0; i < device.Result.Length; i++) { // Iterate through partition pages for (int j = 0; j < device.Result[i].Length; j++) { // Initialize image output stream using (Stream imageStream = System.IO.File.Open(Path.GetDirectoryName(outputFileName) + Path.GetFileNameWithoutExtension(outputFileName) + "_" + (i + 1) + "_" + (j + 1) + Path.GetExtension(outputFileName), System.IO.FileMode.Create, System.IO.FileAccess.Write)) // Write image imageStream.Write(device.Result[i][j], 0, device.Result[i][j].Length); } } } // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Load Existing XPS Document XpsDocument doc = new XpsDocument(dataDir + "input.xps"); // Initialize PdfSaveOptions PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); // Specify TextCompression Style pdfSaveOptions.TextCompression = PdfTextCompression.Flate; // Save as PDF Document doc.Save(dataDir + "XPStoPDF_out.pdf", pdfSaveOptions); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Load Existing XPS Document XpsDocument doc = new XpsDocument(dataDir + "input.xps"); // Initialize PngSaveOptions PngSaveOptions pngSaveOptions = new PngSaveOptions(); // Specify Resolution pngSaveOptions.Resolution = 300f; // Save as PNG Image doc.Save(dataDir + "XPStoImage_out.png", pngSaveOptions); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithText(); // Create new XPS Document XpsDocument doc = new XpsDocument(); //Create a brush XpsSolidColorBrush textFill = doc.CreateSolidColorBrush(Color.Black); //Add glyph to the document XpsGlyphs glyphs = doc.AddGlyphs("Arial", 12, FontStyle.Regular, 300f, 450f, "Hello World!"); glyphs.Fill = textFill; // Save resultant XPS document doc.Save(dataDir + "AddText_out.xps"); // ExEnd:1 }
private Response ConvertXpsToImage(string fileName, string folderName, string outputType) { return(ProcessTask(fileName, folderName, "." + outputType, true, false, delegate(string inFilePath, string outPath, string zipOutFolder) { using (Stream xpsStream = System.IO.File.Open(inFilePath, FileMode.Open, FileAccess.Read)) { XpsDocument document = new XpsDocument(xpsStream, new XpsLoadOptions()); Aspose.Page.XPS.Presentation.Image.ImageSaveOptions options = new BmpSaveOptions(); switch (outputType) { case "tiff": options = new TiffSaveOptions(); break; case "png": options = new PngSaveOptions(); break; case "jpg": options = new JpegSaveOptions(); break; } Page.XPS.Presentation.Image.ImageDevice device = new Page.XPS.Presentation.Image.ImageDevice(); document.Save(device, options); for (int i = 0; i < device.Result.Length; i++) { for (int j = 0; j < device.Result[i].Length; j++) { string imagePath = Path.GetFileNameWithoutExtension(fileName) + "_" + (j + 1) + "." + outputType; outPath = zipOutFolder + "/" + imagePath; using (Stream imageStream = System.IO.File.Open(outPath, FileMode.Create, FileAccess.Write)) { imageStream.Write(device.Result[i][j], 0, device.Result[i][j].Length); } } } } })); }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithText(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Add Text XpsSolidColorBrush textFill = doc.CreateSolidColorBrush(Color.Black); XpsGlyphs glyphs = doc.AddGlyphs("Arial", 20, FontStyle.Regular, 400f, 200f, "TEN. rof SPX.esopsA"); glyphs.BidiLevel = 1; glyphs.Fill = textFill; // Save resultant XPS document doc.Save(dataDir + "AddText_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithShapes(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // CMYK (blue) solid color stroked rectangle in the lower left XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 20,10 L 220,10 220,100 20,100 Z")); path.Stroke = doc.CreateSolidColorBrush( doc.CreateColor(dataDir + "uswebuncoated.icc", 1.0f, 1.000f, 0.000f, 0.000f, 0.000f)); path.StrokeThickness = 12f; // Save resultant XPS document doc.Save(dataDir + "AddRectangle_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithImages(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Add Image XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z")); //Creating a matrix is optional, it can be used for proper positioning path.RenderTransform = doc.CreateMatrix(0.7f, 0f, 0f, 0.7f, 0f, 20f); //Create Image Brush path.Fill = doc.CreateImageBrush(dataDir + "QL_logo_color.tif", new RectangleF(0f, 0f, 258.24f, 56.64f), new RectangleF(50f, 20f, 193.68f, 42.48f)); // Save resultant XPS document doc.Save(dataDir + "AddImage_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithImages(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Tile image // ImageBrush filled rectangle in the right top bellow XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,160 L 228,160 228,305 10,305")); path.Fill = doc.CreateImageBrush(dataDir + "R08LN_NN.jpg", new RectangleF(0f, 0f, 128f, 96f), new RectangleF(0f, 0f, 64f, 48f)); ((XpsImageBrush)path.Fill).TileMode = XpsTileMode.Tile; path.Fill.Opacity = 0.5f; // Save resultant XPS document doc.Save(dataDir + "AddTiledImage_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithVisualBrush(); XpsDocument doc = new XpsDocument(); // Geometry for magenta grid VisualBrush XpsPathGeometry pathGeometry = doc.CreatePathGeometry(); pathGeometry.AddSegment(doc.CreatePolyLineSegment( new PointF[] { new PointF(240f, 5f), new PointF(240f, 310f), new PointF(0f, 310f) })); pathGeometry[0].StartPoint = new PointF(0f, 5f); // Canvas for magenta grid VisualBrush XpsCanvas visualCanvas = doc.CreateCanvas(); XpsPath visualPath = visualCanvas.AddPath( doc.CreatePathGeometry("M 0,4 L 4,4 4,0 6,0 6,4 10,4 10,6 6,6 6,10 4,10 4,6 0,6 Z")); visualPath.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1f, .61f, 0.1f, 0.61f)); XpsPath gridPath = doc.CreatePath(pathGeometry); //Create Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs) gridPath.Fill = doc.CreateVisualBrush(visualCanvas, new RectangleF(0f, 0f, 10f, 10f), new RectangleF(0f, 0f, 10f, 10f)); ((XpsVisualBrush)gridPath.Fill).TileMode = XpsTileMode.Tile; // New canvas XpsCanvas canvas = doc.AddCanvas(); canvas.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 268f, 70f); // Add grid canvas.AddPath(gridPath); // Red transparent rectangle in the middle top XpsPath path = canvas.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z")); path = canvas.AddPath(doc.CreatePathGeometry("M 10,10 L 228,10 228,100 10,100")); path.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1.0f, 0.0f, 0.0f)); path.Opacity = 0.7f; // Save resultant XPS document doc.Save(dataDir + "AddGrid_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithTransparency(); // Create new XPS Document XpsDocument doc = new XpsDocument(); //Add Canvas to XpsDocument instance XpsCanvas canvas = doc.AddCanvas(); // Rectangle with opacity masked by ImageBrush XpsPath path = canvas.AddPath(doc.CreatePathGeometry("M 10,180 L 228,180 228,285 10,285")); path.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1.0f, 0.0f, 0.0f)); path.OpacityMask = doc.CreateImageBrush(dataDir + "R08SY_NN.tif", new RectangleF(0f, 0f, 128f, 192f), new RectangleF(0f, 0f, 64f, 96f)); ((XpsImageBrush)path.OpacityMask).TileMode = XpsTileMode.Tile; // Save resultant XPS document doc.Save(dataDir + "OpacityMask_out.xps"); // ExEnd:1 }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithDocumentConversion(); // Load Existing XPS Document XpsDocument doc = new XpsDocument(dataDir + "input.xps"); // Initialize PdfSaveOptions PdfSaveOptions pdfSaveOptions = new PdfSaveOptions { // Specify TextCompression Style TextCompression = PdfTextCompression.Flate }; //Create a PDF stream FileStream outputStream = new FileStream(dataDir + "XPStoPDF_out.pdf", FileMode.OpenOrCreate); // Save as PDF Document doc.Save(outputStream, pdfSaveOptions); // ExEnd:1 }
private List <string> GetDocumentPages(string file, string folderName, int currentPage) { List <string> lstOutput = new List <string>(); string outfileName = "page_{0}"; string outPath = Config.Configuration.OutputDirectory + folderName + "/" + outfileName; currentPage = currentPage - 1; Directory.CreateDirectory(Config.Configuration.OutputDirectory + folderName); string imagePath = string.Format(outPath, currentPage) + ".jpeg"; if (System.IO.File.Exists(imagePath) && currentPage > 0) { lstOutput.Add(imagePath); return(lstOutput); } int i = currentPage; var filename = System.IO.File.Exists(Config.Configuration.WorkingDirectory + folderName + "/" + file) ? Config.Configuration.WorkingDirectory + folderName + "/" + file : Config.Configuration.OutputDirectory + folderName + "/" + file; using (FilePathLock.Use(filename)) { try { if (!System.IO.File.Exists(Config.Configuration.OutputDirectory + folderName + "/" + "outputPDF.pdf")) { Aspose.Page.Live.Demos.UI.Models.License.SetAsposePageLicense(); System.IO.FileStream pdfStream = new System.IO.FileStream(Config.Configuration.OutputDirectory + folderName + "/" + "outputPDF.pdf", System.IO.FileMode.CreateNew, System.IO.FileAccess.Write); System.IO.FileStream psStream = new System.IO.FileStream(Config.Configuration.WorkingDirectory + folderName + "/" + file, System.IO.FileMode.Open, System.IO.FileAccess.Read); try { if (file.ToLower().EndsWith(".xps")) { Page.XPS.XpsDocument document = new XpsDocument(psStream, new Page.XPS.XpsLoadOptions()); Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions(); Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream, new Size(595, 842)); document.Save(device, options); } else { PsDocument document = new PsDocument(psStream); Aspose.Page.EPS.Device.PdfSaveOptions options = new Aspose.Page.EPS.Device.PdfSaveOptions(true); Aspose.Page.EPS.Device.PdfDevice device = new Aspose.Page.EPS.Device.PdfDevice(pdfStream, new Size(595, 842)); document.Save(device, options); } } finally { psStream.Close(); pdfStream.Close(); } } PdfConverter objConverter = new PdfConverter(); objConverter.BindPdf(Config.Configuration.OutputDirectory + folderName + "/" + "outputPDF.pdf"); objConverter.DoConvert(); objConverter.CoordinateType = PageCoordinateType.CropBox; if (currentPage < objConverter.PageCount) { lstOutput.Add(objConverter.PageCount.ToString()); i = 0; while (objConverter.HasNextImage() && i < objConverter.PageCount) { objConverter.StartPage = (currentPage + 1); objConverter.GetNextImage(imagePath, System.Drawing.Imaging.ImageFormat.Png); lstOutput.Add(imagePath); break; } } objConverter.Close(); } catch (Exception ex) { throw ex; } return(lstOutput); } }
public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithTransparency(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Just to demonstrate transparency doc.AddPath(doc.CreatePathGeometry("M120,0 H400 v1000 H120")).Fill = doc.CreateSolidColorBrush(Color.Gray); doc.AddPath(doc.CreatePathGeometry("M300,120 h600 V420 h-600")).Fill = doc.CreateSolidColorBrush(Color.Gray); // Create path with closed rectangle geometry XpsPath path1 = doc.CreatePath(doc.CreatePathGeometry("M20,20 h200 v200 h-200 z")); // Set blue solid brush to fill path1 path1.Fill = doc.CreateSolidColorBrush(Color.Blue); // Add it to the current page XpsPath path2 = doc.Add(path1); // path1 and path2 are the same as soon as path1 hasn't been placed inside any other element // (which means that path1 had no parent element). // Because of that rectangle's color on the page effectively turns to green path2.Fill = doc.CreateSolidColorBrush(Color.Green); // Now add path2 once again. Now path2 has parent. So path3 won't be the same as path2. // Thus a new rectangle is painted on the page ... XpsPath path3 = doc.Add(path2); // ... and we shift it 300 units lower ... path3.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 300); // ... and set red solid brush to fill it path3.Fill = doc.CreateSolidColorBrush(Color.Red); // Create new path4 with path2's geometry ... XpsPath path4 = doc.AddPath(path2.Data); // ... shift it 300 units to the right ... path4.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 300, 0); // ... and set blue solid fill path4.Fill = doc.CreateSolidColorBrush(Color.Blue); // Add path4 once again. XpsPath path5 = doc.Add(path4); // path4 and path5 are not the same again ... // (move path5 300 units lower) path5.RenderTransform = path5.RenderTransform.Clone(); // to disconnect RenderTransform value from path4 (see next comment about Fill property) path5.RenderTransform.Translate(0, 300); // ... but if we set the opacity of Fill property, it will take effect on both path5 and path4 // because brush is a complex property value which remains the same for path5 and path4 path5.Fill.Opacity = 0.8f; // Create new path6 with path2's geometry ... XpsPath path6 = doc.AddPath(path2.Data); // ... shift it 600 units to the right ... path6.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 600, 0); // ... and set yellow solid fill path6.Fill = doc.CreateSolidColorBrush(Color.Yellow); // Now add path6's clone ... XpsPath path7 = doc.Add(path6.Clone()); // (move path5 300 units lower) path7.RenderTransform = path7.RenderTransform.Clone(); path7.RenderTransform.Translate(0, 300); // ... and set opacity for path7 path7.Fill.Opacity = 0.8f; // Now opacity effects independantly as soon as property values are cloned along with the element // The following code block is equivalent to the previous one. // Add path6 itself. path6 and path7 are not the same. Although their Fill property values are the same //XpsPath path7 = doc.Add(path6); //path7.RenderTransform = path7.RenderTransform.Clone(); //path7.RenderTransform.Translate(0, 300); // To "disconnect" path7's Fill property from path6's Fill property reassign it to its clone (or path6's Fill clone) //path7.Fill = ((XpsSolidColorBrush)path7.Fill).Clone(); //path7.Fill.Opacity = 0.8f; // Save resultant XPS document doc.Save(dataDir + "WorkingWithTransparency_out.xps"); // ExEnd:1 }