| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using System;
- using System.IO.Packaging;
- using System.IO;
-
- namespace Novacode
- {
- /// <summary>
- /// Represents an Image embedded in a document.
- /// </summary>
- public class Image
- {
- /// <summary>
- /// A unique id which identifies this Image.
- /// </summary>
- private string id;
- private DocX document;
- internal PackageRelationship pr;
-
- public Stream GetStream(FileMode mode, FileAccess access)
- {
- string temp = pr.SourceUri.OriginalString;
- string start = temp.Remove(temp.LastIndexOf('/'));
- string end = pr.TargetUri.OriginalString;
- string full = start + "/" + end;
-
- return(document.package.GetPart(new Uri(full, UriKind.Relative)).GetStream(mode, access));
- }
-
- /// <summary>
- /// Returns the id of this Image.
- /// </summary>
- public string Id
- {
- get {return id;}
- }
-
- internal Image(DocX document, PackageRelationship pr)
- {
- this.document = document;
- this.pr = pr;
- this.id = pr.Id;
- }
-
- /// <summary>
- /// Add an image to a document, create a custom view of that image (picture) and then insert it into a Paragraph using append.
- /// </summary>
- /// <returns></returns>
- /// <example>
- /// Add an image to a document, create a custom view of that image (picture) and then insert it into a Paragraph using append.
- /// <code>
- /// using (DocX document = DocX.Create("Test.docx"))
- /// {
- /// // Add an image to the document.
- /// Image i = document.AddImage(@"Image.jpg");
- ///
- /// // Create a picture i.e. (A custom view of an image)
- /// Picture p = i.CreatePicture();
- /// p.FlipHorizontal = true;
- /// p.Rotation = 10;
- ///
- /// // Create a new Paragraph.
- /// Paragraph par = document.InsertParagraph();
- ///
- /// // Append content to the Paragraph.
- /// par.Append("Here is a cool picture")
- /// .AppendPicture(p)
- /// .Append(" don't you think so?");
- ///
- /// // Save all changes made to this document.
- /// document.Save();
- /// }
- /// </code>
- /// </example>
- public Picture CreatePicture()
- {
- return Paragraph.CreatePicture(document, id, string.Empty, string.Empty);
- }
- public Picture CreatePicture(int height, int width) {
- Picture picture = Paragraph.CreatePicture(document, id, string.Empty, string.Empty);
- picture.Height = height;
- picture.Width = width;
- return picture;
- }
-
- ///<summary>
- /// Returns the name of the image file.
- ///</summary>
- public string FileName
- {
- get
- {
- return Path.GetFileName(this.pr.TargetUri.ToString());
- }
- }
- }
- }
|