예제 #1
0
            /// <summary>
            /// 替换书签内容
            /// </summary>
            /// <param name="bookmarkName">书签名</param>
            /// <param name="value">替换内容</param>
            public void ReplaceBookMark(string bookmarkName, string value, string type = "", double width = 320, double height = 320)
            {
                var bm = doc.Range.Bookmarks[bookmarkName];

                if (bm == null)
                {
                    return;
                }
                try
                {
                    if (type == "IMG")
                    {
                        bm.Text = "";
                        builder.MoveToBookmark(bookmarkName);
                        var img = builder.InsertImage(@value, width, height); // width 350像素, height 350像素
                        //Console.WriteLine(bookmarkName+"替换图片成功!");
                        doc.UpdateFields();                                   //更新域
                    }
                    else
                    {
                        bm.Text = "";
                        builder.MoveToBookmark(bookmarkName);
                        //bm.Text = value;//会把文字格式情况
                        builder.Write(value); //修改书签内容的第二种方法,不会更改文字字体等属性
                        //Console.WriteLine(bookmarkName+"替换书签内容成功!");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("错误:" + e.Message);
                }
            }
예제 #2
0
        /// <summary>
        /// 带签章的pdf保存
        /// </summary>
        /// <param name="fileTemp">doc模板</param>
        /// <param name="signatureImag">签章图片</param>
        /// <param name="outFilePath">输出路径</param>
        public void SavAsPdf(string fileTemp, string signatureImag, string outFilePath)
        {
            oDoc = new Document(fileTemp);
            Bookmark bKGetDate = oDoc.Range.Bookmarks["GetDate"];

            if (bKGetDate != null)
            {
                oDoc.Range.Bookmarks["GetDate"].Text = DateTime.Now.ToString("yyyy年MM月dd日");
            }
            Bookmark bKsignatureImage = oDoc.Range.Bookmarks["signatureImage"];

            if (bKsignatureImage != null)
            {
                Aspose.Words.DocumentBuilder dbuilder = new Aspose.Words.DocumentBuilder(oDoc);
                dbuilder.MoveToBookmark("signatureImage");
                dbuilder.InsertImage(signatureImag, Aspose.Words.Drawing.RelativeHorizontalPosition.Character, -130,
                                     Aspose.Words.Drawing.RelativeVerticalPosition.BottomMargin, 0, 120, 120, Aspose.Words.Drawing.WrapType.None);
            }
            int pageCount = oDoc.PageCount;

            if (pageCount > 1 && bKsignatureImage != null)
            {
                SealPath = signatureImag;
                AddPageSeal(outFilePath, pageCount);
            }
            else//直接生成pdf
            {
                oDoc.Save(outFilePath, SaveFormat.Pdf);
            }
        }
 public void InsertPicture(string bookmark, string picturePath, float width, float height)
 {
     if (this.doc.Range.Bookmarks[bookmark] != null)
     {
         builder.MoveToBookmark(bookmark);
         /*var img = */
         builder.InsertImage(picturePath, RelativeHorizontalPosition.Margin, 0, RelativeVerticalPosition.Margin, 0, 155, 155, WrapType.Square);
         //img.Width = width;
         //img.Height = height;
         //img.HorizontalAlignment = Aspose.Words.Drawing.HorizontalAlignment.Center;
     }
 }
예제 #4
0
        protected Stream GetPreviewImagesWordStream(Content content, IEnumerable <SNCR.Image> previewImages, RestrictionType?restrictionType = null)
        {
            CheckLicense(LicenseProvider.Words);

            try
            {
                var ms             = new MemoryStream();
                var document       = new AsposeWords.Document();
                var builder        = new AsposeWords.DocumentBuilder(document);
                var index          = 1;
                var saveFormat     = content.Name.ToLower().EndsWith(".docx") ? AsposeWords.SaveFormat.Docx : AsposeWords.SaveFormat.Doc;
                var pageAttributes = GetPageAttributes(content);
                var imageOptions   = new PreviewImageOptions()
                {
                    RestrictionType = restrictionType
                };

                foreach (var previewImage in previewImages.Where(previewImage => previewImage != null))
                {
                    // use the stored rotation value for this page if exists
                    int?rotation = pageAttributes.ContainsKey(previewImage.Index)
                        ? pageAttributes[previewImage.Index].degree
                        : null;

                    imageOptions.Rotation = rotation;

                    using (var imgStream = GetRestrictedImage(previewImage, imageOptions))
                    {
                        int newWidth;
                        int newHeight;

                        // Compute dimensions using a SQUARE (max width and height are equal).
                        ComputeResizedDimensionsWithRotation(previewImage, PREVIEW_WORD_HEIGHT, rotation, out newWidth, out newHeight);

                        try
                        {
                            // skip to the next page
                            if (index > 1)
                            {
                                builder.Writeln("");
                            }

                            // If the final image is landscape, we need to rotate the page
                            // to fit the image. It does not matter if the original image
                            // was landscape or the rotation made it that way.
                            // Switch orientation only if needed.
                            if (newWidth > newHeight)
                            {
                                if (builder.PageSetup.Orientation != AsposeWords.Orientation.Landscape)
                                {
                                    if (index > 1)
                                    {
                                        builder.InsertBreak(AsposeWords.BreakType.SectionBreakContinuous);
                                    }

                                    builder.PageSetup.Orientation = AsposeWords.Orientation.Landscape;
                                }
                            }
                            else
                            {
                                if (builder.PageSetup.Orientation != AsposeWords.Orientation.Portrait)
                                {
                                    if (index > 1)
                                    {
                                        builder.InsertBreak(AsposeWords.BreakType.SectionBreakContinuous);
                                    }

                                    builder.PageSetup.Orientation = AsposeWords.Orientation.Portrait;
                                }
                            }

                            builder.InsertImage(imgStream,
                                                RelativeHorizontalPosition.LeftMargin,
                                                -5,
                                                RelativeVerticalPosition.TopMargin,
                                                -50,
                                                newWidth,
                                                newHeight,
                                                WrapType.Square);
                        }
                        catch (IndexOutOfRangeException ex)
                        {
                            SnLog.WriteException(ex, "Error during document generation. Path: " + previewImage.Path);
                            break;
                        }
                    }

                    index++;
                }

                document.Save(ms, saveFormat);

                ms.Seek(0, SeekOrigin.Begin);
                return(ms);
            }
            catch (Exception ex)
            {
                SnLog.WriteException(ex);
            }

            return(null);
        }
예제 #5
0
        public void ExpWD12(System.Data.DataTable dt)
        {
            #region //图片插入
            builder = new Aspose.Words.DocumentBuilder(doc);

            Shape shape = new Shape(doc, ShapeType.Image);
            shape.ImageData.SetImage("D:\\sw\\2010\\[Beautyleg]2010.06.18 No.414 Avy[73P]\\60.jpg");
            shape.Width = 850;
            shape.Height = 290;
            shape.HorizontalAlignment = HorizontalAlignment.Center; //靠右对齐
            if (doc.Range.Bookmarks["Z_IMG_24"] != null)
            {
                builder.MoveToBookmark("Z_IMG_24");
             //   builder.InsertImage("D:\\sw\\2010\\[Beautyleg]2010.06.18 No.414 Avy[73P]\\60.jpg", 550, 250);
                builder.InsertImage(dt.Rows[0][2].ToString(), 450, 200);
               // doc.Range.Bookmarks["Z_IMG_24"].Text = "";

            }
            if (doc.Range.Bookmarks["Z_IMG_41"] != null)
            {

                builder.MoveToBookmark("Z_IMG_41");
               // builder.InsertNode(shape);
             //   builder.InsertImage("D:\\sw\\2010\\[Beautyleg]2010.06.18 No.414 Avy[73P]\\60.jpg",550,250);
                builder.InsertImage(dt.Rows[1][2].ToString(), 450, 200);
               // doc.Range.Bookmarks["Z_IMG_41"].Text = "";

            }
            #endregion
        }
예제 #6
0
        private void process()
        {
            word.Document doc = new word.Document(this.ucFilesAndButtons1.TxbTemplateFileName.Text);

            //foreach (word.Drawing.Shape shp in doc.GetChildNodes(word.NodeType.Shape, true))
            //{
            //    // iterate through each Paragraph node of Shape
            //    foreach (word.Paragraph para in shp.GetChildNodes(word.NodeType.Paragraph, true))
            //    {
            //        //Get text of Paragraph
            //        String txt = para.ToString(word.SaveFormat.Text);
            //        word.Style style = para.ParagraphFormat.Style;
            //        String StyleName = style.Name;
            //    }
            //}

            //foreach (word.Drawing.Shape shp in doc.GetChildNodes(word.NodeType.Shape, true))
            //{
            //    // iterate through each Run node of Shape
            //    foreach (word.Run run in shp.GetChildNodes(word.NodeType.Run, true))
            //    {
            //        //Get text of Run
            //        String txt = run.Text;
            //        //Get font name
            //        String fontname = run.Font.Name;

            //        //Get font size
            //        double size = run.Font.Size;
            //    }
            //}

            foreach (word.Drawing.Shape shp in doc.GetChildNodes(word.NodeType.Shape, true))
            {
                //word.Run run2 = shp.GetChildNodes(word.NodeType.Run, true).Cast<word.Run>().SingleOrDefault(pp => pp.Text == "二维码");
                //MessageBox.Show(run2.Text);
                // iterate through each Run node of Shape
                foreach (word.Run run in shp.GetChildNodes(word.NodeType.Run, true))
                {
                    //String txt = run.Text;
                    //String fontname = run.Font.Name;
                    //double size = run.Font.Size;

                    if (run.Text == "二维码")
                    {
                        run.Text        = "";
                        shp.StrokeColor = Color.Transparent;
                        word.DocumentBuilder builder = new word.DocumentBuilder(doc);
                        builder.InsertImage(this.ucFilesAndButtons1.TxbImageFilePath.Text,
                                            word.Drawing.RelativeHorizontalPosition.Margin,
                                            shp.Left,
                                            word.Drawing.RelativeVerticalPosition.Margin,
                                            shp.Top,
                                            shp.Width,
                                            shp.Height,
                                            word.Drawing.WrapType.Square);
                        break;
                    }
                }
            }

            doc.Save(this.ucFilesAndButtons1.TxbPdf.Text);
            MessageBox.Show("ok");
        }