1

以下は機能し、に変換/tmp/file.docxされ/tmp/file.pdfます。

libreoffice3.5. --headless --convert-to pdf --outdir /tmp /tmp/file.docx

https://www.mysite.com/getfile.php?id=123 (docx ファイルを返す)を変換して、 /tmp/file_123.pdf. wget、パイピング、および入出力リダイレクトが必要になると思います。

ありがとうございました

編集 - zebediah49 の投稿への応答

> libreoffice3.5 --headless --convert-to pdf --outdir /tmp <(wget -O - "http://www.mysite.com/demo/lib/m.php?cid=9&controller=detail&task=displayDocument&id=56&x=fc872c033770e3bc8706e6a90bcdff02")

--2012-07-03 14:09:03--  http://www.mysite.com/demo/lib/m.php?cid=9&controller=detail&task=displayDocument&id=56&x=fc872c033770e3bc8706e6a90bcdff02
Resolving www.mysite.com... 99.999.999.999
Connecting to www.mysite.com|99.999.999.999|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 29696 (29K) [application/msword]
Saving to: `STDOUT'

     0K .......... .......... .........                       100% 14.2M=0.002s

2012-07-03 14:09:03 (14.2 MB/s) - `-' saved [29696/29696]

編集 - rekire の最初のソリューションへの応答

> wget http://www.mysite.com/demo/lib/m.php?cid=9&controller=detail&task=displayDocument&id=56&x=fc872c033770e3bc8706e6a90bcdff02 --no-check-certificate -O /tmp/file.docx
--2012-07-03 14:34:12--  http://www.mysite.com/demo/lib/m.php?cid=9
Resolving www.mysite.com... bash: --no-check-certificate: command not found
99.999.999.999
Connecting to www.mysite.com|99.999.999.999|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1236 (1.2K) [text/html]
Saving to: `m.php?cid=9.8'

     0K .                                                     100% 42.1M=0s

2012-07-03 14:34:12 (42.1 MB/s) - `m.php?cid=9.8' saved [1236/1236]

> libreoffice3.5 --headless --convert-to pdf --outdir /tmp /tmp/file.docx

編集 - rekire の 2 番目のソリューションへの応答

> TMPFILE=`mktemp -u`
> wget http://www.mysite.com/demo/lib/m.php?cid=9&controller=detail&task=displayDocument&id=56&x=fc872c033770e3bc8706e6a90bcdff02 --no-check-certificate -O $TMPFILE
--2012-07-03 14:24:09--  http://www.mysite.com/demo/lib/m.php?cid=9
Resolving www.mysite.com... bash: --no-check-certificate: command not found
99.999.999.999
Connecting to www.mysite.com|99.999.999.999|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1236 (1.2K) [text/html]
Saving to: `m.php?cid=9.5'

     0K .                                                     100% 42.1M=0s

2012-07-03 14:24:09 (42.1 MB/s) - `m.php?cid=9.5' saved [1236/1236]


> libreoffice3.5 --headless --convert-to pdf --outdir /tmp $TMPFILE
4

2 に答える 2

3

1行が必要な場合は、リダイレクトを使用して実行できます

libreoffice3.5. --headless --convert-to pdf --outdir /tmp <(wget -O - "https://www.mysite.com/getfile.php?id=123")

編集:

を使用すると、libreofficeが名前の保存を許可しない可能性があるのではないかと心配してい--convert-toました。必要に応じて、一時ディレクトリを使用するバージョンを次に示しますが、出力を現在のディレクトリに保存します(/tmpを調べて自分のものを見つけたくないと思います...

TEMP_DIR=`mktemp -d`
wget -P "$TEMP_DIR" "https://www.mysite.com/getfile.php?id=123"
libreoffice3.5. --headless --convert-to pdf --outdir ./ "$TEMD_DIR/*"
rm -r "$TEMP_DIR"

スクリプト内にあるかのようにフォーマットしています。自分で実行しているだけの場合は、現在のディレクトリで何かを壊したり、すべてを実行したりすることはないので、

wget "https://www.mysite.com/getfile.php?id=123"
libreoffice3.5. --headless --convert-to pdf "getfile.php?id=123"
于 2012-07-03T20:44:05.733 に答える
2

コマンドに基づいて、この2行が機能するはずです:

wget https://www.mysite.com/getfile.php?id=123 --no-check-certificate -O /tmp/file.docx
libreoffice3.5. --headless --convert-to pdf:outfile.pdf --outdir /tmp /tmp/file.docx

または、zebediah49 が一意のファイル名で言ったように:

TMPFILE=`mktemp -u`
wget https://www.mysite.com/getfile.php?id=123 --no-check-certificate -O $TMPFILE
libreoffice3.5. --headless --convert-to pdf:outfile.pdf --outdir /tmp $TMPFILE

注意:出力ファイルは実行ごとに上書きされるため、出力ファイルにも一意の名前を使用する必要があります。

于 2012-07-03T20:41:20.343 に答える