三段式结构,左右两边少用iframe,左边菜单栏目自动生成,且点击项目加上active激活;右边为具体内容。
顶部的信息栏为顶部设置,可以分页分别设计,也可以自动生成,目前自动生成的意愿较大。
按照adminlte的设计来,因为是bootstrap4,与3改动不到,直接按照项目来!
toPDF基于ThinkCMS和libreoffice的在线office转换平台
topdf
github:https://github.com/maysrp/topdf
准备
office文档在线转换pdf平台
基于ThinkPHP5.1下的ThinkCMS5.1开发,只有word,excel,ppt,txt,文本在线转pdf的功能。
Nginx php>7.1 mysql
libreoffice python3
推荐安装lnmp.org一键安装包,lnmp安装完成后在php中添加fileinfo,之后按照以下命令按照libreoffice和pymysql
apt-get update
apt-get install libreoffice python3-pip
pip3 install pymysql
字体安装
因为libreoffice转码时候需要字体,不然中文会全部乱码
mkdir /usr/share/fonts/Fonts
上传字体到这个目录(/usr/share/fonts/Fonts),字体哪里找?
你的 C:\Windows\Fonts 下面的字体你上传几个就好了,推荐雅黑,宋体,黑体
Nginx
nginx修改fastcgi.conf配置
lnmp下该文件在
/usr/local/nginx/conf/fastcgi.conf
把其中的
#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";
Nginx 配置
修好你的nginx的网站配置文件
vim /usr/local/nginx/conf/vhost/你的网站.conf
在root那行,最后添加上/public,如下的代码形式,定义web的根目录为public
root /home/wwwroot/www.yunbt.net/public;
安装
网站安装
下载该项目文件pdfgaoji.tgz到你的网站目录上并且解压,给予data目录 和public/upload , public/download , public/plugins , public/themes , 权限为777
转到你网站的根目录中的python目录下,执行python3 install.py
按照提示依次输入数据库用户名,数据库名,数据库密码,即可完成网站的安装。
转码服务端安装
修改python目录下的 run.py和screen.py 中13行代码 设置为你的网站的根目录。
webdir="/home/wwwroot/pdf.gaoji.me/"
run.py使用crontab 去每分钟执行一次去处理文档的转码。
screen.py是使用screen来保持进程,可以做到按秒处理。
推荐使用screen
screen -dmS pdf python3 screen.py
大功告成
后台
office文件的PDF转换
使用libreoffice的命令可以将word,excel,ppt转换为PDF,命令也很简单:
libreoffice --convert-to pdf 输入文件 --outdir 输出文件目录
输入文件可以为word,excel ,ppt之类的office文件,顺道用ThinkCMF写了个在线转换
redPDF
问题还是宽带问题,租不起国内的服务器,因为涉及到上传和下载,说以上下宽带都要大,国内20M的镇江电信普遍都要200+每月,因为涉及到上传word子类的office文件,所以至少10M以上,否则上传等待时间过久。
迷茫
爬虫 方面 有过一些经验
yunbt 或者视频网站方面
数据分析
AI
PHP链接亚马逊S3/MinIO
<?php
// 使用Composer autoloader引入SDK
date_default_timezone_set('America/Los_Angeles');
require 'vendor/autoload.php';
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1',
'endpoint' => 'http://localhost:9000',
'use_path_style_endpoint' => true,
'credentials' => [
'key' => 'YOUR-ACCESSKEYID',
'secret' => 'YOUR-SECRETACCESSKEY',
],
]);
// 发送PutObject请求并获得result对象
$insert = $s3->putObject([
'Bucket' => 'testbucket',
'Key' => 'testkey',
'Body' => 'Hello from MinIO!!'
]);
// 下载文件的内容
$retrive = $s3->getObject([
'Bucket' => 'testbucket',
'Key' => 'testkey',
'SaveAs' => 'testkey_local'
]);
// 通过索引到结果对象来打印结果的body。
echo $retrive['Body'];
<?php
// 从client中获得一个commad对象
$command = $s3->getCommand('GetObject', [
'Bucket' => 'testbucket',
'Key' => 'testkey'
]);
// 获得一个10分钟有效期的pre-signed URL
$presignedRequest = $s3->createPresignedRequest($command, '+10 minutes');
// 获得presigned-url
$presignedUrl = (string) $presignedRequest->getUri();
查看SDK Amazon S3
https://packagist.org/packages/aws/aws-sdk-php
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html