软件官网

Scribus – Open Source Desktop Publishing

Scribus Wiki

Scribus Forums - Index 官方论坛

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.

Draw Freely | Inkscape

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!

桌面排版软件Scribus v1.5.5源码编译,使用VS2017+Qt5.12.7环境相关推荐

  1. 桌面排版软件Scribus v1.5.6.1软件流程笔记

    0.Scribus源码编译 桌面排版软件Scribus v1.5.5源码编译,使用VS2017+Qt5.12.7环境_libaineu2004的博客-CSDN博客 1.程序主要文件与源文件执行流程 F ...

  2. FreeCAD v0.19源码编译与VS2017+Qt5环境搭建

    FreeCAD v0.19源码编译与VS2017+Qt5环境搭建_$firecat全宏的代码足迹$-CSDN博客一.环境准备VS2017,x64cmake-3.14.5-win64-x64.msiFr ...

  3. linux系统安装yum教程,Linux基本教程:Linux软件安装之Yum及源码编译安装

    一.Yum软件包管理 1.准备Yum软件仓库 1)Yum机制概述 Yum,Yellowdog Updater Modified 基于RPM包构建的软件更新机制 自动解决软件包依赖关系 所有软件包由集中 ...

  4. Wondow10 编译 Wireshark 源码(Windows10 + Vs2019 +Qt5.12)

    1.编译环境 Windows10 + Vs2019 Qt5.12 Python3 2.官方教程 wireshark提供windows平台的编译方法,点此查看 3.遇到的问题 3.1 cmake错误 理 ...

  5. 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...

  6. CentOS 7.6源码编译安装gluster 6.1

    CentOS 7.6源码编译安装gluster 6.1 一.测试目的 测试使用源1. 码编译进行gluster集群的安装配置: 2. 测试使用源码编译生成RPM包进行gluster集群的安装配置: 二 ...

  7. mac版源码编译安装mysql

    mac版源码编译安装mysql 一.基础环境 1.清理环境(清理系统自带的Mariadb和boost) CentOS 7 版本的系统默认自带安装了MariaDB,需要先清理. ##查询已安装的mari ...

  8. FLANN (1.9.2)源码编译

    文章目录 FLANN (v1.9.2) 源码编译 源码获取 编译lz4 编译FLANN 简便方法 复杂方法 最后 FLANN (v1.9.2) 源码编译 源码获取 liblz4 FLANN 编译lz4 ...

  9. git安装 perl ubuntu_【Git】Linux Ubuntu——源码编译安装Git 2.x 版本

    Git是一个开源的分布式版本控制系统,可以有效,高速的处理从很小到非常大的项目版本管理.Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持. ...

最新文章

  1. vue---进行post和get请求
  2. ros自带package在哪里_【ROS】创建ROS功能包(ROS package)
  3. C#开源磁盘/内存缓存引擎
  4. Qt字符串与整形转换
  5. [蓝桥杯2015决赛]积分之迷-枚举(水题)
  6. 函数的凹凸性证明_理解图灵机和递归函数的等价性证明
  7. 你有什么办法可以让摄影的模特又高又美?
  8. 每日两道前端面试题20190226
  9. Spring AOP的日志记录
  10. 史**_python保存为txt
  11. Python基本数据类型(列表)
  12. Tensorspace一款神奇的神经网络可视化应用
  13. Asp.net服务器端控件替换客户端控件
  14. DIY手动定制一个属于自己的软件安装管理器工具盘[一]
  15. 树莓派 wiringpi 读取引脚_树莓派驱动的无人驾驶开发记录--驱动电机
  16. 伺服舵机匀加速和匀减速运动Demo
  17. 步进电机基础(2.6)-直线步进电机
  18. Android音频架构
  19. check(check out)
  20. 微信小程序和百度小程序的登录 wx.login() swan.login() , 以及存在的问题处理

热门文章

  1. java实战:邮件群发推广微信公众号(二),内含java操作excel及java操作mysql
  2. 【随手记】PHP获取png图片主色系各色系色块RGB值
  3. tomcat内存溢出处理
  4. linux命令ps -ef输出结果,Linux ps 命令
  5. method ID not in [0, 0xffff]: 65536” error解决办法
  6. Android四大组件及其作用
  7. classpath是什么路径
  8. 鸟哥的Linux私房菜(基础版)第五章学习笔记
  9. 互联网金融系列-支付清算体系介绍-上
  10. MyBatis-Plus调用插入Insert()方法报错