金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 编程 > 图片缩放的相关处理

图片缩放的相关处理

发布时间:2019-11-05 07:25编辑:编程浏览(92)

    C# 读写xml、excel、word、access

    图片缩放的相关处理

    Django中的CBV和FBV

    这里只是起个头,不做深入展开,方便以后用到参考

    最近自己做的点东西上用到了图片的处理,不过没有找到合适的图片处理相关算法,倒是找到了几个获取缩略图的算法。代码不长,简单看了看原理也比较简单(其实不是简单是C#的封装的太多了,所以显得比较简单)。既然没有相关的统一调用的代码,索性,我来整理一套相关的处理代码然后公开出来吧。

    一、  CBV

    CBV是采用面向对象的方法写视图文件。

    CBV的执行流程:

    浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执行dispatch方法区分出是POST请求还是GET请求,执行views.py对应类中的POST方法或GET方法。

    使用实例:

    urls.py

    path('login/',views.Login.as_view())
    

     

    views.py

    from django import views       #在views.py的基础上添加
    
    class Login(views.Views):
    
        def get(self,request)
    
             pass
    
             def pass(self,request)
    
                  pass
    

     

    使用装饰器:

    from django import views
    
    from django.utils.decorators import method_decorator
    
    def outer(func):
    
        def inner(request,*args,**kwargs):
    
            return func(request,*args,**kwargs)
    
        return inner
    
    
    
    class Login(views.View):
    
        @method_decorator(outer)
    
        def get(self,request,*args,**kwargs):
    
            pass
    

     

    在类上面加装饰器,和在函数上加装饰器是一个性质。但加的方法有所不同。

    eg:

    @method_decorator(outer,name='dispatch')
    
    class Login(views.View):
    

    自定义dispatch:

    class Login(views.View):
    
        def dispatch(self, request, *args, **kwargs):
    
            print(2222)
    
            ret = super(Login, self).dispatch(request, *args, **kwargs)
    
            print(1111)
    
            return ret
    def get(self, request, *args, **kwargs):
    
               print('GET')
    
               return HttpResponse('OK')
    
    执行结果:2222
    
             GET
    
             1111
    

    二、    FBV

    FBV即在views.py中以函数的形式写视图。

    读写xml,主要使用.net  的xml下的document

    图片处理的相关分析

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Xml;
    using System.Xml.Serialization;

    其实我要用的图片处理非常简单,就是简单的压缩一下图片。然后把图片设置到对应大小而已。但是对于设置的方式,C#基础的函数中使用的Rect范围设置。这个范围设置计算起来可能相对头疼一些。所以我在考虑要不要让调用者在忽略Rect这个参数的情况愉快的调用接口呢?于是乎,我定义了几个图片缩放类型(Full、Zoom、Overflow、Original)。然后默认的让原始图片的中心点与输出图片的中心点对齐。然后根据缩放类型来对图片进行不同的缩放模式。

    public static  void GetAreaCodes(string path,out string[] areaCodes ,out string[] pointCodes)
            {
                if (File.Exists(path))
                {
                    try
                    {
                        XmlDocument xml = new XmlDocument();
                        xml.LoadXml(path);
                        List<string> areas = new List<string>();
                        var areanode = xml.SelectSingleNode("areaRoot");
                        var elements = areanode.ChildNodes;
                        foreach (var element in elements)
                        {
                            areas.Add((element as XmlElement).InnerXml);
                        }
                        List<string> points = new List<string>();
                        var pointnode = xml.SelectSingleNode("pointRoot");
                        elements = areanode.ChildNodes;
                        foreach (var element in elements)
                        {
                            points.Add((element as XmlElement).InnerXml);
                        }
                        areaCodes = areas.ToArray();
                        pointCodes = points.ToArray();
                    }
                    catch
                    {
                        pointCodes = new[] { "GPS点", "建屋", "等级公路" };
                        areaCodes = new[] { "砖房", "阳台", "建屋", "地类界", "变电房" };
                    }
    
                }
                else
                {
                    pointCodes = new[] { "GPS点", "建屋", "等级公路" };
                    areaCodes = new[] { "砖房", "阳台", "建屋", "地类界", "变电房" };
                }
    
    
            }
    
            public static void WriteAreaCodes(string path, string[] areaCodes, string[] pointCodes)
            {
                try
                {
                    XmlDocument xml=new XmlDocument();
                    XmlDeclaration xmlDeclaration = xml.CreateXmlDeclaration("1.0", "utf-8","yes");
                    XmlNode Codes = xml.CreateElement("Codes");
                    xml.AppendChild(xmlDeclaration);
                    xml.AppendChild(Codes);
                    XmlNode areaRoot = xml.CreateElement("areaRoot");
                    foreach (var str in areaCodes)
                    {
                        XmlElement areaCode = xml.CreateElement("areaCode");
                        areaCode.InnerXml=str;
                        areaRoot.AppendChild(areaCode);
                    }
                    Codes.AppendChild(areaRoot);
                    XmlNode pointRoot = xml.CreateElement("pointRoot");
                    foreach (var str in pointCodes)
                    {
                        XmlElement pointCode = xml.CreateElement("pointCode");
                        pointCode.InnerXml=str;
                        pointRoot.AppendChild(pointCode);
                    }
                    Codes.AppendChild(pointRoot);
                    xml.Save(path);
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
    
            }
    

    缩放模式

    读写excel,调用com,读写比较慢

    1. Full:让图片放弃原来的比例,直接按照目标数据进行拉伸
    2. Zoom:让图片保持原有比例,并且保证原始图片在目标图片的正中央,没有图片的位置保留米白色
    3. Original:让图片保持原来的大小,输出图片类似于裁剪中间位置某个范围的图片
    4. Overflow:让图片保持原来的比例,并且保证输目标是被图片填满的不留空白

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    调用的范例

    using SDataTable = System.Data.DataTable;
    using Microsoft.Office.Interop.Excel;
    using System.Data;
    using System.Reflection;

    ImageHelper.GetInstance().ImageCompress(InputFile, Path.Combine(OutPutPath, item_file), new System.Drawing.Size(500, 300), ImageZoomType.Full, 50);

     public class CExcel
        {
    
            private string filepath = "";
            private Microsoft.Office.Interop.Excel.Application excel;
            private Workbook workbook = null;
            public CExcel()
            {
                excel = new Application();
                excel.Visible = false;
                excel.DisplayAlerts = false;
            }
           /// <summary>
           /// 打开Excel文件 
           /// </summary>
           /// <param name="filename">文件名</param>
            public void OpenExcel(string filename)
            {
                workbook = excel.Application.Workbooks.Open(filename);
            }
            /// <summary>
            /// 获取一个sheet
            /// </summary>
            /// <param name="index">sheet索引</param>
            /// <param name="sheetname">sheet名,默认为空,为空以第一个参数为准,否则以名为准</param>
            /// <returns>返回worksheet对象</returns>
            public Worksheet GetSheet(int index,string sheetname=null)
            {
                if (workbook == null) return null;
                var sheet = workbook.Worksheets.get_Item(index);
                if (sheetname == null) return sheet;
                foreach (var sh in workbook.Worksheets)
                {
                    sheet = sh as Worksheet;
                    if (sheet.Name == sheetname) break;
                }
                return sheet;
    
            }
            /// <summary>
            /// 关闭workbook
            /// </summary>
            public void Closeworkbook()
            {
                if (workbook != null) workbook.Close();
            }
            /// <summary>
            /// 释放excel对象
            /// </summary>
            public void Dispose()
            {
                excel.Quit();
            }
            /// <summary>
            /// 读取一个sheet内容
            /// </summary>
            /// <param name="psheet"></param>
            /// <param name="index"></param>
            /// <returns></returns>
            public SDataTable GetTableFromSheet(Worksheet psheet, int index = 0)
            {
                int rowcount = psheet.UsedRange.Cells.Rows.Count;
                int colcount = psheet.UsedRange.Columns.Count;
                Range range;
                SDataTable dt = new SDataTable();
                dt.TableName = psheet.Parent.Name + psheet.Name;
                DataColumn dc;
                int ColumnID = 1;
                int col = 0;
                while (col <= colcount)
                {
                    dc = new DataColumn();
                    dc.DataType = typeof(string);
                    dc.ColumnName = col.ToString();
                    dt.Columns.Add(dc);
                    col++;
                }
                for (int iRow = 1; iRow <= rowcount; iRow++)
                {
                    var dr = dt.NewRow();
                    for (int iCol = 1; iCol <= colcount; iCol++)
                    {
                        range = psheet.Cells[iRow, iCol] as Range;
                        string content = "";
                        if (range.Value != null)
                        {
                            content = range.Value.ToString();
                        }
                        dr[iCol - 1] = content;
                    }
                    dt.Rows.Add(dr);
                }
                return dt;
    
            }
            /// <summary>
            /// 导出excel
            /// </summary>
            /// <param name="table"></param>
            /// <param name="filename"></param>
            public void Datatabletoexcel(string filename, params SDataTable[] tables)
            {
                excel.DefaultFilePath = "";
                excel.DisplayAlerts = true;
                excel.SheetsInNewWorkbook = 1;
                var book = excel.Workbooks.Add(true);
                foreach (var table in tables)
                {
                    var result = book.Worksheets.Add();
                    var sheet=book.ActiveSheet;
                    sheet.Name = table.TableName;
                    int rownum = table.Rows.Count;
                    int colnum = table.Columns.Count;
                    int rowindex = 1;
                    int columnindex = 0;
                    int row = 0;
                    int col = 0;
                    for (int i = 0; i < rownum; i++)
                    {
                        col = 0;
                        for (int j = 0; j < colnum; j++)
                        {
                            sheet.Cells[row + 1, col + 1] = table.Rows[i][j] == null ? "" : table.Rows[i][j].ToString();
                            col++;
                        }
                        row++;
                    }
                    #region//合并单元格
                    //Range rangeLecture = sheet.Range[sheet.Cells[1, 1], sheet.Cells[2, 1]];//左上和右下
                    //rangeLecture.MergeCells = true;
    
                    #endregion
                }
                excel.DisplayAlerts = false;
                book.SaveAs(filename);
                book.Close();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
                book = null;
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            /// <summary>设置字体
            /// </summary>
            /// <param name="sheet"></param>
            void SetFont(Worksheet sheet)
            {
                excel.StandardFont = "宋体";
                excel.StandardFontSize = 9;
                //sheet.Range.AutoFit();//自适应
                //sheet.Range[sheet.Cells[1, 1], sheet.Cells[4, 27]].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;//居中对齐
                //sheet.Range[sheet.Cells[1, 1], sheet.Cells[rowindex, 27]].Borders.LineStyle = 1;//设置边框
    
            }
    
    
        }
    

    样品展示

    用NPOI 读写excel,速度比com快

    原始图片

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using NPOI.HSSF;
    using NPOI.HSSF.UserModel;
    using System.IO;
    using NPOI.SS.UserModel;
    using System.Data;

    图片 1

    public class NExcel
        {
           private HSSFWorkbook hssfworkbook;
           private string filepath;
    
           public void Open(string file)
           {
                using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))  
                {  
                    hssfworkbook = new HSSFWorkbook(fs);  
                } 
           }
           /// <summary>
           /// 获取sheet
           /// </summary>
           /// <param name="index"></param>
           /// <param name="sheetname"></param>
           /// <returns></returns>
           public ISheet getSheet(int index,string sheetname=null)
           {
               if(hssfworkbook==null)return null;
               ISheet sheet;
               if(sheetname==null)
               {
                     sheet =hssfworkbook.GetSheetAt(index);
               }else
               {
                   sheet=hssfworkbook.GetSheet(sheetname);
               }
               return sheet;
    
           }
           /// <summary>
           /// 读取excel文件
           /// </summary>
           /// <param name="sheet"></param>
           /// <returns></returns>
           public DataTable getData(ISheet sheet)
           {
                System.Collections.IEnumerator rows = sheet.GetRowEnumerator();  
                DataTable dt = new DataTable();  
                for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)  
                {  
                    dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());  
                }  
                while (rows.MoveNext())  
                {
                    if (rows.Current == null) continue ;
                    HSSFRow row = (HSSFRow)rows.Current;
                    DataRow dr = dt.NewRow();  
                    for (int i = 0; i < row.LastCellNum-1; i++)  
                    {
                        var cell = row.GetCell(i);
                        if (cell != null) cell.SetCellType(CellType.String);
                        dr[i] = cell == null ? null : cell.ToString();
    
                    }  
                    dt.Rows.Add(dr);  
                }  
                return dt;  
           }
    
           /// <summary>
           /// 写excel文件
           /// </summary>
           /// <param name="filePath"></param>
           /// <param name="dts"></param>
           public void WriteExcel( string filePath,params DataTable[] dts)
           {
               if (string.IsNullOrEmpty(filePath)) return;
               NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
               foreach (var dt in dts)
               {
                   if (null == dt && dt.Rows.Count==0)continue;
                    NPOI.SS.UserModel.ISheet sheet = book.CreateSheet(dt.TableName);
                    NPOI.SS.UserModel.IRow row = sheet.CreateRow(0);
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        row.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
                    }
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(i + 1);
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            row2.CreateCell(j).SetCellValue(Convert.ToString(dt.Rows[i][j]));
                        }
                    }
               }
               // 写入到客户端  
               using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
               {
                   book.Write(ms);
                   using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
                   {
                       byte[] data = ms.ToArray();
                       fs.Write(data, 0, data.Length);
                       fs.Flush();
                   }
                   book = null;
               }
           }
    
        }
    

    Full 300*500 

    读写word 调用com

    图片 2

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.Office.Interop.Word;
    using MSWord = Microsoft.Office.Interop.Word;

     

    public  class CSWord
        {
            private Application wordApp = null;
            private Document wordDoc = null;
            private string docPath = null;
            private object Nothing = System.Reflection.Missing.Value;
            public  CSWord(string path,bool isOpen)
            {
                try
                {
                     docPath = path;
                    Object Nothing = System.Reflection.Missing.Value;
                    //创建Word文档
                    if (isOpen)
                    {
                        wordApp = new MSWord.Application();
                        wordDoc = wordApp.Documents.Open(path);
                    }
                    else
                    {
                        wordApp = new MSWord.Application();
                        wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
                    }
                    wordApp.Visible = false;
                }
                catch {
                    throw new Exception("创建word对象失败");
                }
            }
    
    
            public void SetFont()
            {
                wordApp.Selection.Font.Bold = 0;
                wordApp.Selection.Font.Italic = 0;
                wordApp.Selection.Font.Subscript = 0;
    
    
            }
            public void SetFontName(string strType)
            {
                wordApp.Selection.Font.Name = strType;
    
            }
            public void SetFontSize(int nSize)
            {
                wordApp.Selection.Font.Size = nSize;
            }
            public void SetAlignment(WdParagraphAlignment align)
            {
                wordApp.Selection.ParagraphFormat.Alignment = align;
            }
            public void GoToTheEnd()
            {
                object unit;
                unit = Microsoft.Office.Interop.Word.WdUnits.wdStory;
                wordApp.Selection.EndKey(ref   unit, ref   Nothing);
    
            }
            public void GoToTheBeginning()
            {
                object unit;
                unit = Microsoft.Office.Interop.Word.WdUnits.wdStory;
                wordApp.Selection.HomeKey(ref   unit, ref   Nothing);
    
            }
    
            /// <summary>
            /// 添加文字
            /// </summary>
            /// <param name="txtContent"></param>
            /// <param name="Bold"></param>
            /// <param name="size"></param>
            public void AddText(string txtContent,int Bold=0,int size=14)
            {
                //wordApp.Selection.Font.Spacing = 10;//字符间隔
    
                wordApp.Selection.Font.Bold = Bold;
                wordApp.Selection.Font.Size = size;
                wordApp.Selection.TypeText(txtContent);    
                wordApp.Selection.TypeParagraph();
            }
            /// <summary>
            /// 添加图片
            /// </summary>
            /// <param name="filepath"></param>
            public void AddPic(string filepath)
            {
                object range = wordDoc.Paragraphs.Last.Range;
                //定义该图片是否为外s部链接
                object linkToFile = false;//默认
                //定义插入的图片是否随word一起保存
                object saveWithDocument = true;
                //向word中写入图片
                wordDoc.InlineShapes.AddPicture(filepath, ref Nothing, ref Nothing, ref Nothing);
    
                object unite = Microsoft.Office.Interop.Word.WdUnits.wdStory;
                wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;//居中显示图片
                //wordDoc.InlineShapes[1].Height = 130;
                //wordDoc.InlineShapes[1].Width = 200;
                wordDoc.Content.InsertAfter("n");
                wordApp.Selection.EndKey(ref unite, ref Nothing);
                wordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
                wordApp.Selection.Font.Size = 10;//字体大小
                wordApp.Selection.TypeText("图1 测试图片n");
    
            }
            /// <summary>
            /// 添加表
            /// </summary>
            public void AddTable()
            {
    
                int tableRow = 6;
                int tableColumn = 6;
                //定义一个word中的表格对象
                MSWord.Table table = wordDoc.Tables.Add(wordApp.Selection.Range, tableRow, tableColumn, ref Nothing, ref Nothing);
                wordDoc.Tables[1].Cell(1, 1).Range.Text = "列n行";
                for (int i = 1; i < tableRow; i++)
                {
                    for (int j = 1; j < tableColumn; j++)
                    {
                        if (i == 1)
                        {
                            table.Cell(i, j + 1).Range.Text = "Column " + j;
                        }
                        if (j == 1)
                        {
                            table.Cell(i + 1, j).Range.Text = "Row " + i;
                        }
                        table.Cell(i + 1, j + 1).Range.Text = i + "行 " + j + "列";
                    }
                }
    
    
                //添加行
                table.Rows.Add(ref Nothing);
                table.Rows[tableRow + 1].Height = 45;
                //向新添加的行的单元格中添加图片
                //string FileName = "d:\kk.jpg";//图片所在路径
                object LinkToFile = false;
                object SaveWithDocument = true;
                object Anchor = table.Cell(tableRow + 1, tableColumn).Range;//选中要添加图片的单元格
                //wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
                //wordDoc.Application.ActiveDocument.InlineShapes[1].Width = 75;//图片宽度
                //wordDoc.Application.ActiveDocument.InlineShapes[1].Height = 45;//图片高度
                // 将图片设置为四周环绕型
                //MSWord.Shape s = wordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
                //s.WrapFormat.Type = MSWord.WdWrapType.wdWrapSquare;
                //设置table样式
                table.Rows.HeightRule = MSWord.WdRowHeightRule.wdRowHeightAtLeast;
                table.Rows.Height = wordApp.CentimetersToPoints(float.Parse("0.8"));
    
                table.Range.Font.Size = 10.5F;
                table.Range.Font.Bold = 0;
    
                table.Range.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;
                table.Range.Cells.VerticalAlignment = MSWord.WdCellVerticalAlignment.wdCellAlignVerticalBottom;
                //设置table边框样式
                table.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleDouble;
                table.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle;
    
                table.Rows[1].Range.Font.Bold = 1;
                table.Rows[1].Range.Font.Size = 12F;
                table.Cell(1, 1).Range.Font.Size = 10.5F;
                wordApp.Selection.Cells.Height = 40;//所有单元格的高度
                for (int i = 2; i <= tableRow; i++)
                {
                    table.Rows[i].Height = 20;
                }
                table.Cell(1, 1).Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
                table.Cell(1, 1).Range.Paragraphs[2].Format.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
    
                table.Columns[1].Width = 50;
                for (int i = 2; i <= tableColumn; i++)
                {
                    table.Columns[i].Width = 75;
                }
    
    
                //添加表头斜线,并设置表头的样式
                table.Cell(1, 1).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Visible = true;
                table.Cell(1, 1).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Color = Microsoft.Office.Interop.Word.WdColor.wdColorGray60;
                table.Cell(1, 1).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].LineWidth = Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
    
                //表格边框
                //表格内容行边框
                SetTableBorderStyle(table, MSWord.WdBorderType.wdBorderHorizontal, MSWord.WdColor.wdColorGray20, MSWord.WdLineWidth.wdLineWidth025pt);
                //表格内容列边框
                SetTableBorderStyle(table, MSWord.WdBorderType.wdBorderVertical, MSWord.WdColor.wdColorGray20, MSWord.WdLineWidth.wdLineWidth025pt);
                SetTableBorderStyle(table, MSWord.WdBorderType.wdBorderLeft, MSWord.WdColor.wdColorGray50, MSWord.WdLineWidth.wdLineWidth050pt);
                SetTableBorderStyle(table, MSWord.WdBorderType.wdBorderRight, MSWord.WdColor.wdColorGray50, MSWord.WdLineWidth.wdLineWidth050pt);
                SetTableBorderStyle(table, MSWord.WdBorderType.wdBorderTop, MSWord.WdColor.wdColorGray50, MSWord.WdLineWidth.wdLineWidth050pt);
                SetTableBorderStyle(table, MSWord.WdBorderType.wdBorderBottom, MSWord.WdColor.wdColorGray50, MSWord.WdLineWidth.wdLineWidth050pt);
                //合并单元格
                table.Cell(4, 4).Merge(table.Cell(4, 5));//横向合并
                table.Cell(2, 3).Merge(table.Cell(4, 3));//纵向合并
    
            }
            public void OpenModel(string modelPath)
            {
                object ModelName = modelPath;
                wordDoc = wordApp.Documents.Open(ref ModelName);//打开word模板
                //下面操作模板。。。。
    
            }
    
            private void SetTableBorderStyle(Table table1,MSWord.WdBorderType bdType,MSWord.WdColor color,MSWord.WdLineWidth width)
            {
                table1.Borders[bdType].Visible = true;
                table1.Borders[bdType].Color = color;
                table1.Borders[bdType].LineWidth = width;
            }
           /// <summary>
           /// 保存
           /// </summary>
           /// <returns></returns>
            public bool Save()
            {
                try
                {
                    object path = docPath;
                    object format = MSWord.WdSaveFormat.wdFormatDocument;
    
                    wordDoc.SaveAs(ref path, ref format);
                    wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
                    wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
           /// <summary>
           /// 替换
           /// </summary>
           /// <param name="strOldText"></param>
           /// <param name="strNewText"></param>
            public void Replace(string strOldText, string strNewText)
            {
    
                this.wordApp.Selection.Find.ClearFormatting();//移除Find的搜索文本和段落格式设置  
                wordApp.Selection.Find.Text = strOldText;//需要查找的字符
                if (wordApp.Selection.Find.Execute())//查找字符
                {
                    wordApp.Selection.TypeText(strNewText);//在找到的字符区域写数据
                }
    
    
            }
    
            /// <summary>  
            ///查找字符 
            /// </summary>  
            /// <returns></returns>  
            public bool  FindStr(string str)
            {
                Find find = wordApp.Selection.Find;
                Object findText;
                Object matchCase = Type.Missing;
                Object matchWholeWord = Type.Missing;
                Object matchWildcards = Type.Missing;
                Object matchSoundsLike = Type.Missing;
                Object matchAllWordForms = Type.Missing;
                Object forward = true;
                Object wrap = WdFindWrap.wdFindStop;
                Object format = Type.Missing;
                Object replaceWith = Type.Missing;
                Object replace = Type.Missing;
                Object matchKashida = Type.Missing;
                Object matchDiacritics = Type.Missing;
                Object matchAlefHamza = Type.Missing;
                Object matchControl = Type.Missing;
    
                if ((str == "") || (str == string.Empty))
                    findText = find.Text;
                else
                    findText = str;
                find.ClearFormatting();
                return find.Execute(ref findText, ref matchCase, ref matchWholeWord,
                    ref matchWildcards, ref matchSoundsLike, ref matchAllWordForms,
                    ref forward, ref wrap, ref format, ref replaceWith, ref replace,
                    ref matchKashida, ref matchDiacritics, ref matchAlefHamza,
                    ref matchControl);  
            }  
    
            /// <summary>  
            /// 保存成HTML  
            /// </summary>  
            /// <param name="strFileName"></param>  
            public void SaveAsHtml(string strFileName)
            {
                Type wordType = wordApp.GetType();
                object missing = System.Reflection.Missing.Value;
                object fileName = strFileName;
                object Format = (int)Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
                wordDoc.SaveAs(ref   fileName, ref   Format, ref   missing, ref   missing, ref   missing, ref   missing, ref   missing,
                        ref   missing, ref   missing, ref   missing, ref   missing, ref   missing, ref   missing, ref   missing, ref   missing, ref   missing);
    
    
            }
    
            public void Dispose()
            {
                if (wordDoc != null)
                {
                    wordDoc.Close();
                }
                if (wordApp != null)
                {
                    wordApp.Quit();
                }
            }
    
            private void test()
            {
                Paragraphs pgs = wordApp.Selection.Paragraphs;
                foreach (Paragraph pg in pgs)
                {
                    Console.WriteLine(pg.Range.Text);
                }
            }
        }
    

    Full 500 * 300

    本文由金沙国际官网发布于编程,转载请注明出处:图片缩放的相关处理

    关键词:

上一篇:没有了

下一篇:没有了