portable scribus是一款专门用来制作电子杂志的软件。portable scribus能够为用户在进行电子杂志制作时提供不少帮助。该工具支持使用Python进行脚本编写和使用C ++进行语言编辑,这非常适合许多用户的当前需求。现在用户可以使用复杂的文本布局功能,支持RTL语言,支持双向文本,支持印度文本和语言,支持500多种语言,支持OpenType字体功能,允许自定义连字符,添加直接链接所选文本框架的功能,更快地加载和渲染长文档; Scripter提供了控制转录和操作画布上对象的功能,每个功能都在下面单独记录,大多数接口具有某些共同点,许多功能在框架上运行,框架由其名称(字符串)标识,它们不是真实的Python对象和许多函数使用可选的(非关键字)参数,即框架名称,大多数函数之间有许多例外。目前,这些内容尚未记录在每个功能的文档字符串中;需要它的用户可以下载体验。
使用说明:
使用Python编写Scribus脚本
总览
这是使用Scribus脚本插件的方法。脚本编写器允许您使用功能强大的Python编程语言作为Scribus中的脚本语言。这可以帮助您自动化其他重复性任务或添加新功能。
请注意,通常会添加脚本编辑器,这意味着可用的文档可能不完整。
脚本和Windows
如果使用Sourceforge上的安装程序安装了Windows版本的Scribus,则安装将在标有python \的目录中包含Python 3.7。这对于大多数用途而言已足够。您可能会找到或编写一些不需要包含其他Python软件包的Python脚本,并且无法将它们添加到Scribus目录中。您的系统可能甚至不了解此Python。
如果您需要使用其他软件包,答案是从在系统上安装Python 3.7,然后是所需的其他软件包。接下来的重要步骤是使用文件管理器转到C:\ Program Files \ Scribus 1.5.6 \,然后查找
用于名为python \的目录。只需将其重命名为另一个名称,例如oldpython \,下一次Scribus启动时,它将使用系统Python及其软件包。
使用插件
Scribus带有一些“硬连线”脚本,可以通过“ Script”>“ Scribus Script”获得:
“样本”子目录中有一些简单的示例脚本。它的位置取决于您使用的操作系统,例如Linux上的/ usr / local / share / scribus或/ usr / share / scribus。如果您创建了您认为可能对其他人有用的脚本,请随时将其添加到Scribus Wiki或将其粘贴到电子邮件中,然后将其发送到Scribus邮件列表。
要执行外部Python脚本,必须使用“脚本”>“执行脚本”。 Scribus将打开一个文件对话框,该对话框允许您选择Python脚本(文件扩展名:* .py)。脚本>最近的脚本显示最近执行的脚本的列表。
您可以在此插件中使用许多Python模块,唯一的例外是需要命令行参数的脚本。这些将不起作用,因为该插件为Python解释器提供了一个空命令行。
菜单项“脚本”>“显示控制台”将启动一个交互式Python控制台,您可以在其中直接执行命令。不需要使用“ from scribus import *”,因为这已经完成。您可以直接使用Scripter API文档的以下页面上列出的所有命令,而无需任何前缀。
Scribus附带的脚本
果从菜单“脚本”>“关于脚本”中进行选择,将显示一个文件对话框,以查找要查找其信息的脚本。在系统上定位这些脚本可能很困难。在这里,我们将显示有关Scribus附带的脚本的信息。
自动报价
该脚本将打字机引号转换为多种语言的印刷引号。
用法
您必须打开一个文档并选择一个文本框架。将有一个valueDialog询问您的报价语言。默认值为“ en”,但是您可以更改默认值以适合您的需要。检测到的错误将关闭脚本并显示相应的消息。
自动报价2
这是Autoquote的变体,它提供了一些附加功能,包括对对话框使用法语的选项以及在引号和由其引起的文本之间添加空格的选项。
仅适用于当前选定的框架(待办事项:适用于多个选定的框架,或者整个链接的文本框架链都可以)。
请勿在引号外添加空格。
(这可能是另一个更通用的打印工具的工作)
用法
您必须打开一个文档并选择一个文本框架。
从scribus菜单运行脚本(“脚本”>“运行脚本...”)
将出现一个对话框,询问报价语言,并且检测到的错误将关闭脚本并显示相应的消息。
然后将出现一个对话框,询问您对空间的选择。
请按照说明进行操作,然后回答0、1、2或3
另一个对话框询问您是否要使用正确的双引号管理脚本。
日历指南
这是Scribus的简单“日历创建向导”。这是在Scribus示例中完全重写的Calendar.py。请享受。
说明和用法:
该脚本需要Tkinter。它将创建具有可用选项的GUI,以轻松创建日历页面。您将获得一个带有日历的新页面
将表格放入所需的新文档中。位置页面中的对象使用“黄金比例”方面
保证金。
创建步骤:
在“日历”对话框中填写所需的值
系统将提示您输入新的段落样式,该样式将在日历文本框中使用。以后可以更改。
支持两个日历:
经典日历,每页一个月矩阵。我在这里建议肖像。
水平事件日历,每页一周,具有巨大的手动输入空间。应该有LANDSCAPE IMHO。
水平事件日历,每页一周,具有巨大的手动输入空间。应该有LANDSCAPE IMHO。
但是,当然,双向都是好的。
字幕
在相对于一个或多个选定框架的选定位置中创建一个文本框架(标题)。
用法
选择一个或多个对象(可以是任何一种框架,甚至可以是导入的矢量图形),
运行脚本。出现一个对话框,用于选择所有字幕框B / T / R / L(底部/顶部/右侧/左侧)的位置。
底部和顶部字幕框架的大小适合父对象的宽度和高度
24分。左右字幕框的大小为150点宽,
高40点。
彩色2csv
关于此脚本:
将Scribus颜色导出为CSV
Color2csv.py允许用户将给定的scribus文档的颜色导出到csv文件中。
该文件将是具有以下格式的逗号分隔值的文本文件:
“颜色名称”,c,m,y,k如果打开了文档
在scribus中,color2csv使用此文档作为颜色来源。
如果在scribus中没有打开任何文档,color2csv将显示一个“打开文件”对话框,以允许用户选择一个scribus文件以获取颜色。
使用csv2color将颜色从csv文件导入到scribus文档中。
色卡
关于此脚本:
ColorChart.py允许用户使用所有给定的scribus文档创建颜色。
它为每种色和描述生成一个颜色字段颜色名称,包括颜色名称,CMYK值和RGB值。
如果在scribus中打开了文档,ColorChart将使用该文档
该文档用作颜色来源,并使用色卡。
如果在scribus中没有打开任何文档,则“ Hart监视器文件打开”对话框允许用户选择scribus文件以生成色卡。
系统将要求您命名颜色表。此名称将显示在页面标题中。
Csv2color
将颜色从CSV文件导入Scribus
Csv2color.py允许用户将给定的csv文件中的颜色导入到scribus文档中。
该文件必须具有以下格式的逗号分隔值的文本文件:“颜色名称”,c,m,y,k
您必须打开可以在scribus中定义颜色的文档。
如果csv在文档中包含一个或多个颜色名称,则将以“ *”作为前缀导入颜色。
如果要使用CMYK颜色表示,此脚本特别有用。
Scribus中的HKS,Pantone或RAL色彩系统。可以在网上找到许多这样的CMYK转换表。
您可以轻松地将这样的表复制到文本文件,并以上述格式保存
并将其导入到scribus文档中。
使用color2csv将颜色从scribus文档导出到csv文件。
DirectImage导入
该脚本将导入图像并将其放置在当前页面上。
图像帧适合于图片,并且设置为非比率模式,因此导入后可能会看到一些失真。
要按比例放大图像,请在编辑时按CTRL键。
经scrbus 1.3.3.3测试
Gregory Pittman 2009的某些修改版本在Scribus 1.3.3.13svn上进行了测试
此较新的版本使用Python Imaging Library获取要导入的图像并相应地调整框架。最初,将以页面宽度或高度(以较小者为准)的80%为中心创建框架。
如果超出页面高度,请通过初步计算将其调整为页面高度的80%。
用法:
您必须打开一个文档。运行脚本时,将出现一个对话框,要求您选择要加载的图片。自动创建比例框架并加载图像,然后调整为框架大小。
字体样本
说明和用法:
该脚本需要Tkinter。它将创建带有字母顺序列表的GUI
使用具有这些名称的字体,这些字体将显示在Scribus中。用户可以选择一种或多种字体并创建样本表以从中打印或创建PF。对其进行了大量评论,以使用户可以更轻松地对其进行调整以满足自己的需求。
注意:此版本要求对用户主目录中的.scribus目录具有读/写访问权限。您还需要安装Python Imaging Library(PIL)。
如果您的系统不满足这些要求,请将showPreviewPanel的值更改为0。这将禁用新的预览功能。
Importcsv2table
关于此脚本:
将CSV数据文件作为表格导入Scribus
在面上创建任何尺寸的任何框架,但将其放置在要放置桌子的位置(左上角),确保已选择它
执行此脚本:
系统将提示您输入以mm为单位的左列宽度,然后以mm为单位,然后输入所有单元格的高度,最后csv文件名将数据导入csv文件并在页面上绘制文本框表格。
局限性:
您只能在文件中使用两列CSV数据。
在Scribus版本1.3.5svn中,脚本结束后,您将无法调整组的文本,颜色和线条特征,而在1.3.3.x中,无需取消分组即可完成所有这些操作。
提示:
PostgreSQL:
您可以使用Postgresql数据库轻松创建CSV文件。从Postgresql,
使用'\ a'开关切换未对齐的输出,然后使用'\ f'(不带撇号)将逗号激活为分隔符。发送输出到文件
使“ \ o myfile.csv”,然后查询数据库。
SQLite3:
您可以在命令行上使用“ sqlite3 -csv”,或在sqlite命令行上使用“ .mode csv”
交式外壳。
消息窗口
一个简单的脚本,用于将框架(信息框)准确地放置在当前文本框中,
查询用户信息框的宽度及其所在的列。
一些增强功能:
现在,您可以创建文本框架或图像框架,还可以加载图像。
通过重复运行脚本,可以将多个信息框添加到文本框架(即,不会发生名称冲突)。
您可以在消息框顶部指定高度和Y位置。
适用于任何页面单位磅,毫米,英寸和皮卡,厘米甚至西塞罗。
Infobox激活“框架周围的文本流”功能,并且还可以将图像缩放到框架以显示图像。
如果使用脚本加载图像,它将生成完全正确的帧高。
用法
选择一个文本框架,启动脚本,然后继续信息框。默认名称为“信息框” + name_of_selected_frame,但可以更改。
Ligatursatz
不幸的是,该脚本没有使用信息。它似乎旨在根据某些字母组合自动创建连字,特别是对于德语。
常见问题
如何在脚本编写器中使用非ASCII文本?
首先,请确保您的脚本具有正确的编码行。您的脚本应以以下内容开头:
#! / usr / bin / env python
#-*代码:latin-1-*-
要么
#! / usr / bin / env python
#-*-代码:utf-8-*-
要么
#! / usr / bin / env python
#-*-代码:ascii-*-
这些行必须是脚本的前两行。编码必须与文件的实际编码匹配。
要在vim中查找文本编码,请输入:set fileencoding?。其他编辑器的搜索方法与文本编辑方法不同,并且可能与您的语言环境匹配。 file命令不是确定文件文本编码的可靠方法。
您可以使用“ iconv”实用程序在编码之间转换文件,但是如果告诉Python对行的内容进行编码,则几乎所有文本编码都可以在没有Python的情况下进行处理。
某些脚本功能需要严格的ASCII文本,并且不能接受unicode或latin-1文本。如果使用非ASCII文本调用其中之一,则会收到与以下类似的错误:UnicodeDecodeError:“ ASCII”编解码器无法解码位置1处的字节0xc3:序数不在范围内(128),显然不是帮帮我。
目前,脚本控制台中的字符串文字的u''修饰符似乎存在错误。在命令行的Python交互式解释器中也已经确定了此问题。它不会影响脚本文件。解决此问题之前,请使用unicode(“ mystring”)构造函数,或者仅在脚本控制台中使用纯字符串(可以包含unicode文本)。
脚本的良好结构是什么?
在示例目录中以“ boilerplate.py”开头。该脚本会禁用重绘(以提高速度)并提供代码以确保重新打开它们,如果在scribus之外运行,请进行一些检查并报告有用的错误等。
为什么是Python?
它非常适合应用程序嵌入,但功能齐全且功能强大。也可以是
由新用户使用,并且有据可查。此外,它还具有可靠的unicode文本支持。
Python是一种很好的粘合语言,可以将不同的程序和组件连接在一起。例如,您可能希望将内部故事数据库与Scribus一起使用-在这种情况下,Python界面可能是使您到达那里的最简单,最快的方法。
编写其他人可以阅读和理解的干净的Python代码也稍微容易一些。如果其他人的脚本不能完全满足您的需求,那么您很有可能可以使用Python对其进行修改。
将Python嵌入应用程序中存在一些问题,因此从纯自动化脚本的角度来看,诸如Qt Script for Applications或lua之类的语言可能更合适。如果您想超越简单的自动化范围,Python似乎是唯一的方法。
我想提供一个比脚本界面内置的对话框更复杂的GUI。我怎样才能做到这一点?
对于大多数脚本编写任务,当前的最佳选择是在Tkinter中构建一个简单的GUI。如果要扩展用户界面或提供可供用户继续在Scribus中使用的调色板,则需要考虑使用PyQt编写“扩展脚本”。
在大多数情况下,建议仅选择Tkinter。由于它们是在子解释器中执行的,因此它是唯一可以在普通Scribus脚本中可靠运行的GUI工具箱。尽管默认情况下未安装,但它几乎普遍打包在Linux发行版中。 Tkinter具有高度的便携性。 Tkinter还与Scribus的Windows安装程序捆绑在一起,并在Mac OS X 10.4.x上随python提供。用户可能并不特别喜欢Tkinter的外观,但是效果很好。
如果要编写更高级的GUI,最好的选择是PyQt。您可以使用PyQt编写自己的自定义对话框和调色板,从而可以在一定程度上扩展Scribus界面。 PyQt无法在普通脚本中可靠运行,但可以在使用“ Load Extension Script ...”菜单项运行的脚本中正常运行。有关更多详细信息,请参见脚本编写者手册的高级部分。
子解释器中事件循环的集成和初始化问题意味着当前不建议使用PyGtk和wxPython,它们可能无法正常工作。鉴于Tkinter适合普通脚本,而PyQt适合更高级的任务,这不是主要问题。
我应该使用“ from scribus import *”还是“ import scribus”?
通常,首选“进口杂技”。在重新加载模块,导入软件包以及其他情况下,“从...导入”可能会导致导入周期混乱。
尽管“ import scribus”将导致代码过长,但通常值得这样做,以提高代码的可读性和明确性。
一般编程风格是什么?
通常,我们会跟随Python专家。
源代码编码有一个例外,建议使用转义ASCII,latin-1或utf-8。但是,几乎所有您选择的编码都可以正常工作。
请注意,这些不是一成不变的,您可以自由编写代码。提出这些建议是有原因的,因此遵循它是一个好主意,尤其是如果您打算与他人共享您的代码时。
我应该知道有关Scribus python接口的任何古怪之处吗?
是的,您应该注意一些差异:
在Scribus中运行的Python脚本可能不会创建线程。 Qt是Scribus的构建工具箱,它提供了自己的线程框架,该框架在Python线程系统中不能很好地工作。如果您可以显示足够的QThread要求并可以使其正常工作,则可以提供QThread接口。
尽现在可以在“扩展脚本”模式下使用它,但是PyQt当前无法通过由普通Scribus脚本运行的Python脚本正常运行。如果您认为可以帮助解决此问题,请检查邮件列表。可能需要具有Python / C API,子解释器和PyQt的经验。
Scribus python插件将Python默认字符串编码(sysdefaultencoding)更改为utf-8。 Python默认为ASCII。由于UTF-8是ASCII的(大)超集,因此这不会影响仅使用ASCII编码的字符串的脚本。 Scribus功能已经过测试,可以正确处理unicode文本,因此那里应该没有任何问题。
但是,如果作者没有考虑传入文本的编码,则第三方C扩展模块可能会出现问题。几乎所有此类问题都是应该向模块作者报告的错误,而且几乎没有错误。如果遇到此类问题,请检查邮件列表或IRC。
Python在Scribus中运行。加载执行复杂初始化技术的某些C扩展模块可能会破坏Scribus或Python解释器。如果遇到这样的模块,请在邮件列表中报告它或将其放在IRC中。任何想要运行自己的事件循环的事件都可能导致问题,并且
GUI工具包的界面似乎也很麻烦。产生线程的任何事物也可能导致问题。
我可以使用其余的Python标准库或其他模块吗?
是的是的。 Scribus并未对访问其余Python施加任何限制(除了上述技术限制之外),这是脚本编写者如此强大的原因之一。解释器的嵌入方式可能会影响某些Python函数(例如线程),但大多数函数应正常使用。
我想使用Python扩展Scribus,而不仅仅是使用它来自动化事情...
目前,这实际上是不可能的。当前正在努力使利用Python尤其是GUI扩展Scribus成为可能。您现在可以使用PyQt编写自己的调色板,但是将无法使用自定义Scribus小部件或进入应用程序。不幸的是,Scribus内核不太适合从Python进行扩展。最好使用C ++插件编写更高级或紧密集成的扩展。
那么安全性呢?我可以相信该脚本不会破坏我的数据或损坏我的计算机吗?
否。如果该脚本不是来自受信任的来源,请不要运行它,除非您已阅读该脚本,否则最好不要运行。 Python脚本接口功能强大的缺点在于,它几乎没有施加任何安全限制。您可以在shell中执行任何操作而无需输入密码,并且脚本也可以执行。
如果Python曾经获得过对受限执行环境的支持(例如,对低于2.2版本的支持),则可以添加对此的支持,但基本上没有任何限制。研究一种仅用于嵌入Scribus的自动化的简单宏语言会很有趣,但是目前没有资源可以做到这一点。
那么...我可以将脚本嵌入文档或模板中吗?
不,请参见上面。我们无法提供有限的执行环境,因此让脚本随文档一起旅行并不安全。否则,恶意脚本可能使用该文档作为载体来感染其他系统。还记得Word宏病毒吗?是的,我们也是。
那么启动脚本或事件触发脚本呢?
支持启动脚本,并且可能支持将来发生某些事件时运行的脚本。如果脚本可以“感染”启动脚本或应用程序,那么它也可以修改.bashrc或X启动脚本。换句话说,如果您选择在计算机上运行不受信任的代码,那么将其插入Scribus启动脚本中为时已晚,将带来最少的麻烦。这不是Scribus
唯一,nd适用于bash脚本,普通程序和大多数插件。请记住,不要运行并非来自受信任来源的脚本,这些脚本与您可能在计算机上运行的任何其他程序相同。
在启动时加载脚本时,Scribus的安全性与外壳程序(例如bash)或图形登录系统一样安全。如果您选择在系统上运行不受信任的程序,则Scribus将无法保护您。可以防止的是为不受信任的代码提供任何载体。这就是Scribus支持启动脚本的原因(尽管默认情况下它们不运行),也不允许它嵌入或运行文档中的脚本。
除非您已确认该程序不是恶意程序,否则请勿从任何来源运行任何形式的程序,脚本或插件。这是基本计算机安全性的重要规则,适用于任何程序和操作系统。
Scribus的C ++插件呢?他们安全吗?
一点也不。 Scribus C ++插件几乎可以执行计算机上任何其他程序可以执行的任何操作,因此请不要下载并运行您不完全相信其作者的程序。对于大多数程序而言,这对于插件来说是正确的,因为很难限制用C / C ++编写的插件可以做什。
我找不到从Python做某事的方法,但主要的Scribus应用程序支持它。我该怎么办?
当前,脚本界面要求必须手动编写每个功能,而无需使用自动代码生成/包装机制。部分原因是因为目前没有稳定的基本公共API可以组织。
通常,如果缺少一个函数,那是因为没有人找到时间或需要写时间。有时,功能要比看起来复杂得多,并且可能需要大量工作。有时需要五分钟。在IRC或邮件列表上礼貌地询问,如果有人有时间和爱好,他们可以为您写一封信。
我在邮件列表或IRC上询问,但没有人提供此功能来编写脚本。我能做什么?
您有几种选择:
等待一会儿,然后有礼貌地重试。
您可能可以自己添加它-可能是脚本编写者可以帮助您了解要完成的工作量。通常,脚本编写者不是很复杂,许多函数编写起来都很琐碎,因此,即使您对C ++不太了解,也不应认为自己不会。当我开始担任脚本编写者时,我根本不了解C或C ++。我只是真的想要一些新功能。
如果您决定自己添加功能,请记住要考虑到并非所有文本都是ASCII。使用PyArg_ParseTuple中的“ es”格式而不是“ s”格式,并指定“ utf-8”编码。当分别将数据传入和传出QString对象时,请使用QString :: fromUtf8和QString :: utf8()方法。查看其他一些脚本代码,以了解如何完成。如果遇到问题,请随时在IRC或邮件列表上询问。
愿意付钱给某人做。这可能仅适用于需要大量时间和精力(和金钱)的大量工作,但是如果您确实需要某些东西,则可以选择它。
软件功能:
Scribus是适用于Linux,FreeBSD,PC-BSD,NetBSD,OpenBSD,Solaris,OpenIndiana,Debian GNU / Hurd,Mac OS X,OS / 2 Warp 4,eComStation,Haiku和Windows的页面布局程序。
在用户友好的界面下,Scribus支持专业的发布功能,例如CMYK颜色,专色,ICC颜色管理和多功能PDF创建。
Scribus具有许多意想不到的功能,例如功能强大的矢量绘图工具
通过导入/导出过滤器,色盲模拟或渲染标记语言(例如Scribus中的LaTeX或Lilypond)支持大量文件类型。
Scribs文件格式基于XML且已打开。
与专有的二进制文件格式不同,即使损坏的文档也可以使用简单的文本编辑器进行恢复。
有这是其他页面布局程序所面临的问题。
Scribus已被翻译成25种以上的语言,将来还会有更多的语言。
安装步骤:
1.用户可以单击此网站上提供的下载路径来下载相应的程序安装包
2.只需要使用解压功能打开压缩包,双击主程序进行安装,弹出程序安装界面
3.同意上述协议的条款,然后继续安装该应用程序,单击“同意”按钮
4.您可以单击浏览按钮,根据需要更改应用程序的安装路径
5.弹出以下界面,用户可以直接用鼠标单击下一步按钮,并根据需要安装不同的组件
6.现在准备安装主程序,单击安装按钮开始安装
7.弹出应用程序安装进度栏的加载界面,等待加载完成
8.根据提示单击“安装”,弹出程序安装完成界面,单击“完成”按钮。
软件特色:
1.支持大多数主要图像格式
2.专业的字体/图像设置功能,包括CMYK颜色和ICC颜色管理
3.用C ++编写,使用Python作为内置脚本
4.超过24种语言的国际化支持
5.体积小,可携带在U盘上
6.轻松制作个人文件,邮件列表,电子杂志等。