Exemple #1
0
        private void CreateTableOnPdfFile_3()
        {
            //create filename of pdf_file_tosave
            var word_file_tosave = @"d:\1.docx";

            //new pdf doc
            var word_doc = new Aspose.Words.Document();
            var table1   = new Aspose.Words.Tables.Table(word_doc);
            var row1     = new Aspose.Words.Tables.Row(word_doc);
            var cell1    = new Aspose.Words.Tables.Cell(word_doc);

            //var para1 = new Aspose.Words.Paragraph(word_doc);
            cell1.AppendChild(new Aspose.Words.Paragraph(word_doc));
            cell1.FirstParagraph.AppendChild(new Aspose.Words.Run(word_doc, "1223333"));
            row1.AppendChild(cell1);
            table1.AppendChild(row1);
            word_doc.FirstSection.Body.AppendChild(table1);

            //save
            try
            {
                word_doc.Save(word_file_tosave, Aspose.Words.SaveFormat.Docx);
                MessageBox.Show("Save Successfully!");
                //pdfDoc.Dispose();
                Process.Start(word_file_tosave);
            }
            catch
            {
                MessageBox.Show("Faild to Save!");
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            this.filePath.Text = "F:\\eee\\Test.docx";
            //载入模板
            var doc = new Document(this.filePath.Text);

            //基本属性
            DocumentBuilder builder = new DocumentBuilder(doc);

            builder.MoveToMergeField("txt1");
            builder.Write("被我写入了值11!");
            builder.MoveToMergeField("txt2");
            builder.Write("被我写入了值22!");

            //写表格
            NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true);

            Aspose.Words.Tables.Table wordTable;
            //获取第一张表
            wordTable = allTables[0] as Aspose.Words.Tables.Table;
            //获取表头
            int index = 0;

            Aspose.Words.Tables.Row rowTen = wordTable.Rows[index];

            DataTable dt = GetDataTable();

            //添加数据
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //复制表头的那行样式和数据等过来。如果你单独插入一行,你自己试试吧会有惊喜的
                Aspose.Words.Tables.Row row = (Aspose.Words.Tables.Row)rowTen.Clone(true);
                //因为复制的是表头,所以里面的数据是需要我们根据实际数据替换掉的。更改序号
                Aspose.Words.Tables.Cell cell = row.Cells[0];
                Aspose.Words.Paragraph   p    = new Paragraph(doc);
                p.AppendChild(new Run(doc, (i + 1).ToString()));
                cell.FirstParagraph.Remove();//移除之前的数据
                cell.AppendChild(p);
                //更改为需要填充的数据=XXX
                string str1 = dt.Rows[i]["XXX"].ToString();
                cell = row.Cells[1];
                p    = new Paragraph(doc);
                p.AppendChild(new Run(doc, str1));
                cell.FirstParagraph.Remove();
                cell.AppendChild(p);

                //添加一行数据
                wordTable.Rows.Add(row);
            }


            //写图片



            //保存
            doc.Save("F:\\eee\\WriteDoc.docx");
        }
Exemple #3
0
        public AsposeDocCell(Aspose.Words.Tables.Cell cell)
        {
            if (cell == null)
            {
                return;
            }

            String cellText = cell.ToString(Aspose.Words.SaveFormat.Text).Trim();

            Text = cellText;

            IsEmpty = String.IsNullOrEmpty(Text);
        }
Exemple #4
0
        public override List <Cell> GetCells(int row, int maxColEnd = -1)
        {
            int         index      = 0;
            List <Cell> result     = new List <Cell>();
            IEnumerator enumerator = table.Rows[row].GetEnumerator();
            int         range_end  = -1;

            while (enumerator.MoveNext())
            {
                Aspose.Words.Tables.Cell cell = (Aspose.Words.Tables.Cell)enumerator.Current;
                if (index < range_end)
                {
                    index++;
                    continue;
                }

                result.Add(new AsposeDocCell(cell));

                index++;
            }
            return(result);
        }
Exemple #5
0
        public static string Process(DocOptions options)
        {
            string result = "";

            try
            {
                var       config   = ConfigHelpers.GetDefaultConfig(options.Config);
                IDatabase database = new Database(config, LogHelpers.LogStatic, option => {
                    //option.CodeGenProjectName = projectName;
                    //option.CodeGenNameSpace = nameSpace;
                    //option.CodeGenTableFilter = tablePrefixFilter;
                    //option.AutoMigrateOnContainTable = onlyTable;
                });


                string type = options.Type;

                var projectConfig = DbLoader.ConvertDatabaseConfigToProjectConfig(database);
                LogHelpers.LogStatic(projectConfig.ToString());

                string msg    = "";
                var    tables = DbLoader.GetTableInfos(database, projectConfig, null, null, out msg);
                LogHelpers.LogStatic(msg);


                string        docName        = projectConfig.DatabaseName;
                OutputContext _OutputContext = new OutputContext();
                _OutputContext.Tables = tables;
                // context.Mappers = mapperDict;
                _OutputContext.ProjectConfig = projectConfig;
                //context.ParserConfig = _parseConfig;
                string FileName           = docName + "数据库设计文档." + type;
                string RealOutputFileName = System.IO.Path.Combine(DbLoader.GetProjectDirectory(projectConfig), FileName);

                if (type == "html")
                {
                    string templatePath = DbLoader.MapPath("~/DocGen/dicthtml.cshtml");
                    if (System.IO.File.Exists(templatePath))
                    {
                        string tempalteContent = FileHelper.ReadFile(templatePath);
                        string key             = "exportdicthtml";

                        var templateEngine = DbLoader.CreateTemplateEngine();
                        var generateResult = templateEngine.Parse <OutputContext>(tempalteContent, key, _OutputContext);

                        string content = generateResult;
                        templateEngine.OutputResult(RealOutputFileName, content);
                        //return File(RealOutputFileName, "application/zip-x-compressed", FileName);
                    }
                }
                else
                {
                    //Other types
                    string tmppath = DbLoader.MapPath("~/DocGen/dict.dot");                    // System.IO.Path.Combine(path, "Template", "template.dot");
                    Aspose.Words.Document        doc     = new Aspose.Words.Document(tmppath); //载入模板
                    Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);


                    string dbName = docName;
                    if (string.IsNullOrEmpty(dbName))
                    {
                        dbName = _OutputContext.ProjectConfig.Name;
                    }
                    doc.Range.Replace("{$.DBName}", dbName, false, false);

                    Aspose.Words.Tables.Table tabletemp  = (Aspose.Words.Tables.Table)doc.GetChild(Aspose.Words.NodeType.Table, 0, true);
                    Aspose.Words.Tables.Table tableClone = (Aspose.Words.Tables.Table)tabletemp.Clone(true);

                    for (int k = 0; k < _OutputContext.Tables.Count; k++)
                    {
                        Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)doc.GetChild(Aspose.Words.NodeType.Table, k, true);

                        var tb = _OutputContext.Tables[k];

                        //添加表头标题
                        var par = table.ParentNode.InsertBefore(new Aspose.Words.Paragraph(doc), table);
                        builder.MoveTo(par);
                        builder.ParagraphFormat.StyleIdentifier = Aspose.Words.StyleIdentifier.Heading1;
                        builder.Font.Size = 11;
                        builder.Write(tb.Comment + "(" + tb.Name + ")");


                        Aspose.Words.Tables.Cell cellh = table.FirstRow.Cells[1];
                        cellh.RemoveAllChildren();
                        builder.MoveToCell(k, 0, 1, 0);
                        builder.Write(tb.Name);
                        Aspose.Words.Tables.Cell cellh3 = table.FirstRow.Cells[3];
                        cellh3.RemoveAllChildren();
                        builder.MoveToCell(k, 0, 3, 0);
                        builder.Write(tb.Comment != null ? tb.Comment : "");


                        for (int i = 0; i < tb.Columns.Count; i++)
                        {
                            for (int j = 0; j < table.LastRow.Cells.Count; j++)
                            {
                                Aspose.Words.Tables.Cell cell = table.LastRow.Cells[j];
                                cell.RemoveAllChildren();
                                builder.MoveToCell(k, table.Rows.Count - 1, j, 0);
                                switch (j)
                                {
                                case 0:
                                    builder.Write(tb.Columns[i].Comment != null ? tb.Columns[i].Comment : "");
                                    break;

                                case 1:
                                    builder.Write(tb.Columns[i].Name);

                                    break;

                                case 2:
                                    builder.Write(tb.Columns[i].RawType);

                                    break;

                                case 3:
                                    builder.Write(tb.Columns[i].Length.ToString());

                                    break;

                                case 4:
                                    builder.Write(tb.Columns[i].Scale.ToString());

                                    break;

                                case 5:
                                    builder.Write(tb.Columns[i].IsPK ? "Y" : "");

                                    break;

                                case 6:
                                    builder.Write(tb.Columns[i].IsNullable ? "Y" : "");
                                    break;

                                case 7:
                                    builder.Write(tb.Columns[i].IsAutoIncrement ? "Y" : "");
                                    break;

                                case 8:
                                    builder.Write(tb.Columns[i].DefaultValue == null ? "" : tb.Columns[i].DefaultValue.ToString());

                                    break;

                                default:
                                    break;
                                }
                            }
                            if (i < tb.Columns.Count - 1)
                            {
                                Aspose.Words.Tables.Row clonedRow = (Aspose.Words.Tables.Row)table.LastRow.Clone(true);
                                table.AppendChild(clonedRow);
                            }
                        }
                        if (k < _OutputContext.Tables.Count - 1)
                        {
                            Aspose.Words.Tables.Table tbClone = (Aspose.Words.Tables.Table)tableClone.Clone(true);
                            table.ParentNode.InsertAfter(tbClone, table);
                        }
                    }


                    doc.UpdateFields();
                    doc.Range.Replace("{$.NowDateTime}", DateTime.Now.ToString(), false, false);
                    Aspose.Words.SaveFormat sformat = Aspose.Words.SaveFormat.Doc;
                    switch (type)
                    {
                    case "doc":
                        sformat = Aspose.Words.SaveFormat.Doc;
                        break;

                    case "docx":
                        sformat = Aspose.Words.SaveFormat.Docx;
                        break;

                    //case "html":
                    //    sformat = Aspose.Words.SaveFormat.Html;
                    //    break;
                    case "odt":
                        sformat = Aspose.Words.SaveFormat.Odt;
                        break;

                    case "pdf":
                        sformat = Aspose.Words.SaveFormat.Pdf;
                        break;

                    case "png":
                        sformat = Aspose.Words.SaveFormat.Png;
                        break;

                    case "tiff":
                        sformat = Aspose.Words.SaveFormat.Tiff;
                        break;

                    case "text":
                        sformat = Aspose.Words.SaveFormat.Text;
                        break;

                    case "epub":
                        sformat = Aspose.Words.SaveFormat.Epub;
                        break;

                    default:
                        break;
                    }
                    doc.Save(RealOutputFileName, sformat);

                    //return File(RealOutputFileName, "application/zip-x-compressed", FileName);
                }


                if (options.Zip)
                {
                    var    zipDir         = RealOutputFileName;
                    string zipedName      = docName + "-" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip";
                    string zipOutFileName = System.IO.Path.Combine(DbLoader.GetDataDirectory(), zipedName);
                    //ZipHelper.ZipDir(zipDir, zipOutFileName, 9);
                    //ZipHelper.ZipManyFilesOrDictorys(zipDir, zipOutFileName, "");
                    ZipHelper.ZipFile(zipDir, zipOutFileName);

                    RealOutputFileName = zipOutFileName;
                }

                LogHelpers.LogStatic("生成数据库字典成功:" + RealOutputFileName);
                ConfigHelpers.OpenDir(RealOutputFileName);
            }
            catch (Exception ex)
            {
                LogHelpers.LogStatic("DocGenerator 生成数据库字典出错!", ex, Pure.Data.MessageType.Error);
            }


            return(result);
        }
Exemple #6
0
        private void CreateCell(DocumentBuilder builder, List <ColumnInfo> _columList, bool IsSqlite)
        {
            for (int j = 0; j < _columList.Count; j++)
            {
                Aspose.Words.Tables.Cell _cell = null;
                _cell = builder.InsertCell();//主键的时候 添加背景色为黄色

                if (_columList[j].IsPK)
                {
                    _cell.CellFormat.Shading.BackgroundPatternColor = Color.Yellow;
                }
                else
                {
                    _cell.CellFormat.Shading.BackgroundPatternColor = Color.Transparent;
                }
                builder.Write((j + 1).ToString());       //SEQ
                builder.InsertCell();
                builder.Write(_columList[j].ColumnName); //ColumName
                builder.InsertCell();
                builder.Write(_columList[j].TypeName);   //Type
                builder.InsertCell();
                switch (_columList[j].TypeName.Trim().ToUpper())
                {
                case "NVARCHAR":
                case "NVARCHAR2":
                    if (IsSqlite)
                    {
                        builder.Write(_columList[j].Length.Trim());    //Length
                    }
                    else
                    {
                        builder.Write((Convert.ToInt32(_columList[j].Length.Trim()) / 2).ToString());    //Length
                    }
                    break;

                case "NUMBER":
                case "NUMERIC":
                    if ((string.IsNullOrEmpty(_columList[j].Preci.Trim())) && (string.IsNullOrEmpty(_columList[j].Scale.Trim())))
                    {
                        builder.Write("");
                    }
                    else if ((_columList[j].Preci.Trim() == "0") && (_columList[j].Scale.Trim() == "0"))
                    {
                        builder.Write("");
                    }
                    else
                    {
                        builder.Write("(" + (_columList[j].Preci + "," + _columList[j].Scale + ")"));
                    }
                    break;

                case "SMALLMONEY":
                case "BIGINT":
                case "SMALLINT":
                case "DATETIME":
                case "INT":
                case "TEXT":
                    builder.Write("");
                    break;

                default:
                    builder.Write((_columList[j].Length).ToString());
                    break;
                }

                builder.InsertCell();
                if (_columList[j].DefaultVal == null)
                {
                    builder.Write("");
                }
                else
                {
                    builder.Write(_columList[j].DefaultVal);
                }
                builder.InsertCell();
                if (_columList[j].cisNull)//NULL
                {
                    builder.Write("√");
                }
                else
                {
                    builder.Write("");
                }
                builder.InsertCell();
                if (_columList[j].DeText == null)
                {
                    builder.Write("");
                }
                else
                {
                    builder.Write(_columList[j].DeText);//DESCRIPTION
                }
                builder.InsertCell();
                builder.Write("");//REMARK
                builder.EndRow();
            }
            builder.InsertBreak(BreakType.LineBreak);
        }
        public override VisitorAction VisitCellEnd(Aspose.Words.Tables.Cell cell)
        {
            this.structureBuilder.AppendLine("</Cell>");

            return(VisitorAction.Continue);
        }
Exemple #8
0
 public override Cell GetCell(int row, int column)
 {
     Aspose.Words.Tables.Cell cell = table.Rows[row].Cells[column];
     return(new AsposeDocCell(cell));
 }