Hie
I am doing exact same. Here is the code:
log.info("start of PDFTest:::::::::::::");
//OutputStream out = resp.getOutputStream();
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");
String fileName = "images/share_facebook.png";
Image image1 = new Image(pdf, new BufferedInputStream(
getClass().getResourceAsStream(fileName)), ImageType.PNG);
log.info("#3");
Font f1 = new Font(pdf,
new BufferedInputStream(getClass().getResourceAsStream(
"fonts/DroidFonts/DroidSerif-Regular.otf")),
CodePage.UNICODE,
Embed.YES);
Page page = new Page(pdf, Letter.PORTRAIT);
f1.setSize(10);
image1.setPosition(90, 35);
image1.scaleBy(0.75);
image1.drawOn(page);
TextColumn column = new TextColumn(f1);
column.setLineBetweenParagraphs(false);
Paragraph p1 = new Paragraph();
p1.setAlignment(Align.CENTER);
p1.add(new TextLine(f1, "Switzerland"));
Paragraph p2 = new Paragraph();
p2.add(new TextLine(f1, "Introduction"));
Paragraph p4 = new Paragraph();
p4.add(new TextLine(f1, "Economy"));
Paragraph p5 = new Paragraph();
p5.setAlignment(Align.JUSTIFY);
text = new TextLine(f1);
column.setSize(470, 100);
Point point1 = new Point(90, 300); // TextColumn start point
Point point2 = column.sizeOn(page); // TextColumn end point
Line line = new Line(
point1.getX(),
point1.getY() + point2.getY(),
point1.getX() + point2.getX(),
point1.getY() + point2.getY());
line.drawOn(page);
column.drawOn(page);
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("[email protected]"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("[email protected]"));
msg.setSubject("testing PDF system");
Transport.send(msg);
System.out.println("Sucessfully Sent mail to All Users");
Thankx and Regards
Vik
Founder
http://www.sakshum.org
http://blog.sakshum.org
On Tue, May 17, 2011 at 9:30 PM, Stephen Johnson <[email protected]>wrote:
> Vik,
> Post your code where you're creating the ByteArrayOutputStream and
> creating the PDF with it. It'll be more helpful then what you've
> posted. I'm a little concerned you still don't have this part correct
> since you're still using "out" as a variable name. You're code should
> be similar to:
>
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
>
> /* this part is from your previous email. I don't use PDFJet so I
> can't validate this code for you */
> PDF pdf = new PDF(baos);
> some actual writing.....
> pdf.flush();
>
> /* taken from docs */
> Properties props = new Properties();
> Session session = Session.getDefaultInstance(props, null);
>
> String msgBody = "...";
>
> try {
> Message msg = new MimeMessage(session);
> msg.setFrom(new InternetAddress("[email protected]",
> "Example.com Admin"));
> msg.addRecipient(Message.RecipientType.TO,
> new InternetAddress("[email protected]",
> "Mr. User"));
> msg.setSubject("Your Example.com account has been activated");
> msg.setText(msgBody);
>
> Multipart mp = new MimeMultipart();
>
> // Get the PDF data
> byte[] attachmentData = baos.toByteArray();
>
> MimeBodyPart attachment = new MimeBodyPart();
> attachment.setFileName("manual.pdf");
> attachment.setContent(attachmentData, "application/pdf");
> mp.addBodyPart(attachment);
>
> message.setContent(mp);
> Transport.send(msg);
>
> } catch (AddressException e) {
> // ..
> } catch (MessagingException e) {
> // ...
> }
>
>
> On Tue, May 17, 2011 at 6:19 AM, Vik <[email protected]> wrote:
> >
> > I think the problem is not with pdfJet it about sending pdf as an
> attachment via mail api on app engine
> > Thankx and Regards
> >
> > Vik
> > Founder
> > http://www.sakshum.org
> > http://blog.sakshum.org
> >
> >
> > On Tue, May 17, 2011 at 6:45 PM, Nichole <[email protected]> wrote:
> >>
> >> You could try iText:
> >>
> >>
> http://groups.google.com/group/google-appengine-java/browse_thread/thread/7dfdf19cfdd410d6/ee7024dd040ba6eb?lnk=gst&q=pdf#ee7024dd040ba6eb
> >>
> >>
> >> http://code.google.com/appengine/docs/java/mail/usingjavamail.html
> >>
> >>
> >> On May 16, 7:11 pm, Vik <[email protected]> wrote:
> >> > Hie
> >> >
> >> > Trying to send a pdf created using pdfJet throws the exception
> >> >
> >> > class javax.mail.SendFailedException:Send failure
> >> > (javax.mail.MessagingException: Converting attachment data failed)
> >> >
> >> > The code is like:
> >> >
> >> > MimeBodyPart htmlPart = new MimeBodyPart();
> >> > htmlPart.setFileName("whatever.pdf");
> >> > htmlPart.setContent(out.toByteArray(), "application/pdf");
> >> > mp.addBodyPart(htmlPart);
> >> >
> >> > logged issuehttp://
> code.google.com/p/googleappengine/issues/list?cursor=1764&upda...
> >> > does not seems to help.
> >> >
> >> > Please advise.
> >> >
> >> > Thankx and Regards
> >> >
> >> > Vik
> >> > Founderhttp://www.sakshum.orghttp://blog.sakshum.org
> >> >
> >> >
> >> >
> >> > On Sun, May 15, 2011 at 8:26 PM, Erick Fleming <[email protected]>
> wrote:
> >> > > You can use ByteArrayOutputStream [1<
> http://download.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputS..
> .>],
> >> > > then attach that to your mail message. If you are using low-level
> api, then
> >> > > Attrachment [2<
> http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...>]
> has
> >> > > a constructor for this.
> >> >
> >> > > [1]
> >> > >
> http://download.oracle.com/javase/6/docs/api/java/io/ByteArrayOutputS...
> >> > > [2]
> >> > >
> http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...
> >> >
> >> > > On Sun, May 15, 2011 at 9:16 AM, Vik <[email protected]> wrote:
> >> >
> >> > >> Hie
> >> >
> >> > >> Just a little question. I am using this pdfJet thing.
> >> > >> The requirement for us is to create a pdf and then mail it to a
> user.
> >> >
> >> > >> So i am done with pdf creation part and at then end i have the code
> like:
> >> >
> >> > >> OutputStream out = resp.getOutputStream();
> >> > >> PDF pdf = new PDF(out);
> >> >
> >> > >> some actual writing.....
> >> >
> >> > >> pdf.flush();
> >> > >> out.close();
> >> >
> >> > >> Now the question i have is after this step how do i actually get
> handle to
> >> > >> the created pdf above and attach it to an email ?
> >> >
> >> > >> Thankx and Regards
> >> >
> >> > >> Vik
> >> > >> Founder
> >> > >>http://www.sakshum.org
> >> > >>http://blog.sakshum.org
> >> >
> >> > >> On Tue, Apr 20, 2010 at 1:52 PM, Patou <
> [email protected]>wrote:
> >> >
> >> > >>> Hello
> >> >
> >> > >>> In App Engine, You can't write a file to the file system.
> Otherwise
> >> > >>> the save method can't be used in GAE.
> >> > >>> Use this code to send the pdf to the navigator :
> >> >
> >> > >>> pdf.wrap();
> >> >
> >> > >>> String fileName = "Example_03.pdf";
> >> >
> >> > >>> resp.setContentType("application/pdf");
> >> > >>> resp.setHeader("Content-Disposition", "attachment; filename=\"" +
> >> > >>> fileName + "\"");
> >> > >>> ServletOutputStream outs = resp.getOutputStream();
> >> > >>> pdf.getData().writeTo(outs);
> >> >
> >> > >>> Or to save to the datastore :
> >> > >>> new Blob(pdf.getData().toByteArray());
> >> >
> >> > >>> Bests Regards
> >> >
> >> > >>> Patrice
> >> >
> >> > >>> On Apr 20, 4:18 am, jeno <[email protected]> wrote:
> >> > >>> > Hi François ,
> >> >
> >> > >>> > Thanks for your help. I have used PDFjet (PDFJet.jar version
> 2.72)
> >> > >>> > PDF class missing save method
> >> > >>> > So i cant call pdf.save("d.pdf") method.
> >> >
> >> > >>> > Cheers
> >> > >>> > jeno
> >> >
> >> > >>> > On Apr 19, 6:48 pm, François Masurel <[email protected]> wrote:
> >> >
> >> > >>> > > Hi Jeno,
> >> >
> >> > >>> > > You can try the PDFjet Open Source Edition :
> >> > >>>http://pdfjet.com/os/edition.html
> >> >
> >> > >>> > > François
> >> >
> >> > >>> > > On 19 avr, 01:55, jeno <[email protected]> wrote:
> >> >
> >> > >>> > > > Hi Guys,
> >> >
> >> > >>> > > > Anyone know open source java pdf engine for GAE.
> >> >
> >> > >>> > > > Thanks
> >> > >>> > > > Jeno
> >> >
> >> > >>> > > > --
> >> > >>> > > > You received this message because you are subscribed to the
> Google
> >> > >>> Groups "Google App Engine for Java" group.
> >> > >>> > > > To post to this group, send email to
> >> > >>> [email protected].
> >> > >>> > > > To unsubscribe from this group, send email to
> >> > >>> [email protected].
> >> > >>> > > > For more options, visit this group athttp://
> >> > >>> groups.google.com/group/google-appengine-java?hl=en.
> >> >
> >> > >>> > > --
> >> > >>> > > You received this message because you are subscribed to the
> Google
> >> > >>> Groups "Google App Engine for Java" group.
> >> > >>> > > To post to this group, send email to
> >> > >>> [email protected].
> >> > >>> > > To unsubscribe from this group, send email to
> >> > >>> [email protected].
> >> > >>> > > For more options, visit this group athttp://
> >> > >>> groups.google.com/group/google-appengine-java?hl=en.
> >> >
> >> > >>> > --
> >> > >>> > You received this message because you are subscribed to the
> Google
> >> > >>> Groups "Google App Engine for Java" group.
> >> > >>> > To post to this group, send email to
> >> > >>> [email protected].
> >> > >>> > To unsubscribe from this group, send email to
> >> > >>> [email protected].
> >> > >>> > For more options, visit this group athttp://
> >> > >>> groups.google.com/group/google-appengine-java?hl=en.
> >> >
> >> > >>> --
> >> > >>> You received this message because you are subscribed to the Google
> Groups
> >> > >>> "Google App Engine for Java" group.
> >> > >>> To post to this group, send email to
> >> > >>> [email protected].
> >> > >>> To unsubscribe from this group, send email to
> >> > >>> [email protected].
> >> > >>> For more options, visit this group at
> >> > >>>http://groups.google.com/group/google-appengine-java?hl=en.
> >> >
> >> > >> --
> >> > >> You received this message because you are subscribed to the Google
> Groups
> >> > >> "Google App Engine for Java" group.
> >> > >> To post to this group, send email to
> >> > >> [email protected].
> >> > >> To unsubscribe from this group, send email to
> >> > >> [email protected].
> >> > >> For more options, visit this group at
> >> > >>http://groups.google.com/group/google-appengine-java?hl=en.
> >> >
> >> > > --
> >> > > You received this message because you are subscribed to the Google
> Groups
> >> > > "Google App Engine for Java" group.
> >> > > To post to this group, send email to
> >> > > [email protected].
> >> > > To unsubscribe from this group, send email to
> >> > > [email protected].
> >> > > For more options, visit this group at
> >> > >http://groups.google.com/group/google-appengine-java?hl=en.
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups "Google App Engine for Java" group.
> >> To post to this group, send email to
> [email protected].
> >> To unsubscribe from this group, send email to
> [email protected].
> >> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
> >>
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> > To post to this group, send email to
> [email protected].
> > To unsubscribe from this group, send email to
> [email protected].
> > For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.