100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > libreoffice将world excel等文件转化为pdf文件

libreoffice将world excel等文件转化为pdf文件

时间:2023-07-10 20:54:47

相关推荐

libreoffice将world excel等文件转化为pdf文件

我是用的linux系统,Centos;

第一步:需要下载libreoffice包,选择你直接想要的版本;

下载地址:https://zh-/download/libreoffice-still/

第二步:将下载好的文件上传到服务器,自己想上传到那个目录就上传到那个目录,我是在root目录下

命令:rz

此命令需要安装:yum install -y lrzsz

解压:tar -zxvf Libreoffice_5.4.7_Linux_x86-64_rpm.tar.gz

进入:cd Libreoffice_5.4.7.2_linux_x86-64_rpm/RPMS/

里面有许多 xxxx.rmp文件

将他们全部安装yum install *.rpm

第三步:测试是否安装成功

上传一个1.docx的world文档

使用命令:libreoffice5.4--invisible --convert-to pdf 1.docx //最好加上版本号,不然有可能报找不到该命令

然后使用命令 ll 查看是否生成 1.pdf文件,可以使用sz命令下载到本地查看

文件有可能出现乱码

第四步:解决乱码

可以直接在本地电脑上面C:\Windows\Fonts 里面找语言包,也可以直接在网上下载

打包压缩上传到服务器 /usr/share/fonts/,重启服务器或者 sudo fc-cache -fv 刷新即可

PHP代码生成将文件转化成pdf

*linux 利用 libreoffice 将world转化为pdf文件* $pdfPathpdf 文件保存的目录* $pdfHomePath 项目目录或项目中pdf保存的目录* $doc_path word文件路径(可以是world,excel表格,TXT文档)** 注意文件名最好不要带有中文** */function worldPdf($pdfPath,$pdfHomePath,$doc_path){if(!is_dir($pdfPath)){mkdir($pdfPath,0777,true);} //最好加上版本号,不然可能会出错$str=exec("export HOME={$pdfHomePath} && libreoffice5.4 --invisible --convert-to pdf {$doc_path}");//执行转化命令if(empty($str)){return 'false';}else{return 'true';}}

执行此命令可能会报警告:Warning: exec() has been disabled for security reasons

进入php.ini文件,查找 disable_functions 将等号后面的 exec去掉即可,如果还是不行,重启服务器

前端实现pdf预览,使用jquery.media.js

html代码:

<html>

<head>

<meta charset="utf-8">

<meta name="renderer" content="webkit|ie-comp|ie-stand">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<script src="/jquery-3.0.0.min.js"></script>

<script type="text/javascript" src="./jquery.media.js"></script>

</head>

<body >

<div id="handout_wrap_inner" style="height:500px;">

</div>

</body>

<script>

$(function(){

$('#handout_wrap_inner').media({

width: '300px;',

height: '800px;',

autoplay: true,

src:'./04403180021102461312.pdf',

});

})

</script>

</html>

jquery.media.js

/*

* jQuery Media Plugin for converting elements into rich media content.

*

* Examples and documentation at: /jquery/media/

* Copyright (c) - M. Alsup

* Dual licensed under the MIT and GPL licenses:

* /licenses/mit-license.php

* /licenses/gpl.html

*

* @author: M. Alsup

* @version: 0.99 (05-JUN-)

* @requires jQuery v1.1.2 or later

* $Id: jquery.media.js 2460 -07-23 02:53:15Z malsup $

*

* Supported Media Players:

* - Flash

* - Quicktime

* - Real Player

* - Silverlight

* - Windows Media Player

* - iframe

*

* Supported Media Formats:

* Any types supported by the above players, such as:

* Video: asf, avi, flv, mov, mpg, mpeg, mp4, qt, smil, swf, wmv, 3g2, 3gp

* Audio: aif, aac, au, gsm, mid, midi, mov, mp3, m4a, snd, rm, wav, wma

* Other: bmp, html, pdf, psd, qif, qtif, qti, tif, tiff, xaml

*

* Thanks to Mark Hicken and Brent Pedersen for helping me debug this on the Mac!

* Thanks to Dan Rossi for numerous bug reports and code bits!

* Thanks to Skye Giordano for several great suggestions!

* Thanks to Richard Connamacher for excellent improvements to the non-IE behavior!

*/

/*global SWFObject alert Sys */

/*jshint forin:false */

;(function($) {

"use strict";

var mode = document.documentMode || 0;

var msie = /MSIE/.test(navigator.userAgent);

var lameIE = msie && (/MSIE (6|7|8)\.0/.test(navigator.userAgent) || mode < 9);

/**

* Chainable method for converting elements into rich media.

*

* @param options

* @param callback fn invoked for each matched element before conversion

* @param callback fn invoked for each matched element after conversion

*/

$.fn.media = function(options, f1, f2) {

if (options == 'undo') {

return this.each(function() {

var $this = $(this);

var html = $this.data('media.origHTML');

if (html)

$this.replaceWith(html);

});

}

return this.each(function() {

if (typeof options == 'function') {

f2 = f1;

f1 = options;

options = {};

}

var o = getSettings(this, options);

// pre-conversion callback, passes original element and fully populated options

if (typeof f1 == 'function') f1(this, o);

var r = getTypesRegExp();

var m = r.exec(o.src.toLowerCase()) || [''];

var fn;

if (o.type)

m[0] = o.type;

else

m.shift();

for (var i=0; i < m.length; i++) {

fn = m[i].toLowerCase();

if (isDigit(fn[0])) fn = 'fn' + fn; // fns can't begin with numbers

if (!$.fn.media[fn])

continue; // unrecognized media type

// normalize autoplay settings

var player = $.fn.media[fn+'_player'];

if (!o.params) o.params = {};

if (player) {

var num = player.autoplayAttr == 'autostart';

o.params[player.autoplayAttr || 'autoplay'] = num ? (o.autoplay ? 1 : 0) : o.autoplay ? true : false;

}

var $div = $.fn.media[fn](this, o);

$div.css('backgroundColor', o.bgColor).width(o.width);

if (o.canUndo) {

var $temp = $('<div></div>').append(this);

$div.data('media.origHTML', $temp.html()); // store original markup

}

// post-conversion callback, passes original element, new div element and fully populated options

if (typeof f2 == 'function') f2(this, $div[0], o, player.name);

break;

}

});

};

/**

* Non-chainable method for adding or changing file format / player mapping

* @name mapFormat

* @param String format File format extension (ie: mov, wav, mp3)

* @param String player Player name to use for the format (one of: flash, quicktime, realplayer, winmedia, silverlight or iframe

*/

$.fn.media.mapFormat = function(format, player) {

if (!format || !player || !$.fn.media.defaults.players[player]) return; // invalid

format = format.toLowerCase();

if (isDigit(format[0])) format = 'fn' + format;

$.fn.media[format] = $.fn.media[player];

$.fn.media[format+'_player'] = $.fn.media.defaults.players[player];

};

// global defautls; override as needed

$.fn.media.defaults = {

standards: true, // use object tags only (no embeds for non-IE browsers)

canUndo: true, // tells plugin to store the original markup so it can be reverted via: $(sel).mediaUndo()

width: 400,

height: 400,

autoplay: 0, // normalized cross-player setting

bgColor: '#ffffff', // background color

params: { wmode: 'transparent'}, // added to object element as param elements; added to embed element as attrs

attrs: {}, // added to object and embed elements as attrs

flvKeyName: 'file', // key used for object src param (thanks to Andrea Ercolino)

flashvars: {}, // added to flash content as flashvars param/attr

flashVersion: '7', // required flash version

expressInstaller: null, // src for express installer

// default flash video and mp3 player (@see: /?item=Flash_Media_Player)

flvPlayer: 'mediaplayer.swf',

mp3Player: 'mediaplayer.swf',

// @see /en-us/library/bb412401.aspx

silverlight: {

inplaceInstallPrompt: 'true', // display in-place install prompt?

isWindowless: 'true', // windowless mode (false for wrapping markup)

framerate: '24', // maximum framerate

version: '0.9', // Silverlight version

onError: null, // onError callback

onLoad:null, // onLoad callback

initParams: null, // object init params

userContext: null // callback arg passed to the load callback

}

};

// Media Players; think twice before overriding

$.fn.media.defaults.players = {

flash: {

name: 'flash',

title: 'Flash',

types: 'flv,mp3,swf',

mimetype: 'application/x-shockwave-flash',

pluginspage: '/go/getflashplayer',

ieAttrs: {

classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',

type: 'application/x-oleobject',

codebase: '/pub/shockwave/cabs/flash/swflash.cab#version=' + $.fn.media.defaults.flashVersion

}

},

quicktime: {

name: 'quicktime',

title: 'QuickTime',

mimetype: 'video/quicktime',

pluginspage: '/quicktime/download/',

types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',

ieAttrs: {

classid: 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',

codebase: '/qtactivex/qtplugin.cab'

}

},

realplayer: {

name: 'real',

title: 'RealPlayer',

types: 'ra,ram,rm,rpm,rv,smi,smil',

mimetype: 'audio/x-pn-realaudio-plugin',

pluginspage: '/player/',

autoplayAttr: 'autostart',

ieAttrs: {

classid: 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'

}

},

winmedia: {

name: 'winmedia',

title: 'Windows Media',

types: 'asx,asf,avi,wma,wmv',

mimetype: isFirefoxWMPPluginInstalled() ? 'application/x-ms-wmp' : 'application/x-mplayer2',

pluginspage: '/Windows/MediaPlayer/',

autoplayAttr: 'autostart',

oUrl: 'url',

ieAttrs: {

classid: 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',

type: 'application/x-oleobject'

}

},

// special cases

img: {

name: 'img',

title: 'Image',

types: 'gif,png,jpg'

},

iframe: {

name: 'iframe',

types: 'html,pdf'

},

silverlight: {

name: 'silverlight',

types: 'xaml'

}

};

//

// everything below here is private

//

// detection script for FF WMP plugin (/experiments/wmp_play.html)

// (hat tip to Mark Ross for this script)

function isFirefoxWMPPluginInstalled() {

var plugs = navigator.plugins || [];

for (var i = 0; i < plugs.length; i++) {

var plugin = plugs[i];

if (plugin['filename'] == 'np-mswmp.dll')

return true;

}

return false;

}

var counter = 1;

for (var player in $.fn.media.defaults.players) {

var types = $.fn.media.defaults.players[player].types;

$.each(types.split(','), function(i,o) {

if (isDigit(o[0])) o = 'fn' + o;

$.fn.media[o] = $.fn.media[player] = getGenerator(player);

$.fn.media[o+'_player'] = $.fn.media.defaults.players[player];

});

}

function getTypesRegExp() {

var types = '';

for (var player in $.fn.media.defaults.players) {

if (types.length) types += ',';

types += $.fn.media.defaults.players[player].types;

}

return new RegExp('\\.(' + types.replace(/,/ig,'|') + ')\\b');

}

function getGenerator(player) {

return function(el, options) {

return generate(el, options, player);

};

}

function isDigit(c) {

return '0123456789'.indexOf(c) > -1;

}

// flatten all possible options: global defaults, meta, option obj

function getSettings(el, options) {

options = options || {};

var a, n;

var $el = $(el);

var cls = el.className || '';

// support metadata plugin (v1.0 and v2.0)

var meta = $.metadata ? $el.metadata() : $.meta ? $el.data() : {};

meta = meta || {};

var w = meta.width || parseInt(((cls.match(/\bw:(\d+)/)||[])[1]||0),10) || parseInt(((cls.match(/\bwidth:(\d+)/)||[])[1]||0),10);

var h = meta.height || parseInt(((cls.match(/\bh:(\d+)/)||[])[1]||0),10) || parseInt(((cls.match(/\bheight:(\d+)/)||[])[1]||0),10);

if (w) meta.width = w;

if (h) meta.height = h;

if (cls) meta.cls = cls;

// crank html5 style data attributes

var dataName = 'data-';

for (var i=0; i < el.attributes.length; i++) {

a = el.attributes[i], n = $.trim(a.name);

var index = n.indexOf(dataName);

if (index === 0) {

n = n.substring(dataName.length);

meta[n] = a.value;

}

}

a = $.fn.media.defaults;

var b = options;

var c = meta;

var p = { params: { bgColor: options.bgColor || $.fn.media.defaults.bgColor } };

var opts = $.extend({}, a, b, c);

$.each(['attrs','params','flashvars','silverlight'], function(i,o) {

opts[o] = $.extend({}, p[o] || {}, a[o] || {}, b[o] || {}, c[o] || {});

});

if (typeof opts.caption == 'undefined') opts.caption = $el.text();

// make sure we have a source!

opts.src = opts.src || $el.attr('href') || $el.attr('src') || 'unknown';

return opts;

}

//

// Flash Player

//

// generate flash using SWFObject library if possible

$.fn.media.swf = function(el, opts) {

var f, p;

if (!window.SWFObject && !window.swfobject) {

// roll our own

if (opts.flashvars) {

var a = [];

for (f in opts.flashvars)

a.push(f + '=' + opts.flashvars[f]);

if (!opts.params) opts.params = {};

opts.params.flashvars = a.join('&');

}

return generate(el, opts, 'flash');

}

var id = el.id ? (' id="'+el.id+'"') : '';

var cls = opts.cls ? (' class="' + opts.cls + '"') : '';

var $div = $('<div' + id + cls + '>');

// swfobject v2+

if (window.swfobject) {

$(el).after($div).appendTo($div);

if (!el.id) el.id = 'movie_player_' + counter++;

// replace el with swfobject content

window.swfobject.embedSWF(opts.src, el.id, opts.width, opts.height, opts.flashVersion,

opts.expressInstaller, opts.flashvars, opts.params, opts.attrs);

}

// swfobject < v2

else {

$(el).after($div).remove();

var so = new SWFObject(opts.src, 'movie_player_' + counter++, opts.width, opts.height, opts.flashVersion, opts.bgColor);

if (opts.expressInstaller) so.useExpressInstall(opts.expressInstaller);

for (p in opts.params)

if (p != 'bgColor') so.addParam(p, opts.params[p]);

for (f in opts.flashvars)

so.addVariable(f, opts.flashvars[f]);

so.write($div[0]);

}

if (opts.caption) $('<div>').appendTo($div).html(opts.caption);

return $div;

};

// map flv and mp3 files to the swf player by default

$.fn.media.flv = $.fn.media.mp3 = function(el, opts) {

var src = opts.src;

var player = /\.mp3\b/i.test(src) ? opts.mp3Player : opts.flvPlayer;

var key = opts.flvKeyName;

src = encodeURIComponent(src);

opts.src = player;

opts.src = opts.src + '?'+key+'=' + (src);

var srcObj = {};

srcObj[key] = src;

opts.flashvars = $.extend({}, srcObj, opts.flashvars );

return $.fn.media.swf(el, opts);

};

//

// Silverlight

//

$.fn.media.xaml = function(el, opts) {

if (!window.Sys || !window.Sys.Silverlight) {

if ($.fn.media.xaml.warning) return;

$.fn.media.xaml.warning = 1;

alert('You must include the Silverlight.js script.');

return;

}

var props = {

width: opts.width,

height: opts.height,

background: opts.bgColor,

inplaceInstallPrompt: opts.silverlight.inplaceInstallPrompt,

isWindowless: opts.silverlight.isWindowless,

framerate: opts.silverlight.framerate,

version: opts.silverlight.version

};

var events = {

onError: opts.silverlight.onError,

onLoad: opts.silverlight.onLoad

};

var id1 = el.id ? (' id="'+el.id+'"') : '';

var id2 = opts.id || 'AG' + counter++;

// convert element to div

var cls = opts.cls ? (' class="' + opts.cls + '"') : '';

var $div = $('<div' + id1 + cls + '>');

$(el).after($div).remove();

Sys.Silverlight.createObjectEx({

source: opts.src,

initParams: opts.silverlight.initParams,

userContext: opts.silverlight.userContext,

id: id2,

parentElement: $div[0],

properties: props,

events: events

});

if (opts.caption) $('<div>').appendTo($div).html(opts.caption);

return $div;

};

//

// generate object/embed markup

//

function generate(el, opts, player) {

var $el = $(el);

var o = $.fn.media.defaults.players[player];

var a, key, v;

if (player == 'iframe') {

o = $('<iframe' + ' width="' + opts.width + '" height="' + opts.height + '" >');

o.attr('src', opts.src);

o.css('backgroundColor', o.bgColor);

}

else if (player == 'img') {

o = $('<img>');

o.attr('src', opts.src);

if (opts.width)

o.attr('width', opts.width);

if (opts.height)

o.attr('height', opts.height);

o.css('backgroundColor', o.bgColor);

}

else if (lameIE) {

a = ['<object width="' + opts.width + '" height="' + opts.height + '" '];

for (key in opts.attrs)

a.push(key + '="'+opts.attrs[key]+'" ');

for (key in o.ieAttrs || {}) {

v = o.ieAttrs[key];

if (key == 'codebase' && window.location.protocol == 'https:')

v = v.replace('http','https');

a.push(key + '="'+v+'" ');

}

a.push('></ob'+'ject'+'>');

var p = ['<param name="' + (o.oUrl || 'src') +'" value="' + opts.src + '">'];

for (key in opts.params)

p.push('<param name="'+ key +'" value="' + opts.params[key] + '">');

o = document.createElement(a.join(''));

for (var i=0; i < p.length; i++)

o.appendChild(document.createElement(p[i]));

}

else if (opts.standards) {

// Rewritten to be standards compliant by Richard Connamacher

a = ['<object type="' + o.mimetype +'" width="' + opts.width + '" height="' + opts.height +'"'];

if (opts.src) a.push(' data="' + opts.src + '" ');

if (msie) {

for (key in o.ieAttrs || {}) {

v = o.ieAttrs[key];

if (key == 'codebase' && window.location.protocol == 'https:')

v = v.replace('http','https');

a.push(key + '="'+v+'" ');

}

}

a.push('>');

a.push('<param name="' + (o.oUrl || 'src') +'" value="' + opts.src + '">');

for (key in opts.params) {

if (key == 'wmode' && player != 'flash') // FF3/Quicktime borks on wmode

continue;

a.push('<param name="'+ key +'" value="' + opts.params[key] + '">');

}

// Alternate HTML

a.push('<div><p><strong>'+o.title+' Required</strong></p><p>'+o.title+' is required to view this media. <a href="'+o.pluginspage+'">Download Here</a>.</p></div>');

a.push('</ob'+'ject'+'>');

}

else {

a = ['<embed width="' + opts.width + '" height="' + opts.height + '" style="display:block"'];

if (opts.src) a.push(' src="' + opts.src + '" ');

for (key in opts.attrs)

a.push(key + '="'+opts.attrs[key]+'" ');

for (key in o.eAttrs || {})

a.push(key + '="'+o.eAttrs[key]+'" ');

for (key in opts.params) {

if (key == 'wmode' && player != 'flash') // FF3/Quicktime borks on wmode

continue;

a.push(key + '="'+opts.params[key]+'" ');

}

a.push('></em'+'bed'+'>');

}

// convert element to div

var id = el.id ? (' id="'+el.id+'"') : '';

var cls = opts.cls ? (' class="' + opts.cls + '"') : '';

var $div = $('<div' + id + cls + '>');

$el.after($div).remove();

if (lameIE || player == 'iframe' || player == 'img')

$div.append(o);

else

$div.html(a.join(''));

if (opts.caption)

$('<div>').appendTo($div).html(opts.caption);

return $div;

}

})(jQuery);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。