【问题标题】:alfresco - convert docx to pdf and create a new versionalfresco - 将 docx 转换为 pdf 并创建一个新版本
【发布时间】:2017-02-07 12:40:46
【问题描述】:

我正在尝试将 docx 文档转换为 pdf 并将新创建的 pdf 文件存储为新版本。 这是测试代码:

var document = search.findNode("workspace://SpacesStore/30f334f3-d357-4ea6-a09f-09eab2da7488");
var folder = document.parent

var pdf = document.transformDocument('application/pdf');
pdf.name = "tranformed-" + pdf.name;
pdf.save();

document.name = "new-" + document.name + ".pdf";
document.mimetype = "application/pdf";
document.content = pdf.content;
document.save();

文档最终为空。 使用 JavaScript 可以进行这种类型的转换吗?

【问题讨论】:

  • 您是否有激活 DOCX 到 PDF 的转换器,例如付费转换服务插件的 JODConverter?
  • @Gagravarr 我错了还是必须还有一个开放的办公服务器或实例正在运行?
  • 是的,您必须运行 LibreOffice,但如果您使用二进制安装程序安装,Alfresco 启动脚本应该会为您启动 LibreOffice。执行 ps -ef|grep soffice 以查看它是否正在运行。

标签: pdf alfresco docx pdf-conversion


【解决方案1】:

此代码从 docx 创建新的 pdf,并将创建的 pdf 存储为 1.0 版

var document = search.findNode("workspace://SpacesStore/30f334f3-d357-4ea6-a09f-09eab2da7488");
var folder = document.parent

var pdf = document.transformDocument('application/pdf');
pdf.name = "tranformed-" + pdf.name;
pdf.save();

【讨论】:

  • 感谢您的评论,但我需要用新创建的 pdf 覆盖初始 docx。
  • 感谢您的评论,但我需要用新创建的 pdf 覆盖初始 docx 文档。
  • 我需要类似 document.content = pdf.content; document.save();
  • 这样做的目的是什么?
  • 我们需要给pdf文档加水印。所以如果用户上传的是非pdf文件,比如docx文件,我们需要将docx文件转成pdf,然后给文件加水印。我们不想创建一个新文档(transformDocument 创建一个新文档),我们想将初始的 docx 转换为 pdf。
【解决方案2】:

感谢您的支持。

问题在于分配 pdf 内容。

以下代码似乎只适用于纯文本内容:

document.content = pdf.content;

矛盾的是,将 pdf 内容分配给文档时需要以下内容。

document.properties.content.write(pdf.properties.content);

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2017-05-12
    • 2019-10-26
    • 2018-08-13
    相关资源
    最近更新 更多