viele Word-Dateien in ein PDF stecken - Win7
tami
- programmiertechnik
hi alle,
gibt es eine schlichte möglichkeit, alle word-dokumente in einem ordner hintereinander in ein pdf zu bekommen? batch-artig?
mfg
tami
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
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
Aloha ;)
Ich habe bisher:
- FreePDF 4.04 über "Geräte und Drucker" als Standarddrucker
- bis zu 15 Worddokumente auf einmal anwählen und rechteMaus->Drucken
- im Dialog dann jeweils "Multidoc" wählen.
- Multidoc als Option in er Taskbar ist dann vorhanden
- beliebig weiter machen - leider nur 15 Stück auf einmal, sind an die 100 Dateien
- 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
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
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
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 50die 50 steht hier für das Limit und kann bei bedarf auch erhöht werden
Gruß
Jan
Nachtrag: DWORD muss den namen MultipleInvokePromptMinimum
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
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.
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
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
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
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