ceb2Pdf.exe实现ceb文件转pdf,内网离线安装wine(手动编译32位)实现在centos(linux)上运行window程序exe程序,解决wine : Z:\xxx EXE格式无效

简介: 最近项目需要实现ceb文件在线预览,之前并没见过这格式的文件,一搜发现果然不简单,这破东西还不太好弄在线预览,经过查找发现只有windows版本的cebToPdf.exe程序可以转换成pdf再进行预览,但是我们服务器是centos(内网)啊,所以就有了该篇文章。

背景

最近项目需要实现ceb文件在线预览,之前并没见过这格式的文件,一搜发现果然不简单,这破东西还不太好弄在线预览,经过查找发现只有windows版本的cebToPdf.exe程序可以转换成pdf再进行预览,但是我们服务器是centos(内网)啊,所以就有了该篇文章。


cebToPdf.exe程序及其测试文件下载地址:https://download.csdn.net/download/baikunlong/86782073


wine我用的6.0,下载地址:https://download.csdn.net/download/baikunlong/86782559


1 外网机器操作

不想操作的可直接下我整理好的https://download.csdn.net/download/baikunlong/86782582

# 安装工具包,里面包含了repotrack(用于下载各种依赖)
yum -y install yum-utils


使用 repotrack 下载所需依赖

repotrack -p rpms libX11-devel freetype-devel zlib-devel libxcb-devel alsa-lib-devel.i686 libsndfile-devel.i686 readline-devel.i686 glib2.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 pulseaudio-libs-devel.i686 cmake audiofile-devel.i686 freeglut-devel.i686 lcms-devel.i686 libieee1284-devel.i686 openldap-devel.i686 unixODBC-devel.i686 sane-backends-devel.i686 fontforge libgphoto2-devel.i686 isdn4k-utils-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 libXxf86dga-devel.i686 libXxf86vm-devel.i686 giflib-devel.i686 cups-devel.i686 gsm-devel.i686 libv4l-devel.i686 fontpackages-devel ImageMagick-devel.i686 libX11-devel.i686 docbook-utils-pdf libtextcat tex-cm-lgc alsa-lib-devel audiofile-devel.i686 audiofile-devel cups-devel.i686 cups-devel dbus-devel.i686 dbus-devel fontconfig-devel.i686 fontconfig-devel freetype.i686 freetype-devel.i686 freetype-devel giflib-devel.i686 giflib-devel lcms-devel.i686 lcms-devel libICE-devel.i686 libICE-devel libjpeg-turbo-devel.i686 libjpeg-turbo-devel libpng-devel.i686 libpng-devel libSM-devel.i686 libSM-devel libusb-devel.i686 libusb-devel libX11-devel.i686 libX11-devel libXau-devel.i686 libXau-devel libXcomposite-devel.i686 libXcomposite-devel libXcursor-devel.i686 libXcursor-devel libXext-devel.i686 libXext-devel libXi-devel.i686 libXi-devel libXinerama-devel.i686 libXinerama-devel libxml2-devel.i686 libxml2-devel libXrandr-devel.i686 libXrandr-devel libXrender-devel.i686 libXrender-devel libxslt-devel.i686 libxslt-devel libXt-devel.i686 libXt-devel libXv-devel.i686 libXv-devel libXxf86vm-devel.i686 libXxf86vm-devel mesa-libGL-devel.i686 mesa-libGL-devel mesa-libGLU-devel.i686 mesa-libGLU-devel ncurses-devel.i686 ncurses-devel openldap-devel.i686 openldap-devel openssl-devel.i686 openssl-devel zlib-devel.i686 pkgconfig sane-backends-devel.i686 sane-backends-devel xorg-x11-proto-devel glibc-devel.i686 prelink fontforge flex bison libstdc++-devel.i686 pulseaudio-libs-devel.i686 gnutls-devel.i686 libgphoto2-devel.i686 isdn4k-utils-devel.i686 gsm-devel.i686 samba-winbind libv4l-devel.i686 cups-devel.i686 libtiff-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 gettext-devel.i686


-p rpms意思为下载的依赖全部放在当前目录下的rpms目录下,如没有rpms目录会自动创建


其中lcms-devel.i686用了阿里和网易的yum源都没找到,索性不管了,没有影响后续使用。


这里说个下载可能会遇到的网络问题,虚拟机的网络明明很畅通,但是死活就总是超时,然后重新执行命令,下好几个又超时,虽然在坚持不懈的努力下还是下完了,但是途中我在自己的阿里云服务器上面去下,嗖嗖嗖的就下完了。。。


最后虚拟机下完了有951个文件,阿里云服务器下完后918个文件,不过因为阿里云的先下完,我就直接用的918这个,附件地址:https://download.csdn.net/download/baikunlong/86782582

16bef43e208f4583a7e7ececc65149a6.png

02736467ae43402a9e19859acdc9bd7c.png


2 内网离线安装wine

把下载好的wine压缩包,rpm依赖包,传到内网服务器

所有rpm进行安装:

tar -zxf wine-rpms.tgz
cd wine/
rpm -ivh *.rpm --force --nodeps


wine安装:

xz -d wine-6.0.tar.xz
tar -xf wine-6.0
cd wine-6.0
mkdir wine32
cd wine32
../configure --enable-win32 # 这里一定是32位
make && make install


3 运行测试 && 报错解决

安装完成后,我们可以直接执行下面命令查看版本

wine --version


然后开始转换ceb文件测试。如果你之前安装过wine,那么很可能会不幸运和我一样遇到如下报错:

wine: '/root/.wine' is a 64-bit installation, it cannot be used with a 32-bit


这时我们要清理一下该文件:

rm -rf ~/.wine


然后再次执行:

b234932c3d874c9ea3173b591ab97a16.png

可以看到已经转换成功了,该pdf也是打开正常的。


在最后说一下为啥要安装32位的wine和为啥安装了32位wine后我却用的64文件夹下的exe。


1 为啥要安装32位的wine

因为两个ceb2pdf.exe都是32位的:

a747b6f10c354f7382b2c8ac1dda6e1a.png

所以之前只要你是在线yum install wine的,肯定报错wine : Z:\xxx EXE格式无效,对比两个文件夹,就dll大小不一样,exe其实是一样的。


2 为啥安装了32位wine后我却用的64文件夹下的exe

因为执行32下的exe报dll找不到。。。


结尾

别看没多少内容,但是花了两天踩坑。。。

目录
相关文章
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
1079 65
|
Linux
使用CentOS格式化硬盘或U盘为NTFS格式的方法
以上就是整个过程,如同拆解一个复杂的机器,然后按照自己的需要重新装配,你把数据的世界塑造成你需要的样子。你不只是一个简单的用户,你是一个创造者。
991 70
|
Linux
Linux命令的基本格式解析
总的来说,Linux命令的基本格式就像一个食谱,它可以指导你如何使用你的计算机。通过学习和实践,你可以成为一个真正的“计算机厨师”,创造出各种“美味”的命令。
491 15
|
人工智能 文字识别 自然语言处理
Vision Parse:开源的 PDF 转 Markdown 工具,结合视觉语言模型和 OCR,识别文本和表格并保持原格式
Vision Parse 是一款开源的 PDF 转 Markdown 工具,基于视觉语言模型,能够智能识别和提取 PDF 中的文本和表格,并保持原有格式和结构。
2564 19
Vision Parse:开源的 PDF 转 Markdown 工具,结合视觉语言模型和 OCR,识别文本和表格并保持原格式
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
2099 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
5776 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
959 4
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
Linux Python Windows
Python PDF文件转Word格式,只需要3秒(附打包)
Python PDF文件转Word格式,只需要3秒(附打包)
798 3
Python PDF文件转Word格式,只需要3秒(附打包)
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
1881 3
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1974 3