软件官网
Scribus – Open Source Desktop Publishing
WebSVN - Scribus - Rev 24972 - / 官方svn,源码版本管理
https://github.com/scribusproject/scribus
Scribus - Browse /scribus at SourceForge.net 源码稳定版
Scribus - Browse /scribus-devel at SourceForge.net 源码develop版 【推荐】
Scribus - Browse /scribus-svn at SourceForge.net 抢鲜版
Scribus - Browse /scribus-libs at SourceForge.net 依赖库 【必须】
注意: scribus v1.4.x基于Qt4;v1.5.x基于Qt5
姊妹版本
Inkscape是一款外国开发的开源矢量图形编辑软件,与Illustrator、Freehand、CorelDraw、Xara X 等其他软件相似。Inkscape是一套矢量图形编辑器,号称Linux下的CorelDraw。Inkscape is an open source 2d vector graphics editor.
Inkscape / inkscape · GitLab Inkscape vector image editor,C++/GTK+,内置了几何库2geom(\inkscape-INKSCAPE_1_0_2\src\2geom\源码使用C++14编译器,依赖boost)
Inkscape / lib2geom · GitLab Easy to use 2D geometry library in C++,新版本使用C++ 17编译器
关于2geom库的用法:
src/path · master · Inkscape / inkscape · GitLab
tests · master · Inkscape / lib2geom · GitLab
山寨版本
https://github.com/nitramr/indigoDock
https://github.com/nitramr/scribus-indigo
https://github.com/nitramr/Draftoola
矢量绘图软件
https://github.com/egan2015/qdraw
https://github.com/iynaur/iynaur-s-vector-drawing
软件简介
Scribus官方版是一款专业的桌面排版软件 ( Open Source Desktop Publishing) ,它可用于电子杂志制作,类似Adobe Pagemaker。Scribus功能强劲,支持大多数主要的图像格式,可以轻松制作个人文件、邮件列表、电子杂志等。作为一个排版软件,Scribus具有一定的矢量图形绘制(双击轮廓图形即可编辑)和整合功能。软件开源,跨平台,C++/Qt编写,支持Linux/Unix,MacOS X,OS/2和Windows操作系统。
功能特点
1、scribus官方版支持大多数主要的图像格式;
2、专业的字型/图像设置功能包括CMYK颜色和ICC色彩管理;
3、以C++写编的,使用Python为内置脚本;
4、有超过24种语言的国际化支援;
5、体积小巧,可放在U盘随身携带;
6、轻松制作个人文件、邮件列表、电子杂志等。
7、风格工具、对齐工具、页面划分工具都是分离的——都位于菜单里。
8、拥有路径工具,可以和Inkscape、sK1、GIMP很好的协同工作。
9、使用Cairo作为绘图引擎(详情参见:开源项目推荐:OpenGL/Vulkan/Cairo/Skia/angle/VTK/OpenVG/MyPaint/GIMP/Krita等绘图库或画图软件_$firecat全宏的代码足迹$-CSDN博客)
软件支持的文件类型
Scribus完整支持SVG 1.0规范,能够利用sK1衍生项目UniConvertor把其他格式改为SVG从而支持导入、导出(内部处理不使用svg,所以svg是导入导出的)。
导入
导入odt、纯文本。
支持svg、pdf导入,还有ai等格式(使用UniConverter)
输出
除了自身的存储类型为sla,还完整的导出支持EPS(Ghostscript),PDF,SVG(完整1.0规范),以及导出图片(这里也有EPS但是和前文提及不同)。
源码编译
1、源码和依赖库下载,v1.5.5
Scribus - Browse /scribus-devel at SourceForge.net 【源码】
Scribus - Browse /scribus-libs at SourceForge.net 【依赖库】
scribus-1.5.5.7z
scribus-1.5.x-libs-msvc2015-20200111.7z
scribus-common-libs-20200111.7z
解压缩这3个压缩包,这3个文件夹的路径是并行关系:
2、编译
(1)scribus-1.5.5.7里面有编译说明文档BUILDING_win32_msvc.txt,参照它来编译就ok。
(2)VS2017打开【依赖库】工程文件,scribus-1.5.x-libs-msvc2015\scribus-libs-msvc2015.sln,直接编译即可。因为scribus-lib-paths.props已经把依赖环境配置好了,暖心啊!
VS IDE主菜单-生成-批生成-全选-编译,编译过程会报错:
------ 已启动生成: 项目: harfbuzz, 配置: Release x64 ------
LINK : fatal error LNK1181: 无法打开输入文件“icudt.lib”
已完成生成项目“harfbuzz.vcxproj”的操作 - 失败。
------ 已启动生成: 项目: harfbuzz, 配置: Release Win32 ------
LINK : fatal error LNK1181: 无法打开输入文件“icudt.lib”
已完成生成项目“harfbuzz.vcxproj”的操作 - 失败。
------ 已启动生成: 项目: harfbuzz, 配置: Debug x64 ------
LINK : fatal error LNK1104: 无法打开文件“icudt.lib”
已完成生成项目“harfbuzz.vcxproj”的操作 - 失败。
------ 已启动生成: 项目: harfbuzz, 配置: Debug Win32 ------
LINK : fatal error LNK1104: 无法打开文件“icudt.lib”
已完成生成项目“harfbuzz.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 4 个,最新 100 个,跳过 0 个 ==========
是因为找不到icudt.lib的路径,把lib所在文件夹的名称Win32-v140改为Win32-v141即可。64位同样的。
scribus-1.5.x-libs-msvc2015\icu-65.1\lib\Win32-v141
scribus-1.5.x-libs-msvc2015\icu-65.1\lib\x64-v141
(3)文件编辑器打开【源码】属性文件,scribus-1.5.5\win32\msvc2015\Scribus-build-props.props,修改相关的Qt环境为自己本机的:
<PropertyGroup Label="UserMacros">
<SCRIBUS_LIB_ROOT>F:\tmp-source\qt-hmi\scribus\scribus-1.5.x-libs-msvc2015</SCRIBUS_LIB_ROOT>
</PropertyGroup>
<Import Project="$(SCRIBUS_LIB_ROOT)\scribus-lib-paths.props" />
<!-- Import Qt5 -->
<PropertyGroup Label="UserMacros">
<!-- Qt5 -->
<QT5_DIR Condition="'$(Platform)' == 'Win32' and '$(PlatformToolset)' == 'v141'" >F:\Qt\Qt5.12.7\5.12.7\msvc2017</QT5_DIR>
<QT5_DIR Condition="'$(Platform)' == 'x64' and '$(PlatformToolset)' == 'v141'" >F:\Qt\Qt5.12.7\5.12.7\msvc2017_64</QT5_DIR>
然后VS2017打开【源码】工程文件,scribus-1.5.x-libs-msvc2015\Scribus.sln,直接编译即可。
VS IDE主菜单-生成-批生成-全选-编译,编译过程会报错:
错误1:
解决办法:
EditPlus编辑器分别打开about.cpp和fontlistmodel.cpp,把编码修改为UTF-8 + BOM。
F:\tmp-source\qt-hmi\scribus\scribus-1.5.5\scribus\fontlistmodel.cpp
F:\tmp-source\qt-hmi\scribus\scribus-1.5.5\scribus\ui\about.cpp
错误2:
使用vs2017编译插件,scribus-1.5.5\scribus\plugins\import\pdf\,会报一堆错误,先不管它,把相关代码注释掉即可。毕竟这个是pdf插件,我用不到它。
3、结果文件
最终编译出来的exe结果文件在scribus\Scribus-builds\,用户需要手动把dll拷贝过来。尤其要记得把python文件夹里的相关内容拷贝过来。以x64位为例,拷贝scribus-common-libs\python-2.7.15-amd64到scribus\Scribus-builds\,文件夹重命名为python。
补充说明v1.5.6.1+VS2019+Qt5.12.9环境
1、下载源码和依赖库
scribus-1.5.6.1
scribus-1.5.x-libs-msvc2019
scribus-common-libs
2、先编译依赖库,x64,scribus-1.5.x-libs-msvc2019
F:\Software\tmp-source\qt-hmi\scribus\scribus-1.5.x-libs-msvc2019\scribus-libs-msvc2019.sln
3、再编译源码,x64,scribus-1.5.6.1
F:\Software\tmp-source\qt-hmi\scribus\scribus-1.5.6.1\win32\msvc2019\Scribus-build-props.props,修改SCRIBUS_LIB_ROOT和QT5_DIR
<!-- Import Scribus dependencies (other than Qt) -->
<PropertyGroup Label="UserMacros">
<SCRIBUS_LIB_ROOT>F:\Software\tmp-source\qt-hmi\scribus\scribus-1.5.x-libs-msvc2019</SCRIBUS_LIB_ROOT>
</PropertyGroup>
<Import Project="$(SCRIBUS_LIB_ROOT)\scribus-lib-paths.props" />
<!-- Import Qt5 -->
<PropertyGroup Label="UserMacros">
<!-- Qt5 -->
<QT5_DIR Condition="'$(Platform)' == 'Win32' and '$(PlatformToolset)' == 'v142'" >F:\Qt\Qt5.12.9\5.12.9\msvc2017</QT5_DIR>
<QT5_DIR Condition="'$(Platform)' == 'x64' and '$(PlatformToolset)' == 'v142'" >F:\Qt\Qt5.12.9\5.12.9\msvc2017_64</QT5_DIR>
EditPlus编辑器分别打开about.cpp和fontlistmodel.cpp,把编码修改为UTF-8 + BOM。
F:\tmp-source\qt-hmi\scribus\scribus-1.5.6.1\scribus\fontlistmodel.cpp
F:\tmp-source\qt-hmi\scribus\scribus-1.5.6.1\scribus\ui\about.cpp
最后打开【源码】工程文件编译
F:\Software\tmp-source\qt-hmi\scribus\scribus-1.5.6.1\win32\msvc2019\Scribus.sln
4、插件编译如果报错,不理会,注释掉
F:\Software\tmp-source\qt-hmi\scribus\scribus-1.5.6.1\scribus\plugins\gettext\markdownim\markdownim.cpp
5、Debug生成的exe目标路径在:
F:\Software\tmp-source\qt-hmi\scribus\Scribus-builds\Scribus-Debug-x64-v142
把文件夹F:\Software\tmp-source\qt-hmi\scribus\scribus-common-libs\python-3.7.9-amd64拷贝到F:\Software\tmp-source\qt-hmi\scribus\Scribus-builds\Scribus-Debug-x64-v142,修改文件夹名为“python”
把文件夹F:\Software\tmp-source\qt-hmi\scribus\scribus-1.5.x-libs-msvc2019\里面各个库的dll文件拷贝到F:\Software\tmp-source\qt-hmi\scribus\Scribus-builds\Scribus-Debug-x64-v142
6、大功告成!可以运行Scribus.exe!