tami: viele Word-Dateien in ein PDF stecken - Win7

hi alle,

gibt es eine schlichte möglichkeit, alle word-dokumente in einem ordner hintereinander in ein pdf zu bekommen? batch-artig?

mfg

tami

  1. Aloha ;)

    gibt es eine schlichte möglichkeit, alle word-dokumente in einem ordner hintereinander in ein pdf zu bekommen? batch-artig?

    Hm, das kann ich dir so nicht sagen. Aber du kannst alle in pdfs umwandeln (hintereinander) und die pdfs dann zusammen in eins bringen. Wenn du's automatisieren willst, kannst du das vielleicht auch... Evtl. kannst du nen virtuellen pdf-Drucker finden, den du über batch ansteuern kannst, um das zu automatisieren.

    Ist aber alles Spekulation, vielleicht wissen andere mehr.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
    1. hi Camping_RIDER,

      Aloha ;)

      gibt es eine schlichte möglichkeit, alle word-dokumente in einem ordner hintereinander in ein pdf zu bekommen? batch-artig?

      Hm, das kann ich dir so nicht sagen. Aber du kannst alle in pdfs umwandeln (hintereinander) und die pdfs dann zusammen in eins bringen. Wenn du's automatisieren willst, kannst du das vielleicht auch... Evtl. kannst du nen virtuellen pdf-Drucker finden, den du über batch ansteuern kannst, um das zu automatisieren.

      Ist aber alles Spekulation, vielleicht wissen andere mehr.

      Ich habe bisher:

      1. FreePDF 4.04 über "Geräte und Drucker" als Standarddrucker
      2. bis zu 15 Worddokumente auf einmal anwählen und rechteMaus->Drucken
      3. im Dialog dann jeweils "Multidoc" wählen.
      4. Multidoc als Option in er Taskbar ist dann vorhanden
      5. beliebig weiter machen - leider nur 15 Stück auf einmal, sind an die 100 Dateien
      6. zum Schluss ggfs. noch die Sortierfunktion wählen, dann abspeichern

      Dauert halt, hätte es gerne Vollautomatisch. Daten kommen ursprünglich (mit Makro) aus Exceldatei. Vielleicht wäre es ja besser, überhaupt auf OpenOffice umzustellen und dann mit Templates gleich PDF-Dateien zu erstellen. Die lassen sich ja einfacher bzw. direkt "mergen".

      mfg

      tami

      1. Aloha ;)

        Ich habe bisher:

        1. FreePDF 4.04 über "Geräte und Drucker" als Standarddrucker
        2. bis zu 15 Worddokumente auf einmal anwählen und rechteMaus->Drucken
        3. im Dialog dann jeweils "Multidoc" wählen.
        4. Multidoc als Option in er Taskbar ist dann vorhanden
        5. beliebig weiter machen - leider nur 15 Stück auf einmal, sind an die 100 Dateien
        6. zum Schluss ggfs. noch die Sortierfunktion wählen, dann abspeichern

        Dauert halt, hätte es gerne Vollautomatisch. Daten kommen ursprünglich (mit Makro) aus Exceldatei. Vielleicht wäre es ja besser, überhaupt auf OpenOffice umzustellen und dann mit Templates gleich PDF-Dateien zu erstellen. Die lassen sich ja einfacher bzw. direkt "mergen".

        So wie ich es sehe ist dein Hauptproblem dieses, dass lediglich max. 15 Word-Dokumente gleichzeitig zu öffnen und zu drucken sind.

        Ich hab nochmal Google angeworfen für dich. Schau dir mal dieses Tool an: WordToPDF (Freeware) wandelt wohl Word-Dateien in PDF um. So wie's für mich aussieht ohne den Umweg übers drucken. Damit umgehst du die 15-Dokumente-Schranke, die ja imho durch Limitierung des Betriebssystems für gleichzeitige Druckaufträge / geöffnete Word-Dokumente zustande kommt. Die PDF's, die du erhältst, solltest du dann ja einfach mergen können.

        Schätze, das könnte für dich so funktionieren.

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. hi Camping_RIDER,

          Schätze, das könnte für dich so funktionieren.

          Tut es, der macht prima EinzelPDFs in eine Rutsch. Danke. FreePDF (mein PDF-Drucker) kann zwar auch joinen, aber nicht mit Drag-und-Drop. pdfmerge hat irgendwie auch anhieb nicht so geklappt, aber dafür PDF24-Creator (http://www.chip.de/downloads/PDF24-Creator_43805654.html).

          mfg

          tami

        2. Hallo,

          So wie ich es sehe ist dein Hauptproblem dieses, dass lediglich max. 15 Word-Dokumente gleichzeitig zu öffnen und zu drucken sind.

          dies sollte mit folgendem RegEdit so lösen sein:

          Regedit.exe
           Schlüssel:
           HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\

          neues DWORD erstellen (32bit)
           rechtsklick auf DWORD und "Ändern", Dezimal 50

          die 50 steht hier für das Limit und kann bei bedarf auch erhöht werden

          Gruß
          Jan

          1. Hallo,

            So wie ich es sehe ist dein Hauptproblem dieses, dass lediglich max. 15 Word-Dokumente gleichzeitig zu öffnen und zu drucken sind.

            dies sollte mit folgendem RegEdit so lösen sein:

            Regedit.exe
            Schlüssel:
            HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\

            neues DWORD erstellen (32bit)
            rechtsklick auf DWORD und "Ändern", Dezimal 50

            die 50 steht hier für das Limit und kann bei bedarf auch erhöht werden

            Gruß
            Jan

            Nachtrag: DWORD muss den namen MultipleInvokePromptMinimum

          2. Aloha ;)

            Stimmt - damit kannst du das Symptom beheben. Das Grundproblem aber bleibt in anderer Form. Es gibt ja einen Grund, warum das Ganze limitiert ist.

            Wenn du sehr viele Dateien hast, kannst du nicht alle gleichzeitig öffnen (bzw. hier: Drucken). Die massiv vielen gleichzeitig offenen Prozesse bringen dein System wahrscheinlich an den Rand des Absturz.

            Von daher: Wichtig und richtig, das hier zu erwähnen, aber mit Vorsicht zu genießen!

            Grüße,

            RIDER

            --
            Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
            ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
  2. Lieber tami,

    unter Linux nutze ich zum Hantieren mit PDF-Dateien das Programm PDF-SAM. Das kann in Einzelseiten aufsplitten, mehrere Dokumente zusammenfügen, und das Ganze auch auf konkrete Unterseiten spezifiziert.

    PDF-SAM wurde ganz offensichtlich für die Windows-Plattform geschrieben, läuft aber wegen seiner Java-Grundlage auch auf Linux - und anderen Plattformen. Auf der CHIP-Seite wird vor AdWare beim Installieren gewarnt, das solltest Du beherzigen.

    Liebe Grüße,

    Felix Riesterer.

    --
    "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
  3. hi tami,

      
    <?php  
    require_once 'Zend/Loader/StandardAutoloader.php';  
    $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));  
    $loader->register();  
    $loader->registerNamespace('ZendPdf', __DIR__ . '/ZendPdf');  //add this line.  
    use ZendPdf\PdfDocument;  
    $pdfMerged = new PdfDocument();  
    $folder = "Ausgang";  
    $pdfFileNames = glob($folder . "/*.pdf");  
    foreach ($pdfFileNames  as $pdfFileName) {  
        $pdfTmp = PdfDocument::load($pdfFileName);  
        foreach($pdfTmp->pages as $page){  
            $clonedPage = clone $page;  
            $pdfMerged->pages[] = $clonedPage;  
        }  
    }  
    unset($clonedPage);  
    $pdfMerged->save($folder . '.pdf');  
    
    

    mit den Ordner Zend und ZendPdf im selben Ordner wie das Skript. Funzt ...;

    mfg

    tami

    1. hi tami,

      hi tami,

      <?php
      require_once 'Zend/Loader/StandardAutoloader.php';
      $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
      $loader->register();
      $loader->registerNamespace('ZendPdf', DIR . '/ZendPdf');  //add this line.
      use ZendPdf\PdfDocument;
      $pdfMerged = new PdfDocument();
      $folder = "Ausgang";
      $pdfFileNames = glob($folder . "/*.pdf");
      foreach ($pdfFileNames  as $pdfFileName) {
          $pdfTmp = PdfDocument::load($pdfFileName);
          foreach($pdfTmp->pages as $page){
              $clonedPage = clone $page;
              $pdfMerged->pages[] = $clonedPage;
          }
      }
      unset($clonedPage);
      $pdfMerged->save($folder . '.pdf');

      
      >   
      > mit den Ordner Zend und ZendPdf im selben Ordner wie das Skript. Funzt ...;  
        
      Die ZendPdf-Klassen braucht es natürlich ...: <https://github.com/zendframework/ZendPdf>  
        
      S.a. <http://stackoverflow.com/questions/19538535/how-to-use-zendpdf-pdf-in-zend-framework-2> bezüglich Einbindung im Loader und <http://blog.justin.kelly.org.au/merge-pdfs-with-the-zend-framework/> bezüglich Duplizierung und Merging.  
        
        
      mfg  
        
      tami
      
      1. hi tami,

        im Ordner mit den PDF-Ordnern:

        <?php  
        // Zend and ZendPdf and Rob must be in same Directory:  
        $basePath = 'D:\xampplite\htdocs\ZFTest';  
          
        // autoload und namespaces  
        require_once $basePath . "/Zend/Loader/StandardAutoloader.php";  
        $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));  
        $loader->register();  
        $loader->registerNamespace('ZendPdf', $basePath . '/ZendPdf');  
        $loader->registerNamespace('Rob', $basePath . '/Rob');  
        use ZendPdf\PdfDocument;  
        use Rob\SumPdfsInFolders;  
          
        //choose foldernames (in same directory as this php-script)  
        $folderNames = array("Ausgang","Eingang","Fremd");  
        new SumPdfsInFolders($folderNames);
        

        Im Basefolder (Zend, ZendPdf) im Ordner Rob mit Dateinamen "SumPdfsInFolders.php":

        <?php  
        namespace Rob;  
        use ZendPdf\PdfDocument;  
          
        //takes folderslist and puts all pdfs of each folder in one pdf named as the folder  
        // documents must all be plain, no links to mailadresses, links do not work with ZendPdf at End of 2014  
        class SumPdfsInFolders {  
            //filelist of folders  
            private $_fileNames = array();  
            //will be object - PdfDocument  
            private $_mergedPage = NULL;  
          
            private function _message($message) {  
                echo "message: " . $message . "\n";  
            }  
          
           //walk filenames an clone  
            private function _walkAndClone() {  
                foreach ($this->_fileNames  as $fileName) {  
                    $this->_clonePageAndAdd($fileName);  
                }  
            }  
          
           //clone page and append to merge-document  
            private function _clonePageAndAdd($fileName) {  
                $tmpPdf = PdfDocument::load($fileName);  
                foreach($tmpPdf->pages as $page){  
                    $clonedPage = clone $page;  
                    $this->_mergedPdf->pages[] = $clonedPage;  
                }  
            }  
          
            public function __construct($folderNames) {  
                foreach ($folderNames as $folderName) {  
                    $this->_mergedPage = new PdfDocument();  
                    $this->_fileNames = glob($folderName . "/*.pdf");  
                    $this->_walkAndClone();  
                    $this->_mergedPage->save($folderName . '.pdf');  
                    $this->_message($folderName . " created");  
                }  
            }  
        }  
        
        

        Wie im Kommentar geschrieben, funktioniert das nicht, wenn in den PDFs Links drinne sind wie mailto: über einer Mailadresse. Das muss man dann erst mit nem PDF-Drucker drucken.

        mfg

        tami

        1. hi tami,

          $this->_mergedPdf->pages[] = $clonedPage;

          muss ->_mergedPage heißen:

            
          <?php  
          namespace Rob;  
          use ZendPdf\PdfDocument;  
            
          //takes folderslist and puts all pdfs of each folder in one pdf named as the folder  
          // documents must all be plain, no links to mailadresses, links do not work with ZendPdf at End of 2014  
          class SumPdfsInFolders {  
              //filelist of folders  
              private $_fileNames = array();  
              //will be object - PdfDocument  
              private $_mergedPage = NULL;  
            
              private function _message($message) {  
                  echo "message: " . $message . "\n";  
              }  
            
             //walk filenames an clone  
              private function _walkAndClone() {  
                  foreach ($this->_fileNames  as $fileName) {  
                      $this->_clonePageAndAdd($fileName);  
                  }  
              }  
            
             //clone page and append to merge-document  
              private function _clonePageAndAdd($fileName) {  
                  $tmpPdf = PdfDocument::load($fileName);  
                  foreach($tmpPdf->pages as $page){  
                      $clonedPage = clone $page;  
                      $this->_mergedPage->pages[] = $clonedPage;  
                  }  
              }  
            
              public function __construct($folderNames) {  
                  foreach ($folderNames as $folderName) {  
                      $this->_mergedPage = new PdfDocument();  
                      $this->_fileNames = glob($folderName . "/*.pdf");  
                      $this->_walkAndClone();  
                      $this->_mergedPage->save($folderName . '.pdf');  
                      $this->_message($folderName . " created");  
                  }  
              }  
          }  
          
          

          mfg

          tami