img2pdf batch script

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












0















I currently have over 10K folders. Each folder has .png and .jpg images that need to be turned into .pdf files. Files are numerically in order already.



I am looking for speed. I can currently cd into each folder and run



img2pdf * -o out.pdf


And I get a perfectly created out.pdf in less than a second, even with several hundred images.



My end goal is to automate this in a shell script that can be invoked, so each folder is basically turned into a .pdf file with the filename the same as the old directory like so



Directory001/img001.jpg
img002.jpg
img003.jpg
OtherDirectory/img1.png
img2.png
img3.png


becomes



Directory001.pdf
OtherDirectory.pdf


while only use img2pdf to do this, as it is by far the fastest way create the pdfs. I have some simple bash experience, but only with simple one liners (like turning all directories to zips). I know this can be done, but have no idea where to begin.










share|improve this question


























    0















    I currently have over 10K folders. Each folder has .png and .jpg images that need to be turned into .pdf files. Files are numerically in order already.



    I am looking for speed. I can currently cd into each folder and run



    img2pdf * -o out.pdf


    And I get a perfectly created out.pdf in less than a second, even with several hundred images.



    My end goal is to automate this in a shell script that can be invoked, so each folder is basically turned into a .pdf file with the filename the same as the old directory like so



    Directory001/img001.jpg
    img002.jpg
    img003.jpg
    OtherDirectory/img1.png
    img2.png
    img3.png


    becomes



    Directory001.pdf
    OtherDirectory.pdf


    while only use img2pdf to do this, as it is by far the fastest way create the pdfs. I have some simple bash experience, but only with simple one liners (like turning all directories to zips). I know this can be done, but have no idea where to begin.










    share|improve this question
























      0












      0








      0








      I currently have over 10K folders. Each folder has .png and .jpg images that need to be turned into .pdf files. Files are numerically in order already.



      I am looking for speed. I can currently cd into each folder and run



      img2pdf * -o out.pdf


      And I get a perfectly created out.pdf in less than a second, even with several hundred images.



      My end goal is to automate this in a shell script that can be invoked, so each folder is basically turned into a .pdf file with the filename the same as the old directory like so



      Directory001/img001.jpg
      img002.jpg
      img003.jpg
      OtherDirectory/img1.png
      img2.png
      img3.png


      becomes



      Directory001.pdf
      OtherDirectory.pdf


      while only use img2pdf to do this, as it is by far the fastest way create the pdfs. I have some simple bash experience, but only with simple one liners (like turning all directories to zips). I know this can be done, but have no idea where to begin.










      share|improve this question














      I currently have over 10K folders. Each folder has .png and .jpg images that need to be turned into .pdf files. Files are numerically in order already.



      I am looking for speed. I can currently cd into each folder and run



      img2pdf * -o out.pdf


      And I get a perfectly created out.pdf in less than a second, even with several hundred images.



      My end goal is to automate this in a shell script that can be invoked, so each folder is basically turned into a .pdf file with the filename the same as the old directory like so



      Directory001/img001.jpg
      img002.jpg
      img003.jpg
      OtherDirectory/img1.png
      img2.png
      img3.png


      becomes



      Directory001.pdf
      OtherDirectory.pdf


      while only use img2pdf to do this, as it is by far the fastest way create the pdfs. I have some simple bash experience, but only with simple one liners (like turning all directories to zips). I know this can be done, but have no idea where to begin.







      shell-script pdf conversion






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Feb 17 at 15:00









      lolimanslolimans

      1




      1




















          1 Answer
          1






          active

          oldest

          votes


















          0














          To batch a command over a lot of files or directories, you often use find -exec like this :



          find . -type d -exec "img2pdf" ""/* -o "".pdf ";"


          this method is the most flexible, but in your case, you could as well use a simple loop :



          for i in ./*/
          do img2pdf "$i"/* "$i.pdf"
          done





          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "106"
            ;
            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: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            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%2funix.stackexchange.com%2fquestions%2f501174%2fimg2pdf-batch-script%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









            0














            To batch a command over a lot of files or directories, you often use find -exec like this :



            find . -type d -exec "img2pdf" ""/* -o "".pdf ";"


            this method is the most flexible, but in your case, you could as well use a simple loop :



            for i in ./*/
            do img2pdf "$i"/* "$i.pdf"
            done





            share|improve this answer



























              0














              To batch a command over a lot of files or directories, you often use find -exec like this :



              find . -type d -exec "img2pdf" ""/* -o "".pdf ";"


              this method is the most flexible, but in your case, you could as well use a simple loop :



              for i in ./*/
              do img2pdf "$i"/* "$i.pdf"
              done





              share|improve this answer

























                0












                0








                0







                To batch a command over a lot of files or directories, you often use find -exec like this :



                find . -type d -exec "img2pdf" ""/* -o "".pdf ";"


                this method is the most flexible, but in your case, you could as well use a simple loop :



                for i in ./*/
                do img2pdf "$i"/* "$i.pdf"
                done





                share|improve this answer













                To batch a command over a lot of files or directories, you often use find -exec like this :



                find . -type d -exec "img2pdf" ""/* -o "".pdf ";"


                this method is the most flexible, but in your case, you could as well use a simple loop :



                for i in ./*/
                do img2pdf "$i"/* "$i.pdf"
                done






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Feb 17 at 19:12









                NephanthNephanth

                59639




                59639



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • 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%2funix.stackexchange.com%2fquestions%2f501174%2fimg2pdf-batch-script%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

                    Peggy Mitchell

                    Palaiologos

                    The Forum (Inglewood, California)