标签: unoconv

AWS Lambda Alpine Python 容器显示 IMAGE Launch 错误 exec 格式错误

我正在编写一个 Lambda 函数,使用 unoconv 和 libreoffice 将 excel 文件转换为 PDF,为此我使用 alpine 基础图像。Dockerfile 如下。

\n
# Define global args\nARG FUNCTION_DIR="/home/app/"\nARG RUNTIME_VERSION="3.9"\nARG DISTRO_VERSION="3.12"\n\n# Stage 1 - bundle base image + runtime\n# Grab a fresh copy of the image and install GCC\nFROM python:${RUNTIME_VERSION}-alpine${DISTRO_VERSION} AS python-alpine\n# Install GCC (Alpine uses musl but we compile and link dependencies with GCC)\nRUN apk add --no-cache \\\n    libstdc++\n\n# Stage 2 - build function and dependencies\nFROM python-alpine AS build-image\n# Install aws-lambda-cpp build dependencies\nRUN apk add --no-cache \\\n    build-base \\\n …
Run Code Online (Sandbox Code Playgroud)

python docker aws-lambda unoconv alpine-linux

14
推荐指数
3
解决办法
2万
查看次数

PHP exec失败没有错误

我想自动导出.odf文件到.pdf.

我尝试了一种叫做unoconv的东西.

在Windows命令提示符下键入时,一切都是正确的.

>"C:\Program Files (x86)\OpenOffice 4\program\python.exe" "C:\Program Files (x86)\OpenOffice 4\program\unoconv-master\unoconv" -f pdf path/to/myfile.odt
Run Code Online (Sandbox Code Playgroud)

一旦在PHP脚本中使用,就不再有用了.没有错误出现.

exec('"C:\Program Files (x86)\OpenOffice 4\program\python.exe" "C:\Program Files (x86)\OpenOffice 4\program\unoconv-master\unoconv" -f pdf path/to/myfile.odt');

//or

shell_exec('"C:\Program Files (x86)\OpenOffice 4\program\python.exe" "C:\Program Files (x86)\OpenOffice 4\program\unoconv-master\unoconv" -f pdf path/to/myfile.odt')
Run Code Online (Sandbox Code Playgroud)

我也试图逃避\或使用'"不同,但我的测试没有一个是决定性的.

$test = exec($cmd, $output, $return);
echo var_dump($test);
echo var_dump($output);
echo var_dump($return);
Run Code Online (Sandbox Code Playgroud)

给我吗

//echo var_dump($test)give nothing

//echo var_dump($ouput);
array (size=0)
  empty

//echo var_dump($return);
int 1
Run Code Online (Sandbox Code Playgroud)

这听起来像权限问题,但我也检查了这一点,所有文件夹都可以访问PHP.

php permissions cmd unoconv

5
推荐指数
1
解决办法
231
查看次数

使用带有spawn的两个命令(使用pipe |)

我正在将文档转换为内存中的pdf(unoconv)并在终端中打印(pdftotext):

unoconv -f pdf --stdout sample.doc | pdftotext -layout -enc UTF-8 - out.txt
Run Code Online (Sandbox Code Playgroud)

工作中.现在我想用这个命令child_process.spawn:

let filePath = "...",
process = child_process.spawn("unoconv", [
  "-f",
  "pdf",
  "--stdout",
  filePath,
  "|",
  "pdftotext",
  "-layout",
  "-enc",
  "UTF-8",
  "-",
  "-"
]);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,只有第一个命令(在|之前)正在工作.我有可能做我正在尝试的事情吗?

谢谢.

最新情况:

的结果: sh -c- ....

bash-3.2$ sh -c- unoconv -f pdf --stdout /Users/fatimaalves/DEV/xx/_input/sample.doc | pdftotext -layout -enc UTF-8 - -
sh: --: invalid option
Usage:  sh [GNU long option] [option] ...
    sh [GNU long option] [option] script-file ...
GNU long options:
    --debug …
Run Code Online (Sandbox Code Playgroud)

spawn child-process node.js pdftotext unoconv

3
推荐指数
2
解决办法
2162
查看次数

与--stdin的unoconv无法正常工作

unoconv用来转换docxpdf。只要我通过文件名传递文档,一切都很好:

$ unoconv -f pdf --stdout test.docx
Run Code Online (Sandbox Code Playgroud)

但是,一旦我使用--stdin它就不再起作用了:

$ unoconv -f pdf --stdin --stdout < test.docx

Traceback (most recent call last):
  File "/usr/bin/unoconv", line 1275, in <module>
    main()
  File "/usr/bin/unoconv", line 1185, in main
    inputfn = sys.stdin.read()
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xad in position 41: invalid start byte
Run Code Online (Sandbox Code Playgroud)

这是同一个文件。为什么不起作用?

这是文件:https : //nofile.io/f/bKz1zWf745K/test.docx

encoding stdin utf-8 unoconv

2
推荐指数
1
解决办法
348
查看次数