/// <summary> /// This method is supported by version 18.12 or greater /// </summary> public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Images(); // Initialize Document Aspose.Pdf.Document document = new Document(); document.Pages.Add(); Page page = document.Pages[1]; FileStream imageStream = new FileStream(dataDir + "aspose-logo.jpg", FileMode.Open); page.Resources.Images.Add(imageStream, ImageFilterType.Flate); XImage ximage = page.Resources.Images[page.Resources.Images.Count]; page.Contents.Add(new GSave()); // Set coordinates int lowerLeftX = 0; int lowerLeftY = 0; int upperRightX = 600; int upperRightY = 600; Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY); Matrix matrix = new 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 ConcatenateMatrix(matrix)); page.Contents.Add(new Do(ximage.Name)); page.Contents.Add(new GRestore()); document.Save(dataDir + "FlateDecodeCompression.pdf"); // ExEnd:1 }
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); }
internal static void SignPdfDocument(string filename, string certificate, string password) { var path = $"original\\{filename}"; var certPath = $"certificates\\{certificate}"; var authority = "Υπουργείο Εσωτερικών"; var contactInfo = "Ιωάννου Κωνσταντίνος"; var location = "Αθήνα"; var reason = "ΑΠ: 4322/12"; using (Aspose.Pdf.Document doc = new Aspose.Pdf.Document(path)) { var signature = new Aspose.Pdf.Facades.PdfFileSignature(doc); // Create digital signature PKCS7 sig = new PKCS7(certPath, password); // Use PKCS7/PKCS7Detached objects sig.Authority = authority; sig.ContactInfo = contactInfo; sig.Location = location; sig.Reason = reason; sig.ShowProperties = false; // Set signature position var size = 50; var llx = doc.Pages[1].Rect.URX - size - 10; var lly = doc.Pages[1].Rect.URY - size - 10; var urx = doc.Pages[1].Rect.URX - 10; var ury = doc.Pages[1].Rect.URY - 10; var rect = new Aspose.Pdf.Rectangle(llx, lly, urx, ury); // Set signature background image var lines = new List <string>() { authority, reason, contactInfo, location }; signature.SignatureAppearanceStream = createSigningImage("sign_stamp.png", lines); // Sign the document signature.Sign(1, true, rect.ToRect(), sig); // Save output PDF file var outputPath = $"revised\\signed_{filename}"; signature.Save(outputPath); } Console.WriteLine("signed...."); }