如何使用Mule 4将传入的JSON负载写入pdf文件
我正在尝试将JSON转换为pdf文件,但在尝试打开文件时,在mule 4(运行时4.2.1)中出现“加载pdf文档失败”错误。 如何解决此问题 代码:如何使用Mule 4将传入的JSON负载写入pdf文件,mule,mule-studio,mulesoft,mule-esb,mule4,Mule,Mule Studio,Mulesoft,Mule Esb,Mule4,我正在尝试将JSON转换为pdf文件,但在尝试打开文件时,在mule 4(运行时4.2.1)中出现“加载pdf文档失败”错误。 如何解决此问题 代码: 我怀疑问题在于流正在将JSON文件写入名为test.pdf的文件。如果您尝试使用PDF阅读器打开,它将失败,因为JSON文档不是PDF文件 <set-payload value="#[payload]" doc:name="Set Payload" doc:id="a250f9a4-c633
我怀疑问题在于流正在将JSON文件写入名为test.pdf的文件。如果您尝试使用PDF阅读器打开,它将失败,因为JSON文档不是PDF文件
<set-payload value="#[payload]" doc:name="Set Payload" doc:id="a250f9a4-c633-4ce1-a75d-8668d2dede10" mimeType="application/json"/>
Mule没有转换为PDF的功能,因此您需要使用Java代码调用某些PDF生成库来实现转换。在dataweave st away中不可能,因此请编写Java代码。 下面是帮助您的Java代码 将该java类放在src/main/java/com/pdf/JsonToPDF.java文件夹中
package com.pdf;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class JsonToPDF {
public static void jsontopdf(String filename,String content) {
Document document = new Document();
try
{
File file = new File(filename);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
document.open();
document.add(new Paragraph(content));
document.close();
writer.close();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
并在Dataweave中调用此静态方法。下面是dataweave代码
%dw 2.0
import java!com::pdf::JsonToPDF
output application/java
---
{
pdf :JsonToPDF::jsontopdf("C:\\Users\\nanmanikanta\\Desktop\\Integration\\test.pdf","{
'test': 'test'
}")
}
您可以将该java更改为只编写pdf,或者使该类返回pdf文件流并将其提供给其他处理器
你可以做很多事情
以下是itext库示例代码链接供您参考:
该错误似乎不完整,或者可能不是Mule的错误?请将日志中的完整错误消息添加到问题中。
%dw 2.0
import java!com::pdf::JsonToPDF
output application/java
---
{
pdf :JsonToPDF::jsontopdf("C:\\Users\\nanmanikanta\\Desktop\\Integration\\test.pdf","{
'test': 'test'
}")
}