首页>工作相关>coreldraw自动排版序列号与边框

coreldraw自动排版序列号与边框

写上一篇博文的时候才真正明白vba中的“moveto”与“activate”的去别,前者是改变当前选择页面的页码,而后者才是将指定页面设置为正在编辑的状态,当页面处于编辑状态时,我们所做的粘贴或生成元素的操作,才会对该页面生效。假设当前页面是第一页,想在第二页生成某个元素,则需要先激活第二页,语句如下:

ActiveDocument.Pages(2).Activate

某个客户经常需要打印一些序列号,格式如下,一直是用excel来制作,拖拽几下就摆弄好了,然后纵向每两个格子加一个边框,方便负责粘贴的工作人员裁剪。excel中的边框只能设置线型,而不能设置边框的长度,所以遇到裁切不准确的,在不干胶的某条边上往往会有一条明显的黑色线条。

coreldraw_automatic_sn_and_border_p1

无奈只能考虑改用coreldraw,先根据序列号的数量向上取整生成足够的页面,同时放置好出血线,然后返回第一页,依次生成序列号与“item no”。每一页放置了10个序列号,超过10个就翻至下一页继续生成,coreldraw的生成速度相对较慢,但是因为可以任意调整线宽与长度,所以裁切出来的贴纸相对更为干净一些。

coreldraw_automatic_sn_and_border_p2

完整程序

之前一直误以为用moveto来翻页,最终所有的序列号都生成在同一页面上,百思不得其解。还是基础太差的原因,偶尔在写上一篇博文时因一个错误的执行发现了这个问题,于是修改了一下这个残缺的自动排版程序,目前已可以达到预期的效果:

Sub serialNo()
    startNo = 2303101
    endNo = 2303110
    itemNo = "ITEM NO.XXX"
    countNo = 0
    TextX = 25
    TextY = 268
    pageNo = -Int(-(endNo - startNo) / 10)
    nextPage = 2
    For h = 1 To pageNo
        For i = 15 To 185 Step 85
            For j = 280 To 20 Step -26
                drawLine i, j
            Next j
        Next i
        If h < pageNo Then
            Set p1 = ActiveDocument.InsertPagesEx(1, False, ActivePage.Index, 8.267717, 11.692913)
        End If
    Next h
    ActiveDocument.Pages(1).Activate
    For k = startNo To endNo
        Set s1 = ActivePage.ActiveLayer.CreateArtisticText(TextX / 25.4, TextY / 25.4, k, , , "arial", 26)
        Set s2 = ActivePage.ActiveLayer.CreateArtisticText((TextX + 85) / 25.4, TextY / 25.4, k, , , "arial", 26)
        Set s3 = ActivePage.ActiveLayer.CreateArtisticText(TextX / 25.4, (TextY - 11) / 25.4, itemNo, , , "arial", 24)
        Set s4 = ActivePage.ActiveLayer.CreateArtisticText((TextX + 85) / 25.4, (TextY - 11) / 25.4, itemNo, , , "arial", 24)
        countNo = countNo + 1
        TextY = TextY - 26
        If countNo Mod 10 = 0 And k < endNo Then
            ActiveDocument.Pages(nextPage).Activate
            nextPage = nextPage + 1
            TextY = 268
        End If
    Next k
End Sub

Function drawLine(x, y)
    Dim mylines As Shape
    StartX = x
    StartY = y
    Set mylines = ActiveLayer.CreateLineSegment(StartX / 25.4, StartY / 25.4, (StartX + 10) / 25.4, StartY / 25.4)
    mylines.Outline.SetProperties 0.01, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), False, False, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, , , 5#
    Set mylines = ActiveLayer.CreateLineSegment((StartX + 5) / 25.4, (StartY - 5) / 25.4, (StartX + 5) / 25.4, (StartY + 5) / 25.4)
    mylines.Outline.SetProperties 0.01, OutlineStyles(0), CreateCMYKColor(0, 0, 0, 100), ArrowHeads(0), ArrowHeads(0), False, False, cdrOutlineButtLineCaps, cdrOutlineMiterLineJoin, 0#, 100, , , 5#
End Function

文件链接

coreldraw自动序列号边框

标签: office

移动端可扫我直达哦~

推荐阅读

office 2024-10-08

WIN7系统如何共享WIN10的打印机

迫于农行网银升级的压力,给单位的财务电脑升级到了win10,重装后考虑到可能需要打印机共享,所以提前设置了相同的工作组,以便同工作组内的设备相互识别,当然装完系统后也设置好了打印机共享。但是同办公室的win7倒也是识别到了同组中的wi...

工作相关 office

office 2024-07-26

如何将证件照的蓝底修改为白底

想给孩子报名参加csp-j入门组的比赛,体验一下比赛的流程与难度,报名需要提交一张白底的照片,但手头上的照片是蓝色背景的。用ps的魔棒工具直接选取之后,衣服部分的效果尚可,但发丝部位还是有蓝色残留,效果比较粗糙。有过ps的使用经验(但...

工作相关 office

office 2024-04-17

iphone用相机提取照片中的文字

随着手机像素越来越高,平时拍个产品照片,发货唛头什么的绰绰有余,所以自从单位的拍照用的数码相机损坏之后,也没有考虑再次购入,直接用手机操作一下就好。手机集成的功能越来越多,无形中挤掉了很多旧有单一功能电子产品的市场。博主之前一直用的i...

工作相关 office

office 2024-04-02

Coreldraw报错“向程序发送命令时出现问题”

想尝试创建一个使用于全局的宏命令,以实现一个跨文件的小功能,但发现在全局模块内插入时无法保存gms文件,在当前文件内的模块则可以正常保存。既然有保存按钮,按理不应该出现这种情况,考虑到Coreldraw程序被博主安装到了c盘,而c盘文...

工作相关 office

office 2024-03-29

Coreldraw中无法直接粘贴QQ截图

工作多更多的使用台式机,办公需要联络的合作伙伴也都加了QQ,所以一般也都以QQ相互联系。一方面QQ该有的功能都有满足需求,另一方面也能更好的区分公私环境。记得早先Coreldraw是可以直接粘贴QQ截图的,但架不住QQ隔三岔五的更新,...

工作相关 office

office 2023-12-26

硬盘空间不足导致pdf文件打印空白一例

同事的电脑安装的win7,c盘分的比较小---60个g,公司的电脑,办公用的,安装了许多办公软件开票软件之类,重装涉及一堆操作,所以也一直没有去改它,日积月累的,很快60个g就快满了。某天同事找博主,说pdf格式的文件无法打印,于是过...

工作相关 office

office 2023-12-21

多页面PDF文件导入CorelDRAW时出现IO读错误

合作的客户有时候会要求在产品上粘贴订制的标签,标签上包含序列号,客户有时候订制几十个产品,就发过来几十页的pdf文件,每一页一出二,粘贴在箱子的两侧。为了实现这类pdf文件的打印,博主尝试写了一段小程序,首先依次导入页面,然后挨个打印...

工作相关 office

office 2023-12-12

word自动打印编号时如何跳过指定序列号

上班摸鱼小技巧重复的工作做得多了,难免会想要偷个小懒,利用编程的方式来自动化一些工作流程,从而可以忙里偷闲,在自动化工作期间泡一杯茶,看一眼微信未读信息。于是写了这样一段代码,来实现word的自动化打印:Dim posY As Dou...

工作相关 office

office 2023-09-19

电脑端QQ如何恢复聊天记录

个人电脑上的聊天记录有一波没一波的,大多是插科打诨。所以装了很多台电脑,基本没人提出,也没考虑过去恢复一下QQ的聊天记录。但工作用的电脑就不一样了,很多客户有文件往来,有些订单确认沟通的的过程也是在QQ上完成的。安装QQ的时候会让用户...

工作相关 office

office 2023-09-18

WIN7如何显示并修改已知文件的扩展名

新安装的系统,默认一般都是隐藏已知文件的扩展名的,在实际使用中,特别是工作中,经常需要查看并修改文件的后缀,这个时候就需要修改电脑的设置,让计算机自动显示文件的扩展名。首先双击桌面上的计算机图标,进入磁盘文件管理界面;单击左上角的组织...

工作相关 office