Java 使用POI将DOCX转换为PDF

Java 使用POI将DOCX转换为PDF,java,pdf,apache-poi,docx,Java,Pdf,Apache Poi,Docx,我只需要将我的docx文件转换成pdf,所以我使用了poi,但结果我得到了这个。像照片上那样 首先,我认为这个问题与编码有关,但当我设置它时,问题并没有消失 InputStream is = new FileInputStream(input); // here I set way to .docx XWPFDocument document = new XWPFDocument(is); PdfOptions options = PdfOptions.create(); Outpu

我只需要将我的docx文件转换成pdf,所以我使用了poi,但结果我得到了这个。像照片上那样

首先,我认为这个问题与编码有关,但当我设置它时,问题并没有消失

InputStream is = new FileInputStream(input); // here I set way to .docx

XWPFDocument document = new XWPFDocument(is);

PdfOptions options = PdfOptions.create();  

OutputStream out = new FileOutputStream(output); // here to .pdf

PdfConverter.getInstance().convert(document, out, options);

我知道我有点晚了:)但对于那些仍在寻找解决方案的人来说。在我的例子中,Microsoft字体丢失了。所以你需要在linux PC上安装msttcore字体。

我知道我有点晚了:)但对于那些仍在寻找解决方案的人来说。在我的例子中,Microsoft字体丢失了。因此,您需要在linux PC上安装msttcore字体。

看起来好像PDF中使用了部分未嵌入的字体,而您的客户端系统中没有该字体。但是顺便说一句:
apachepoi
不提供PDF导出。那么您使用的确切类是什么
pdfooptions
PdfConverter
?参见.import org.apache.poi.xwpf.converter.pdf.PdfConverter;导入org.apache.poi.xwpf.converter.pdf.pdfooptions;版本-1.0.0
org.apache.poi.xwpf.converter.pdf.PdfConverter
org.apache.poi.xwpf.converter.pdf.PdfOptions
是源自
Opensagres
的古老版本,不是从
apachepoi
。现在我在pom
fr.opensagres.poi.xwpf.converter.pdf
2.0.2中设置,并将
org.apache.poi
更改为4.1.0。这并没有解决我的问题,顺便说一句,这是更好的。将使用您所说的字体查看。看起来好像PDF中使用了部分未嵌入的字体,但在您的客户端系统中不可用。但是顺便说一句:
apachepoi
不提供PDF导出。那么您使用的确切类是什么
pdfooptions
PdfConverter
?参见.import org.apache.poi.xwpf.converter.pdf.PdfConverter;导入org.apache.poi.xwpf.converter.pdf.pdfooptions;版本-1.0.0
org.apache.poi.xwpf.converter.pdf.PdfConverter
org.apache.poi.xwpf.converter.pdf.PdfOptions
是源自
Opensagres
的古老版本,不是从
apachepoi
。现在我在pom
fr.opensagres.poi.xwpf.converter.pdf
2.0.2中设置,并将
org.apache.poi
更改为4.1.0。这并没有解决我的问题,顺便说一句,这是更好的。我会像你说的那样用字体看看。