基于Python的科技期刊二维码生成/插入/校验一体化解决方案
2022-10-11牛欣悦祁丽娟
■牛欣悦 祁丽娟 方 梅
1)中国科学院软件研究所期刊联合编辑部《计算机系统应用》编辑部,北京市海淀区中关村南四街4号 100190 2)中国科学院软件研究所期刊联合编辑部《软件学报》编辑部,北京市海淀区中关村南四街4号 100190
二维码是用某种特定的几何图形按一定规律组织的、在二维方向上分布的、记录数据符号信息的图形[1],它可以在不依赖数据库或网络的情况下存储大量的文字、图片甚至视频信息,因此被广泛应用到数字支付、产品溯源、广告推送等领域。2011年5月,Cell杂志以二维码作为封面图,扫描二维码即可观看疟原虫感染细胞进入血液循环的视频,开始了二维码在科技期刊中的应用[2]。
通过在期刊中放置二维码,科技期刊正在探索一个新的阅读和传播场景[3]。二维码可以放置在封面、封底或论文中,论文中的二维码又可显示在首页或内容中。二维码可快捷地导引读者至新媒体,弥补纸质期刊在传播中的局限,扩大科技期刊宣传渠道,提升读者阅读体验,增加作者和读者的互动服务,实现论文的增强出版和延伸阅读[4-5]。谭潇等[6]认为编辑应熟练掌握二维码的制作技巧,优化期刊二维码的数量和位置。虽然二维码在融媒体时代具有桥梁作用,但目前只有少数科技期刊应用了二维码。杨郁霞[7]针对中国高校科技期刊研究会网站的会员期刊,统计了在单篇论文中放置二维码的期刊数量及二维码的内容和形式信息,结果显示,目前在单篇论文中融合二维码的期刊占比较低,仅占会员期刊总数的24.9%,二维码的位置、大小和样式无具体规范,部分二维码链接的内容价值较低,难以提供优质的增值服务。张明明等[8]调查发现部分论文的二维码链接失效,扫描后无法正常提供服务,指出编辑应注意二维码的有效性。王红燕[9]指出,二维码在提供丰富内容的同时,也存在不少问题,如二维码链接的内容质量良莠不齐,对二维码的校验增加了较多编校成本。
为了降低编校成本,一些研究者尝试使用批处理方式制作二维码。郭晓亮等[10]介绍了二维码生成器ZZY.QR,并且介绍了使用ZZY.QR进行批量编码的操作步骤。张海东等[11]在郭晓亮等[10]的研究基础上,介绍了草料二维码的使用方法,并研究了国内外期刊对于二维码放置位置的一般规范。批量制码对于学术期刊每期几十篇的出版量来说,确实降低了人工成本。在实际工作中,除制作二维码工作量之外,二维码的插入和校验同样需要手工操作。曾宪荣[12]以《计算机工程》为例,介绍了使用RAYS系统平台制作二维码的经验。RAYS系统在设计之初即考虑到在智能编辑系统中融合二维码的制作,但此二维码内容仅限于RAYS问答系统,不支持自定义二维码链接,也未能提供二维码插入和校验的自动化解决方案。宫在芹等[13]介绍了煤炭科学研究总院出版传媒集团旗下期刊的二维码使用经验和实施细节:在二维码的制作和校验流程上,首先使用论文的源数据制作网页,获得网址和对应的二维码;然后,编辑在校稿的同时插入二维码并进行校验;最终定稿后,替换网页中的内容。文献[13]介绍的二维码处理流程已经较为成熟,但仍存在两个方面的不足:(1)二维码仍需编辑手工处理,工作量很大;(2)暴露出当前二维码校验过程中的窘境——为校验二维码中的网址,编辑部需要首先搭建论文首页,在论文正式出版之后,编辑需要再次填充或替换网页中的内容,即每次出版都需要处理两次网站内容,出版流程繁复。
经过对已有编辑部的实施方法进行分析,发现已有研究多是介绍批量生成二维码,而对于批量插入和校验则介绍较少。同时,当前的二维码处理流程存在工作量大、操作流程繁复、流程间耦合性高等缺陷,可考虑引入计算机技术代替人工操作,改进流程并减轻工作量。二维码处理全流程可拆分成多个阶段,即生成、插入和校验,各阶段多为重复性操作,同时其校验过程高度依赖机器识别,工作流程契合计算机处理流程。Python语言具有易于学习、功能强大、开源框架丰富的特点,是快速应用程序开发的理想语言[14]。已有编辑同行将Python语言引入编务工作中,使用Python设计整合了一套批量信息表单生成、打印程序,简化了编务工作,推动了期刊集约化发展[15]。根据Python语言的优势和特点,本研究基于Python设计、搭建了二维码一体化工具,实现了二维码生成、插入和校验的全自动化处理。
本文以《计算机系统应用》为例,分享了二维码处理全流程的探索和实践,以期为编辑同行提供参考。首先,介绍原手工处理二维码的流程,分析原有流程存在的不足;其次,介绍二维码一体化解决方案的开发工具、设计思路和操作流程;然后,将所设计方案的流程与手工二维码处理流程进行对比,分析二维码一体化解决方案的应用价值;最后,对前期工作进行总结,并对未来Python在编辑工作中的应用进行展望。
1 二维码手工处理流程及分析
《计算机系统应用》自2019年第1期开始为每篇论文配发二维码,如图1所示。读者可通过扫描二维码阅读论文的电子版全文。
图1 《计算机系统应用》二维码示意图
1.1 手工处理二维码流程
图2所示为《计算机系统应用》手工处理二维码的全流程,主要包括二维码生成、二维码插入和二维码校验。二维码的生成和插入工作安排在拟发表论文排版之前,编辑借助草料二维码生成器(https://cli.im/)为每篇论文生成唯一的二维码,并将其插到作者提交的Word格式电子版终稿中。二维码校验则安排在蓝样校对阶段。由于二维码使用黑白填充矩阵来存储数据,在编辑加工校对阶段人眼无法识别二维码是否正确;其对应的链接是论文在期刊官方网站的网址,在论文网络出版之前,该网址是无效的,无法进行二维码校验工作。因此,《计算机系统应用》编辑部将网络出版工作安排在当期论文印刷之前,并在蓝样校对阶段扫码校验每篇论文的二维码。如检查发现二维码错误,则替换正确的二维码,并同时替换网络版全文。
图2 手工处理二维码的流程
1.2 流程特点分析
二维码手工处理流程可以完成二维码生成、插入和校验工作,但存在工作量大、操作重复繁琐、校验困难、流程复杂等问题。
(1) 操作重复、工作量大。在二维码生成阶段,编辑需要借助草料二维码生成器逐一生成并保存二维码。在二维码插入阶段,编辑需要逐一打开论文Word文档,插入图片并调整位置和尺寸。在二维码校验阶段,编辑还需要使用手机逐一扫描每篇论文二维码,打开网址并核对论文标题与作者等信息。显然,这样的处理流程工作量较大,花费编辑很多时间和精力。《计算机系统应用》每期发表论文45篇左右,一位操作熟练的编辑完成整期二维码生成和插入工作,大致需要1.5小时,完成二维码校验工作大致需要0.5小时。
(2) 易出错,难校验。手工处理二维码的全流程存在大量的人工操作,繁琐、重复,极易产生差错。而二维码由黑白矩阵填充,无法肉眼校验核实。因此,二维码校验阶段必不可少。《计算机系统应用》使用微信的“扫一扫”功能校验二维码,此功能需要二维码中保存的链接生效,在编校阶段网页还未搭建完成,无法校对,错误至少需要等到网络出版后才能检查出来。
(3) 流程间依赖度过高。手工处理二维码流程中存在一组矛盾:期刊出版前需要进行二维码校验,而二维码的校验则依赖于网络出版。为了解决这个矛盾,《计算机系统应用》将网络出版提前至纸质出版前,即当期完成校对交付印刷之前进行当期论文的网络出版工作,这样可在蓝样校对阶段校验二维码。如校验发现二维码错误,修正后重新制作当页印刷版,并同时替换网络版。可以看出,网络出版、二维码校验和纸质出版这3个阶段高度依赖于前一阶段的结果。在实际出版流程中,编辑需要承受较大压力,同时还需要预留足够长的时间以应对突发情况。
2 二维码一体化解决方案
针对手工处理二维码流程中存在的问题,本研究基于Python开发了二维码一体化处理工具,实现了二维码全自动化处理。
2.1 开发工具
(1) 集成开发环境。PyCharm(社区版)是由JetBrains公司开发的针对Python开发者的免费集成开发环境(Integrated Development Environment,IDE)[16],具有“即装即用”的特点。它内置了Python解释器和图形化运行调试界面,因此开发者无需自行安装Python、配置环境或输入命令,只需打开PyCharm即可编写代码、运行Python程序。此外,PyCharm内置Python标准化库,支持文件、目录访问和操作系统服务等常用操作。同时,使用者也可通过图形化界面安装第三方扩展库,实现更多功能。
(2) 第三方扩展库。PyPI(Python Package Index)[17]是Python官方的第三方扩展库索引仓库,里面存储了Python社区其他成员发布和共享的扩展库。在本研究开发的二维码一体化工具中,主要使用了如下第三方扩展库:① pywin,调用Windows API对Word文件进行插入、删除等操作;② PyPDF,对PDF文件进行截取、解析等操作;③ qrcode,根据配置生成或解析二维码图片。
2.2 设计思路
二维码一体化工具的开发思路主要基于两个方面:(1) 重复性操作交给工具自动化完成,如反复打开/关闭文件、调整图片大小、插入图片至指定位置等;(2) 二维码的生成和校验通过调用Python库函数实现。《计算机系统应用》编辑部自2021年8月开始探索基于Python的二维码一体化工具,逐渐完善功能,并优化编校加工流程,如图3所示。首先,编辑使用二维码一体化工具生成/插入二维码。完成处理后,将论文Word文档排版,进入传统编校流程。在编校过程中,编辑可以随时使用一体化工具校验二维码。二维码校验的人工成本和时间成本很低,可以多次校验。《计算机系统应用》目前是安排在二校和三校两个阶段中进行两次二维码校验,优势是:(1) 将二维码校验提前至二校阶段,尽早发现并纠正二维码的错误,避免影响后续流程;(2) 多次校验二维码可以确保二维码准确无误。在全部校验完成后,编辑可以根据时间安排,完成网络出版和纸质出版等后续流程。
图3 二维码一体化解决方案的处理流程
图4 生成/插入流程设计
二维码一体化处理工具的核心工作是完成二维码生成/插入和二维码校验。本研究以二维码生成/插入为例,介绍了工具的开发思路(图4)。首先读取用户配置,根据配置信息指定的文件目录,扫描目录下所有的待处理文件。其次,针对每个文件,根据配置信息判断应拼接生成的二维码内容或读取二维码内容,生成二维码图片,根据配置信息调整图片位置和大小,并插到对应Word文档的指定位置。最后,在所有文件处理完成后,工具将生成处理结果,提示处理失败或成功。所有的二维码校验流程类似,区别在于针对每个文件的处理,校验阶段将截取指定位置的图片,识别图片二维码包含的信息,并与预期信息进行对比判断。
2.3 工具操作手册
本研究搭建的二维码一体化工具可以完成二维码生成/插入和二维码校验两部分工作。
2.3.1 二维码的生成/插入
二维码一体化工具将二维码生成/插入整合为一步完成,操作更为简便、高效。界面如图5所示,编辑首先设置目录至待处理Word文档所在的文件夹。根据“期刊”选项的不同,二维码一体化工具支持两种模式生成/插入二维码——通用版模式和个性化模式。
2.3.1.1 通用版模式
在“期刊”标签处选择“通用版”可进入此模式,如图5(a)所示,通用版模式支持3种ID截取方式:front、back和excel。excel方式是指用户通过Excel表格建立文件名与二维码含义之间的关系,如图6所示,用户自行创建一个Excel文件,文件中包含A、B两列,分别表示Word文件的文件名和二维码中的预期内容,Excel文件的每一行代表了A列所指文件与B列所指内容之间的对应关系。二维码内容可由使用者自行指定,包括论文的全文链接、DOI链接、视频链接、图片链接、微信公众号、文本等。工具将读取Excel文件,根据文件名查询对应的内容来生成二维码。这种方式适用于二维码包含的内容与文件名无关联的情况。
在编辑实务中,论文文档的命名通常具有某种含义,与其二维码往往有一定的关联,因此在二维码一体化工具中增加了front和back两个设置。front和back模式是指从文件名的前端或后端截取N个字符作为二维码内容的一部分。如果可以直接根据文件名来生成二维码,则可以避免制作Excel表格的过程。以《计算机系统应用》为例,文件名是每篇稿件的录用编号,同时也是论文首页地址的一部分(图7)。
图5 不同模式生成/插入二维码界面(a) 通用版模式;(b) 个性化模式
图6 指示文件名与文件ID对应关系的Excel文件结构
图7 《计算机系统应用》论文首页网址示意
根据文件名可以拼接出二维码链接。当二维码对应的内容满足“前缀+可变ID+后缀”的格式,且可变ID可从文件名中截取时,即可固化前缀和后缀,根据实际情况选择可变ID的截取方式。二维码一体化工具自动将其拼接为一个链接,生成二维码并插到对应文件的指定位置。这样操作一方面减少了制作Excel表格的工作量,另一方面也避免了手动输入可能造成的差错。
图片的尺寸和位置由4个参数指定,如图5所示。Left表示图片相对画布左边缘的位置,Top表示图片相对画布上边缘的位置,Height表示图片的高度,Width表示图片的宽度,这4个参数表的单位都是磅。
2.3.1.2 个性化模式
二维码一体化工具还可根据期刊的特点设计个性化模式。以《计算机系统应用》为例,二维码链接的网址前缀和后缀具有固定的内容,这些已经被配置在程序中,如图5(b)所示,用户进入界面后,选择相应期刊,即可使用内置配置,进一步减少了人工操作流程,减轻了编辑的工作量,同时也避免了人工输入可能引入的错误。目前二维码一体化工具支持《计算机系统应用》和《软件学报》的个性化模式。
完成配置后,用户点击“开始处理”,即可等待工具自动完成二维码生成/插入。如图8(a)所示,当处理全部成功后,页面会弹出消息提示框,提示已经处理成功。若处理失败,则如图8(b)所示,页面会弹出消息提示框,提示部分文件处理失败,用户可以查找相应的文件,查看失败原因。
2.3.2 二维码的校验
二维码的校验过程与生成/插入的过程类似,用户首先将所有待处理的文件放置在特定文件夹中,并在工具中指定此文件目录。文件可以是Word,也可以是PDF。接下来,用户选择校验模式,同样支持通用版和个性化两种模式,使用方法与二维码生成时一致。在完成配置后,用户点击“开始处理”按钮,即可等待工具自动化处理。
当处理完成后,页面会弹出消息提示框,提示处理结果。若二维码均正确,则提示二维码校验无误;若有部分文件中的二维码有误,则列出错误文件的文件名,用户可以查找相应的文件,查看错误原因,并进行处理。
3 二维码一体化解决方案的应用价值
3.1 与传统手工操作方法相比
基于Python的二维码一体化解决方案,一方面将大量重复、繁琐的工作交给机器自动化完成,极大提高了工作效率;另一方面借助软件识别二维码,解决了二维码校验难的问题,优化了编校加工流程。与手工操作流程相比,所设计的二维码一体化解决方案在时间成本、可靠性等方面存在很大优势。以《计算机系统应用》每期45篇论文的处理实践为例,一体化解决方案与手工操作的对比如表1所示。
图8 生成/插入处理示例(a)处理成功;(b)处理失败
表1 以45篇论文为例,手工操作与一体化解决方案对比
(1) 全自动操作,效率更高。在传统手工操作流程中,编辑需要手工逐一生成二维码,保存并插到指定文件的指定位置,校验二维码则需要逐一扫描二维码、打开对应的网页并加以确认,其中包含了大量细致工作。在二维码一体化解决方案中,编辑只需要打开二维码一体化工具,选择指定文件夹即可一键完成二维码的生成和插入或者二维码校验工作。以《计算机系统应用》为例,每期45篇稿件,工具一键完成二维码生成和插入,总耗时约25秒;一键完成二维码校验,总耗时约5秒。而同样的工作,人工完成需要耗时2小时。使用二维码一体化解决方案后,编辑的工作效率得到了极大提升。
(2) 机器智能化处理,可靠性更强。相较于人工操作的不稳定性和不可靠性,软件遵循一定的逻辑进行二维码的自动生成、插入和校验,产生差错的概率极低。在工具最初构思时,笔者曾追溯《计算机系统应用》近几期手工处理二维码的效果,结果发现:在蓝样校对阶段,每期普遍校验出1~2个二维码错误,其中有一期因二维码生成阶段对Excel表格处理不当,造成6个错误。使用二维码一体化解决方案之后,二维码生成/插入的准确率是100%,即所有的二维码均正确生成,并准确地放到论文的指定位置。程序还内置了一些选项,进一步避免了人工输入可能造成的错误。此外,程序在处理过程中保存处理日志,若后续校验阶段发现差错,可通过回溯处理日志确定错误来源。
(3) 流程更合理。通过对比新、旧流程可以发现:原手工操作流程中,编校过程与二维码处理过程之间存在割裂,而二维码一体化解决方案完美地解决了此问题,优化后的流程将二维码处理流程与传统编校出版流程融为一体。二维码的校验不再依赖于网址生效,可以自由地安排在编校过程中,例如二校或三校。在编校中,编辑一旦发现二维码的问题,可以及时更正,避免了在期刊纸质出版的最后阶段再次修改二维码,进一步减少了纠错成本。同时,提前校验二维码使得印刷阶段不再依赖于网络出版,编校出版流程更为合理。
(4) 自主开发,可扩展性强。本文所述的二维码一体化工具是由《计算机系统应用》学术编辑根据工作经验自主开发,可以灵活进行个性化设计。如工具内嵌了《计算机系统应用》和《软件学报》两刊配置,可以根据编辑的选择进行自动跳转,最大限度地简化了编辑的操作。同时,工具不限制二维码的内容,其通用版的扩展功能可以广泛用于期刊处理如期刊官网、论文首页、视频图片链接、文本等多种二维码。通过有效的处理手段,可以灵活解决单篇论文中融入二维码的问题。
3.2 与现有其他解决方案相比
目前已有一些编辑同行积极探索二维码的自动化处理[10-12],本研究调研并对比了本文方法与现有方法的优缺点,结果如表2所示。可见,现有解决方案多是实现二维码批量生成,而基于Python的二维码一体化解决方案不仅实现了二维码的批量生成,更是实现了二维码插入和校验的全自动化处理,极大地减少了编辑的重复性工作。同时,二维码的自动化校验摆脱了二维码校验依赖于网址生效的窘境,处理结果准确率高、可靠性强,使得二维码编校流程更为合理。
表2 本文方法与文献[10-12]方法的对比
4 结语
针对科技期刊二维码处理流程中效率低、易出错、难校验等问题,本研究提出了一种基于Python的二维码一体化解决方案,自动完成二维码的生成、插入和校验。经过实验验证和《计算机系统应用》《软件学报》两刊的试用,发现二维码一体化工具极大地提高了工作效率,解放了人力,提升了二维码处理结果的可靠性,同时将二维码处理流程完美地融合至传统编校流程。
未来笔者将在以下两个方面继续探索:(1)工具中生成的二维码仅支持普通的黑白两色,暂不支持自由设计,如增加彩色二维码、向二维码中插入Logo图片等。未来根据期刊发展的需要,工具也将逐步添加更丰富的二维码设计功能。(2)目前工具已在《计算机系统应用》和《软件学报》中使用,未来将在工具中集成更多功能,并推广到更多期刊中。
随着科技的不断进步,编辑和校对工作也已向数字化发展,但大部分繁杂琐碎的编务工作仍然停留在人工处理阶段,自动化程度较低。计算机自动化操作在处理重复性工作时效率更高,可靠性更强,现在各类程序语言不断发展,丰富的集成开发工具和第三方扩展库降低了工具开发门槛,使得自行搭建轻量级的编务工作处理模块成为可能。科技期刊编辑应善于思考,借助计算机技术不断提升工作效率,完善工作流程。