前几天利用python生成了标准命名的的svg格式的条形码,第一张条码命名为“1.svg”,第二张条码命名为“2.svg”,依此类推。之所以需要标准命名,是为了尝试根据文件名,利用一个循环程序让coreldraw逐个导入svg文件,并自动对导入的svg进行解散群组,缩放尺寸,指定位置等操作,并在打印后删除,继续下一次循环。
coreldraw提供了程序录制的功能,录制了一个完整的操作步骤,自己添加了一个循环语句,汇总后的程序如下:
Sub importSvg()
Dim impflt As ImportFilter
Dim impopt As StructImportOptions
Set impopt = New StructImportOptions
Dim s1 As Shape
Dim grp1, grp2 As ShapeRange
impopt.MaintainLayers = True
For i = 1 To 4 Step 2
Set impflt = ActiveLayer.ImportEx("E:\autoimportsvg\" & i & ".svg", cdrSVG, impopt)
impflt.Finish
Set s1 = ActiveShape
s1.Move 4.384236, 1.865732
Set grp1 = s1.UngroupEx
ActiveDocument.ReferencePoint = cdrCenter
grp1.SetSize 2.607394, 0.826772
grp1.SetPosition 6.181102, 8.311024
Set impflt = ActiveLayer.ImportEx("E:\autoimportsvg\" & i + 1 & ".svg", cdrSVG, impopt)
impflt.Finish
Set s1 = ActiveShape
Set grp2 = s1.UngroupEx
ActiveDocument.ReferencePoint = cdrCenter
grp2.SetSize 2.607394, 0.826772
grp2.SetPosition 6.181102, 2.464566
ActiveDocument.PrintOut
grp1.Delete
grp2.Delete
Next i
End Sub
博主将cdr与svg文件放在了e盘的autoimport文件夹内,如果需要放置到不同文件夹,需要修改程序:
Set impflt = ActiveLayer.ImportEx("E:\autoimportsvg\" & i + 1 & ".svg", cdrSVG, impopt)
将上方这条语句中的"E:autoimportsvg"修改为自己的文件夹地址即可。
测试用文件下载
这里提供了网盘文件,有需要的亲可以将文件夹解压至E盘根目录下。测试前需要正确连接打印机,不然无法看到打印的效果。