【发布时间】:2011-05-24 04:30:25
【问题描述】:
我有一个要求,我想即时创建 pdf 并将其邮寄给 google app engine for java 上的用户。我尝试使用 pdfJet,但它似乎有问题,因为应用程序引擎在尝试通过电子邮件发送创建的 pdf 时抛出异常。
任何有使用 pdfjet 或其他库的工作示例的人请告知..
使用 pdfJet 我的代码如下所示:
ByteArrayOutputStream out = new ByteArrayOutputStream();
PDF pdf;
try {
pdf = new PDF(out);
log.info("#1");
pdf.setTitle("Using TextColumn and Paragraph classes");
pdf.setSubject("Examples");
pdf.setAuthor("Innovatics Inc.");
log.info("#2");
Page page = new Page(pdf, Letter.PORTRAIT);
pdf.flush();
Multipart mp = new MimeMultipart();
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setFileName("whatever.pdf");
log.info("#7");
htmlPart.setContent(out.toByteArray(), "application/pdf");
mp.addBodyPart(htmlPart);
log.info("#8");
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
Message msg = new MimeMessage(session);
msg.setContent(mp);
msg.setFrom(new InternetAddress("vik.ceo@gmail.com"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("vik.ceo@gmail.com"));
msg.setSubject("testing PDF system");
Transport.send(msg);
【问题讨论】:
-
请发布抛出的异常。
-
class javax.mail.SendFailedException:发送失败(javax.mail.MessagingException:转换附件数据失败)
-
您是否考虑过使用其他 PDF 生成工具,例如 JasperReports?
-
我尝试了 iText 并发现了同样的问题
-
您找到解决方案了吗?我发现使用 itext 生成器存在一些问题。
标签: java google-app-engine pdf-generation