我正在生成 PDF 并尝试将其附加到邮件以及使用 java 从浏览器下载它。从浏览器下载工作正常,但附加到邮件是我面临的问题。该文件已附上。文件的附件名称和大小保持不变。问题是当我从邮件附件打开 PDF 时,它什么也没显示。没有内容的正确页数。当我通过硬编码附加从浏览器下载的文件时,它工作正常。所以我想问题不在于PDF生成。我尝试使用无法比较的比较工具打开两个文件(一个从浏览器下载,另一个从邮件下载)。从邮件中下载的显示转换错误。当我用记事本++打开时,两者都显示不同的编码。我对这些编码的东西不是很熟悉。我想这与编码有关。
我还观察到邮件下载中的内容与 PDF 生成中的内容相同。但是浏览器下载的那个是不同的。
我在浏览器下载中得到的摘录如下(内容太大,无法粘贴)
%PDF-1.4
%âãÏÓ
4 0 obj <</Type/XObject/ColorSpace/DeviceRGB/Subtype/Image/BitsPerComponent 8/Width 193/Length 11222/Height 58/Filter/DCTDecode>>stream
ÿØÿà
我在邮件下载中得到的摘录如下
%PDF-1.4
%????
4 0 obj <</Type/XObject/ColorSpace/DeviceRGB/Subtype/Image/BitsPerComponent 8/Width 193/Length 11222/Height 58/Filter/DCTDecode>>stream
????
我正在使用 Spring MimeMessageHelper 发送消息。我正在使用以下方法添加附件
MimeMessageHelper.addAttachment(fileName, new ByteArrayResource(attachmentContent.getBytes()), "application/pdf");
我也尝试过另一种连接方式,但徒劳无功
DataSource dataSource = new ByteArrayDataSource(bytes, "application/pdf");
MimeBodyPart pdfBodyPart = new MimeBodyPart();
pdfBodyPart.addHeader("Content-Type", "application/pdf;charset=UTF-8");
pdfBodyPart.addHeader("Content-disposition", "attachment; filename="+fileName);
pdfBodyPart.setDataHandler(new DataHandler(dataSource));
pdfBodyPart.setFileName(fileName);
mimeMessageHelper.getMimeMultipart().addBodyPart(pdfBodyPart);
任何帮助将不胜感激。提前致谢