这个word文件转pdf占用了很大的内存,导致内存溢出了,有不有什么办法解决这类内存占用的问题

word文件可在这里获取
https://pan.baidu.com/s/1lHpmQ5U23T_e3X8rxckCVA?pwd=uvg1

@Lycheng, 我无法从您的链接下载,因为它需要授权。 您可以将文档上传到 Dropbox 或 Google Drive 吗?

是访问不了百度网盘吗,还是什么情况

image.png (241.6 KB)

链接: https://pan.baidu.com/s/1rIgnT6ua0BlTO_5LBWKtfw?pwd=4fyb 提取码: 4fyb 复制这段内容后打开百度网盘手机App,操作更方便哦

@Lycheng, 我不在中国。 因此,请使用其他不需要注册的网站进行共享。
CannotDownload.png (128.4 KB)

还有什么网址能方便我这边传过去的吗

我这个文件明明只有14M,但是在上传时还报错这个
image.png (96.3 KB)

这个上传的上限是5M的文件吗

@Lycheng, 我的同事帮我下载了文件。 我来分析一下。

@Lycheng, 您的文件不是 Word 文档。 Microsoft Word 无法将此文档识别为 Word 文档。 该文件是一个未知格式的二进制文件。

Aspose.Words 正确处理此文件,并在将此 Word 文档转换为 PDF 时抛出 UnsupportedFileFormatException 异常:

Document doc = new Document("签署文件佣金一单一返需求规则说明书v1.0(打不开,转pdf内存溢出的).docx");
doc.save("out.pdf");
Exception in thread "main" com.aspose.words.UnsupportedFileFormatException: Unsupported file format: Unknown
	at com.aspose.words.zzYAm.zzZkx(Unknown Source)
	at com.aspose.words.Document.zzAt(Unknown Source)
	at com.aspose.words.Document.zzZkx(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)

您使用什么版本的 Aspose.Words?

public static void main(String[] args) throws Exception {

	final FileInputStream fileInputStream = new FileInputStream(new File("D:\\qys\\需求\\签署文件佣金一单一返需求规则说明书v1.0(打不开,转pdf内存溢出的).docx"));
	final FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\fcs\\test\\test6\\1.pdf"));
	Document doc = new Document(fileInputStream);
	doc.save(fileOutputStream, 40);
	System.out.println();
}

我这样写为啥检查不出这个文档是不是word,版本是23.6或22.12,都试了一下,不行

有什么办法能检测输入的文档是不是word文档呢

@Lycheng, 您可以使用 FileFormatUtil.detectFileFormat 来检测文件是否为已知格式:

final FileInputStream fileInputStream = new FileInputStream(new File("签署文件佣金一单一返需求规则说明书v1.0(打不开,转pdf内存溢出的).docx"));

FileFormatInfo info = FileFormatUtil.detectFileFormat(fileInputStream);
if (info.getLoadFormat() == LoadFormat.UNKNOWN)
{
    System.out.println("Error: Unknown format");
} 
else
{
    final FileOutputStream fileOutputStream = new FileOutputStream(new File("out.pdf"));
    Document doc = new Document(fileInputStream);
    doc.save(fileOutputStream, SaveFormat.PDF);
}

请参阅我们的文档了解更多详细信息:

谢谢,很详细的讲解,我来阅读一下