public void AddVoucherImage(string jobIdLocation, Document pdf, AdjustmentLetter letter, IFileReader fileReader) { var secondPage = pdf.Pages.Add(); var drn = letter.AdjustedVoucher.voucher.documentReferenceNumber; var fs = fileReader.LoadImage(jobIdLocation, letter.ProcessingDate, drn); if (fs != null) { secondPage.Resources.Images.Add(fs); secondPage.Contents.Add(new Operator.GSave()); //// Create Rectangle and Matrix objects var rectangle = new Rectangle(ReportConstants.LowerLeftX, ReportConstants.LowerLeftY, ReportConstants.UpperRightX, ReportConstants.UpperRightY); var matrix = new Aspose.Pdf.DOM.Matrix(new[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY }); //// Using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed secondPage.Contents.Add(new Operator.ConcatenateMatrix(matrix)); var ximage = secondPage.Resources.Images[secondPage.Resources.Images.Count]; //// Using Do operator: this operator draws image secondPage.Contents.Add(new Operator.Do(ximage.Name)); //// Using GRestore operator: this operator restores graphics state secondPage.Contents.Add(new Operator.GRestore()); } else { Log.Warning("Image not found for voucher {@voucher} to attach to letter", new { jobIdentifier = letter.JobIdentifier, processingDate = letter.ProcessingDate, DRN = drn }); } }
public static void Run() { // The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Images(); //open document Document pdfDocument = new Document(dataDir+ "AddImage.pdf"); //set coordinates int lowerLeftX = 100; int lowerLeftY = 100; int upperRightX = 200; int upperRightY = 200; //get the page where image needs to be added Page page = pdfDocument.Pages[1]; //load image into stream FileStream imageStream = new FileStream(dataDir + "aspose-logo.jpg", FileMode.Open); //add image to Images collection of Page Resources page.Resources.Images.Add(imageStream); //using GSave operator: this operator saves current graphics state page.Contents.Add(new Operator.GSave()); //create Rectangle and Matrix objects Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY); Aspose.Pdf.DOM.Matrix matrix = new Aspose.Pdf.DOM.Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY }); //using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed page.Contents.Add(new Operator.ConcatenateMatrix(matrix)); XImage ximage = page.Resources.Images[page.Resources.Images.Count]; //using Do operator: this operator draws image page.Contents.Add(new Operator.Do(ximage.Name)); //using GRestore operator: this operator restores graphics state page.Contents.Add(new Operator.GRestore()); //save updated document pdfDocument.Save(dataDir + "AddImage_out.pdf"); }
public static byte[] Tif2PDF(byte[] fileBuffer) { Aspose.Pdf.Document doc = new Aspose.Pdf.Document(); // Add a page to pages collection of document MemoryStream mystream = new MemoryStream(fileBuffer); Image tiffImage = Image.FromStream(mystream); int frameCount = tiffImage.GetFrameCount(FrameDimension.Page); MemoryStream[] images = new MemoryStream[frameCount]; Guid objGuid = tiffImage.FrameDimensionsList[0]; FrameDimension objDimension = new FrameDimension(objGuid); for (int i = 0; i < frameCount; i++) { tiffImage.SelectActiveFrame(objDimension, i); using (MemoryStream ms = new MemoryStream()) { tiffImage.Save(ms, ImageFormat.Bmp); Aspose.Pdf.Page page = doc.Pages.Add(); Bitmap b = new Bitmap(ms); page.Resources.Images.Add(ms); page.PageInfo.Margin.Bottom = 0; page.PageInfo.Margin.Top = 0; page.PageInfo.Margin.Left = 0; page.PageInfo.Margin.Right = 0; page.SetPageSize(b.Width, b.Height); // Using GSave operator: this operator saves current graphics state page.Contents.Add(new Aspose.Pdf.Operator.GSave()); // Create Rectangle and Matrix objects Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height); Aspose.Pdf.DOM.Matrix matrix = new Aspose.Pdf.DOM.Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY }); // Using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed page.Contents.Add(new Aspose.Pdf.Operator.ConcatenateMatrix(matrix)); Aspose.Pdf.XImage ximage = page.Resources.Images[page.Resources.Images.Count]; // Using Do operator: this operator draws image page.Contents.Add(new Aspose.Pdf.Operator.Do(ximage.Name)); // Using GRestore operator: this operator restores graphics state page.Contents.Add(new Aspose.Pdf.Operator.GRestore()); } } var pdfStream = new MemoryStream(); doc.Save(pdfStream); // Close memoryStream object var buffer = pdfStream.ToArray(); pdfStream.Close(); mystream.Close(); return(buffer); }
public static byte[] Img2PDF(byte[] fileBuffer) { Aspose.Pdf.Document doc = new Aspose.Pdf.Document(); // Add a page to pages collection of document Aspose.Pdf.Page page = doc.Pages.Add(); MemoryStream mystream = new MemoryStream(fileBuffer); // Instantiate BitMap object with loaded image stream Bitmap b = new Bitmap(mystream); // Set margins so image will fit, etc. page.PageInfo.Margin.Bottom = 0; page.PageInfo.Margin.Top = 0; page.PageInfo.Margin.Left = 0; page.PageInfo.Margin.Right = 0; page.SetPageSize(b.Width, b.Height); //page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height); page.Resources.Images.Add(mystream); // Using GSave operator: this operator saves current graphics state page.Contents.Add(new Aspose.Pdf.Operator.GSave()); // Create Rectangle and Matrix objects Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height); Aspose.Pdf.DOM.Matrix matrix = new Aspose.Pdf.DOM.Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY }); // Using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed page.Contents.Add(new Aspose.Pdf.Operator.ConcatenateMatrix(matrix)); Aspose.Pdf.XImage ximage = page.Resources.Images[page.Resources.Images.Count]; // Using Do operator: this operator draws image page.Contents.Add(new Aspose.Pdf.Operator.Do(ximage.Name)); // Using GRestore operator: this operator restores graphics state page.Contents.Add(new Aspose.Pdf.Operator.GRestore()); var pdfStream = new MemoryStream(); doc.Save(pdfStream); // Close memoryStream object var buffer = pdfStream.ToArray(); pdfStream.Close(); mystream.Close(); return(buffer); }
public static void Run() { // The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Images(); //open document Document pdfDocument = new Document(dataDir + "AddImage.pdf"); //set coordinates int lowerLeftX = 100; int lowerLeftY = 100; int upperRightX = 200; int upperRightY = 200; //get the page where image needs to be added Page page = pdfDocument.Pages[1]; //load image into stream FileStream imageStream = new FileStream(dataDir + "aspose-logo.jpg", FileMode.Open); //add image to Images collection of Page Resources page.Resources.Images.Add(imageStream); //using GSave operator: this operator saves current graphics state page.Contents.Add(new Operator.GSave()); //create Rectangle and Matrix objects Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY); Aspose.Pdf.DOM.Matrix matrix = new Aspose.Pdf.DOM.Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY }); //using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed page.Contents.Add(new Operator.ConcatenateMatrix(matrix)); XImage ximage = page.Resources.Images[page.Resources.Images.Count]; //using Do operator: this operator draws image page.Contents.Add(new Operator.Do(ximage.Name)); //using GRestore operator: this operator restores graphics state page.Contents.Add(new Operator.GRestore()); //save updated document pdfDocument.Save(dataDir + "AddImage_out.pdf"); }