private void MakeNewPlate(ShapeRange sr_origin, string[] data, double x, double y) { string key = data[2]; //clone to the grid corel.Shape sh_plate = sr_origin.Shapes.FindShape("plate"); corel.Shape sh_pn_orign = sr_origin.Shapes.FindShape("H_第1列"); corel.ShapeRange sr_new = sr_origin.Clone(); sr_new.SetPosition(x, y); //replace things corel.Shape sh_pn = sr_new.Shapes.FindShape("H_第1列"); corel.Text platenum_1 = sr_new.Shapes.FindShape("H_第2列").Text; corel.Shape sh_qrLB = sr_new.Shapes.FindShape("qrLB"); corel.Shape sh_qrRT = sr_new.Shapes.FindShape("qrRT"); sh_pn.Text.Story.Text = data[0]; sh_pn.SetSize(sh_pn_orign.SizeWidth, sh_pn_orign.SizeHeight);//resize the font if (dict_qrPath.ContainsKey(key)) { myQrcode("a", sh_qrLB, dict_qrPath[key][0]); myQrcode("a", sh_qrRT, dict_qrPath[key][1]); } if (!data[1].Contains("号")) { platenum_1.Story.Text = data[1]; } else { string[] num = data[1].Split('号'); corel.Shape platenum_2 = sr_new.Shapes.FindShape("H_第3列"); platenum_1.Story.Text = num[0]; //platenum_1.SetSize(sh_num1_orign.SizeWidth, sh_num1_orign.SizeHeight);//resize the font platenum_2.Text.Story.Text = "号" + num[1]; //platenum_2.SetSize(sh_num2_orign.SizeWidth, sh_num2_orign.SizeHeight);//resize the font } }
//generate a lot of plates private void button1_Click(object sender, EventArgs e) { myOptimize(true, true); corel.Shapes shapes = corelApp.ActiveSelection.Shapes; //get selected shapes corel.Shape plate = shapes.FindShape("plate"); corel.ShapeRange shapeRange = shapes.All(); // used for clone MessageBox.Show(shapeRange.Count.ToString()); double dx = plate.RightX - plate.LeftX; double dy = plate.TopY - plate.BottomY; int count = 1; for (int x = 1; x < 3; x++) { for (int y = 1; y < 3; y++) { string[] data = (string[])datas[count]; corel.ShapeRange sr = shapeRange.Clone(x * dx, y * dy); corel.Shapes shs = sr.Shapes; corel.Text sh_platename = shs.FindShape("H_第1列").Text; corel.Text sh_platenum = shs.FindShape("H_第2列").Text; if (sh_platename.IsArtisticText) { //sh_platename.Replace("大氹村前街十二巷", "我卢本伟没有开挂", false, ReplaceAll: true); sh_platename.Story.Text = data[0]; } if (sh_platenum.IsArtisticText) { //String num = count.ToString(); //sh_platenum.Replace("1", num, false, ReplaceAll: true); sh_platenum.Story.Text = data[1]; } count++; } } myOptimize(true, false); }