Word to PDF to Notes Document using the POI4Xpages api










1















I have created a PDF from a word document using POI4XPages api.
here is the code:



var template = poiBean.buildResourceTemplateSource(null,"purchaseorder.docx");
var result = poiBean.processDocument2Stream(template, lst);
var is:java.io.InputStream = new java.io.ByteArrayInputStream(result.toByteArray());
var os:java.io.OutputStream = poiBean.buildPDFFromDocX(is)


As you can see the result of my code is an OutputStream, The next step for me is to convert the stream to an attachment and attach it to a notesdocument but don't know how to do that. It doesn't really matter if I first need to attach it to disc or if it written to a body field immediately.



The poiBean is described here
https://github.com/OpenNTF/POI4Xpages/blob/master/biz.webgate.dominoext.poi/src/biz/webgate/dominoext/poi/beans/PoiBean.java



I am using SSJS here but I guess a java solution would work as well.



thanks



Thomas










share|improve this question




























    1















    I have created a PDF from a word document using POI4XPages api.
    here is the code:



    var template = poiBean.buildResourceTemplateSource(null,"purchaseorder.docx");
    var result = poiBean.processDocument2Stream(template, lst);
    var is:java.io.InputStream = new java.io.ByteArrayInputStream(result.toByteArray());
    var os:java.io.OutputStream = poiBean.buildPDFFromDocX(is)


    As you can see the result of my code is an OutputStream, The next step for me is to convert the stream to an attachment and attach it to a notesdocument but don't know how to do that. It doesn't really matter if I first need to attach it to disc or if it written to a body field immediately.



    The poiBean is described here
    https://github.com/OpenNTF/POI4Xpages/blob/master/biz.webgate.dominoext.poi/src/biz/webgate/dominoext/poi/beans/PoiBean.java



    I am using SSJS here but I guess a java solution would work as well.



    thanks



    Thomas










    share|improve this question


























      1












      1








      1








      I have created a PDF from a word document using POI4XPages api.
      here is the code:



      var template = poiBean.buildResourceTemplateSource(null,"purchaseorder.docx");
      var result = poiBean.processDocument2Stream(template, lst);
      var is:java.io.InputStream = new java.io.ByteArrayInputStream(result.toByteArray());
      var os:java.io.OutputStream = poiBean.buildPDFFromDocX(is)


      As you can see the result of my code is an OutputStream, The next step for me is to convert the stream to an attachment and attach it to a notesdocument but don't know how to do that. It doesn't really matter if I first need to attach it to disc or if it written to a body field immediately.



      The poiBean is described here
      https://github.com/OpenNTF/POI4Xpages/blob/master/biz.webgate.dominoext.poi/src/biz/webgate/dominoext/poi/beans/PoiBean.java



      I am using SSJS here but I guess a java solution would work as well.



      thanks



      Thomas










      share|improve this question
















      I have created a PDF from a word document using POI4XPages api.
      here is the code:



      var template = poiBean.buildResourceTemplateSource(null,"purchaseorder.docx");
      var result = poiBean.processDocument2Stream(template, lst);
      var is:java.io.InputStream = new java.io.ByteArrayInputStream(result.toByteArray());
      var os:java.io.OutputStream = poiBean.buildPDFFromDocX(is)


      As you can see the result of my code is an OutputStream, The next step for me is to convert the stream to an attachment and attach it to a notesdocument but don't know how to do that. It doesn't really matter if I first need to attach it to disc or if it written to a body field immediately.



      The poiBean is described here
      https://github.com/OpenNTF/POI4Xpages/blob/master/biz.webgate.dominoext.poi/src/biz/webgate/dominoext/poi/beans/PoiBean.java



      I am using SSJS here but I guess a java solution would work as well.



      thanks



      Thomas







      java apache-poi xpages lotus-notes ssjs






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 16 '18 at 7:43







      Thomas Adrian

















      asked Nov 16 '18 at 7:34









      Thomas AdrianThomas Adrian

      2,50122448




      2,50122448






















          1 Answer
          1






          active

          oldest

          votes


















          1














          Some copying and pasting but this is how you stream it into an richtext field but you need to convert os to an inputstream and assign this to a variable called is2



          var stream:NotesStream = session.createStream();
          session.setConvertMIME(false);
          var doc:NotesDocument = database.createDocument();
          var body:NotesMIMEEntity = doc.createMIMEEntity();
          stream.setContents(is2); // is an inputstream
          body.setContentFromBytes(stream, "application/octet-stream",NotesMIMEEntity.ENC_IDENTITY_BINARY);

          stream.close();
          doc.save(true, true);

          session.setConvertMIME(true);


          This is what I based the example on



          https://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime






          share|improve this answer























          • yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

            – Thomas Adrian
            Nov 16 '18 at 9:48






          • 1





            @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

            – Axel Richter
            Nov 16 '18 at 14:34











          • yes, that is what I was trying to do, I need code

            – Thomas Adrian
            Nov 16 '18 at 14:53











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53333330%2fword-to-pdf-to-notes-document-using-the-poi4xpages-api%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Some copying and pasting but this is how you stream it into an richtext field but you need to convert os to an inputstream and assign this to a variable called is2



          var stream:NotesStream = session.createStream();
          session.setConvertMIME(false);
          var doc:NotesDocument = database.createDocument();
          var body:NotesMIMEEntity = doc.createMIMEEntity();
          stream.setContents(is2); // is an inputstream
          body.setContentFromBytes(stream, "application/octet-stream",NotesMIMEEntity.ENC_IDENTITY_BINARY);

          stream.close();
          doc.save(true, true);

          session.setConvertMIME(true);


          This is what I based the example on



          https://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime






          share|improve this answer























          • yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

            – Thomas Adrian
            Nov 16 '18 at 9:48






          • 1





            @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

            – Axel Richter
            Nov 16 '18 at 14:34











          • yes, that is what I was trying to do, I need code

            – Thomas Adrian
            Nov 16 '18 at 14:53















          1














          Some copying and pasting but this is how you stream it into an richtext field but you need to convert os to an inputstream and assign this to a variable called is2



          var stream:NotesStream = session.createStream();
          session.setConvertMIME(false);
          var doc:NotesDocument = database.createDocument();
          var body:NotesMIMEEntity = doc.createMIMEEntity();
          stream.setContents(is2); // is an inputstream
          body.setContentFromBytes(stream, "application/octet-stream",NotesMIMEEntity.ENC_IDENTITY_BINARY);

          stream.close();
          doc.save(true, true);

          session.setConvertMIME(true);


          This is what I based the example on



          https://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime






          share|improve this answer























          • yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

            – Thomas Adrian
            Nov 16 '18 at 9:48






          • 1





            @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

            – Axel Richter
            Nov 16 '18 at 14:34











          • yes, that is what I was trying to do, I need code

            – Thomas Adrian
            Nov 16 '18 at 14:53













          1












          1








          1







          Some copying and pasting but this is how you stream it into an richtext field but you need to convert os to an inputstream and assign this to a variable called is2



          var stream:NotesStream = session.createStream();
          session.setConvertMIME(false);
          var doc:NotesDocument = database.createDocument();
          var body:NotesMIMEEntity = doc.createMIMEEntity();
          stream.setContents(is2); // is an inputstream
          body.setContentFromBytes(stream, "application/octet-stream",NotesMIMEEntity.ENC_IDENTITY_BINARY);

          stream.close();
          doc.save(true, true);

          session.setConvertMIME(true);


          This is what I based the example on



          https://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime






          share|improve this answer













          Some copying and pasting but this is how you stream it into an richtext field but you need to convert os to an inputstream and assign this to a variable called is2



          var stream:NotesStream = session.createStream();
          session.setConvertMIME(false);
          var doc:NotesDocument = database.createDocument();
          var body:NotesMIMEEntity = doc.createMIMEEntity();
          stream.setContents(is2); // is an inputstream
          body.setContentFromBytes(stream, "application/octet-stream",NotesMIMEEntity.ENC_IDENTITY_BINARY);

          stream.close();
          doc.save(true, true);

          session.setConvertMIME(true);


          This is what I based the example on



          https://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 16 '18 at 8:08









          Fredrik NorlingFredrik Norling

          3,2641220




          3,2641220












          • yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

            – Thomas Adrian
            Nov 16 '18 at 9:48






          • 1





            @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

            – Axel Richter
            Nov 16 '18 at 14:34











          • yes, that is what I was trying to do, I need code

            – Thomas Adrian
            Nov 16 '18 at 14:53

















          • yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

            – Thomas Adrian
            Nov 16 '18 at 9:48






          • 1





            @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

            – Axel Richter
            Nov 16 '18 at 14:34











          • yes, that is what I was trying to do, I need code

            – Thomas Adrian
            Nov 16 '18 at 14:53
















          yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

          – Thomas Adrian
          Nov 16 '18 at 9:48





          yes, I've used something like that, but the problem is that setContent takes inputStream and I have outputStream.

          – Thomas Adrian
          Nov 16 '18 at 9:48




          1




          1





          @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

          – Axel Richter
          Nov 16 '18 at 14:34





          @Thomas Adrian: "takes inputStream and I have outputStream": If the outputStream writes to a file, then take the file after that using an FileInputStream. If the outputStream writes to a byte array, then take the byte array after that using an ByteArrayInputStream. If the outputStream writes to a foo, then take the foo after that using an FooInputStream. Any questions?

          – Axel Richter
          Nov 16 '18 at 14:34













          yes, that is what I was trying to do, I need code

          – Thomas Adrian
          Nov 16 '18 at 14:53





          yes, that is what I was trying to do, I need code

          – Thomas Adrian
          Nov 16 '18 at 14:53



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53333330%2fword-to-pdf-to-notes-document-using-the-poi4xpages-api%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Top Tejano songwriter Luis Silva dead of heart attack at 64

          ReactJS Fetched API data displays live - need Data displayed static

          Evgeni Malkin