PDF erstellen + zusammenfügen

  • Hallo,

    ich habe div. Excel-Dateien, die ich alle je zu einer PDF umwandeln und später in 1 Datei zusammenführen möchte. Ich denke dass das erstellen kein Problem wird, jedoch die Frage, gibts schon die Möglichkeit, PDFs mit Hilfe von AutoIt zusammen zu führen? Falls ja, kann man auch die Reihenfolge bestimmen? Falls dies nicht möglich sein sollte, würde ich mit AutoIt die Dateien noch umbenennen lassen (1..., 2..., 3...) ... bliebe nur noch die Frage, ob zusammenführen geht.

    Besten Dank für Eure Hilfe.

  • Wieso nimmst du dafür nicht einfach einen "PDF-Creator"?
    Ich denke das diese Aufgabe nur mit erheblichen Aufwand, und wenn überhaupt, mit AutoIt zu lösen ist.

    Gruß Paul

    • Offizieller Beitrag

    Ich kann pPanther nur zustimmen: Verwende PDFCreator, damit hast du auch fast keinen Aufwand und kannst sicher sein, dass das gewünschte Ergebnis bei rauskommt. ;)
    Es gibt eine UDF, die auf die Kommandozeilenbefehle des PDFCreators zugreift, bemühe mal die Hilfe. Aber wenn es nichts ständig wiederkehrendes ist, was du vorhast, bist du schneller, wenn du die Dokumente per Hand alle in die Warteschlange druckst und dann zusammenfügst.

    Zitat

    bzw mind. das umbenennen

    Was willst du denn Umbenennen?? - Wenn du die Dokumente zusammenführst bleibt doch nur eine Datei übrig!

  • Kenne PDF Creator nicht aber für mergen habe ich sonst immer das hier genommen...

    http://www.pdfsam.org/

    Merge und Cut ist ja schon etwas mehr als nur aus einem Dokument ein PDF zu machen,

    Nur Speichern .... für MSOffice gibts dann noch http://www.microsoft.com/downloads/en/details.aspx?FamilyID=f1fc413c-6d89-4f15-991b-63b07ba5f2e5&displaylang=en

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • ich habe ca 350 excel-dateien, die in einer bestimmten reihenfolge zu einer pdf gemacht werden müssen, für 2 bereiche (also 2x350) ... und das alle 2 monate. per hand kannste das knicken.

    per hand alle dateien im explorer markieren und zu je 1 pdf machen, muss ich jedes mal den speicherort bestätigen (adobe prof, arbeitsrechner ohne admin-rechte). nervt auch.

    d. h. ich würde mind. alle excel-dateien silent mit autoit zu pdf machen wollen, danach die pdfs entsprechend einer excel-liste umbennen/ nummerieren (von 1 bis ende) und dann "manuell" in adobe zusammenführen. da sollte er ja automatisch von 1 anfangend die dateien zusammenführen, oder?

    • Offizieller Beitrag

    Viel zu umständlich, wenn du weiß, wie PDFCreator arbeitet.
    1. PDFCreator als Standard Drucker wählen
    2. (per Skript) alle deine 350 Dateien in die Druckerwarteschlange des PDFCreators drucken
    3. Wenn du willst kannst du jetzt noch immer die Reihenfolge ändern (Listview-Übersicht mit den Druckaufträgen)
    4. alle Druckaufträge zu einem PDF-Dokument drucken - ferddisch

    Ich weiß nicht, ob es evtl. ein Limit für das Datenvolumen der zu verarbeitenden Files gibt, aber 85 Worddateien mit einem Gesamtvolumen von ~100 MB hatte ich auf diese Weise schon verarbeitet.

  • bis auf das sortieren von hand soweit in ordnung, aber das würde mir zu lange dauern, da jede datei an den richtigen ort zu schieben. aber schonmal besten dank ... mal schauen, was ich gebastelt bekomme.


    Das sortieren kannst du doch schon dadurch erreichen, dass du die Dateien in der richtigen Reihelfolge zum Ducker schickst.

  • Du kennst PDF Creator nicht, und hast ihn auch nicht ausprobiert. Warum informierst du dich nicht einfach vorher, was das Teil kann?

    PDF Creator Seite

    Mehr sage ich dazu nicht.

    Gruß Paul

  • Deine "bestimmte Reienfolge" sieht wie aus?
    Ich denke mal das sie alle ein Datum haben, oder eine fortlaufende Zahl o.Ä?
    Wenn du das sagen kannst, kann man sehr wahrscheinlich auch die Sortierung in AutoIt übernehmen

  • Du kennst PDF Creator nicht, und hast ihn auch nicht ausprobiert. Warum informierst du dich nicht einfach vorher, was das Teil kann?

    PDF Creator Seite

    Mehr sage ich dazu nicht.

    Gruß Paul

    das ist soweit sogar korrekt, da, wie schon erwähnt, das ganze auf der arbeit benötigt wird, wo ich 1. keine admin-rechte habe und 2. nicht irgendwas "installieren" kann. die lösung müsste nacher auf jeden belieben arbeitsrechner funktionieren, daher fällt das schonmal weg ... aber adobe wird das sicherlich auch können. bin leider noch nicht soweit gekommen, hoffe das ich nächste/ übernächste woche dafür zeit finde.

    TheLuBu

    die bestimmte reihenfolge würde ich in excel untereinander schreiben. anhand der dateien kann man keine eindeutige reihenfolge festlegen.

  • Holla,

    stand vor kurzem vor der selben Problematik. Ich habe es auch mit einem pdf-Drucker gemacht. Aber wenn du nichts installieren darfst, ist es natürlich blöd. Kennst du den PDF-Grabber? Vll. gibt es den als mobile Version, ohne dass du was installieren brauchst. Damit kann man auch Exceldokumente in pdf's umwandeln. Um dann 350 Dokumente zu Drucken, kannst du ja was mit AutoIt machen, im Quick n' Dirty Stil. Einfach mit Mouseclicks und so. Brauchste danach ja sicher eh nicht wieder.
    Ich habe so auch paar hundert Dokumente bearbeitet...

  • btw. wenn das von mir erwähnte auch funktioniert, da braucht man nur Java, ist meist eeh da.
    Der Rest, das eigentliche Programm muss nicht installiert werden.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Hallo zusammen,

    ich hatte gestern endlich mal etwas Zeit, mich weiter mit dem Thema zu beschäftigen und ich habe was rausgefunden ;)
    Neben Adbobe Prof. haben alle Rechner bei uns noch PDF-XChange installiert. Dort kann man einstellen, dass er den Druckauftrag an eine bestehende PDF anhängen soll. DAS ist perfekt, einfacher als ich dachte und läuft auf jedem Rechner unserer Firma.

    Jetzt stellt sich mir nur die Frage, wie kann ich schnell mehrere hundert Excel-Dateien an diesen Drucker schicken, dazu 2 Fragen:

    1. Am einfachsten wäre sicher, dass ich den PDF-XChange-Drucker zum Standard-Drucker mache, so lange mein Programm quasi läuft. Wie mache ich das? Gerne würde ich auch den akt. Drucker speichern und später zurücksetzen.

    2. Wie drucke ich nun die Dateien? Muss ich dazu jede Excel-Datei öffnen oder gibts einen direkten Befehl (wie im Explorer-Kontextmenü "Print") um mir das zu ersparen?

    Thx für Eure Hilfe.

  • Also um den momentanen Drucker rauszufinden, solltest du dir mal
    diesen Thread ansehen.
    Um den PDF XChange zu setzen schau dir mal

    [autoit]

    _WinAPI_SetDefaultPrinter

    [/autoit]


    an.

    Zum drucken kannst du die Excel UDF von locodarwin ausm Englischen Forum benutzen

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ;
    ; Description: Print a worksheet.
    ; Syntax: _ExcelPrintSheet($oExcel, $vSheet, $iCopies = 1, $sActivePrinter = "", $fPrintToFile = False, _
    ; $fCollate = False, $sPrToFileName = "")
    ; Parameter(s): $oExcel - An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
    ; $vSheet - Either an A1 range, or an integer row number to start from if using R1C1
    ; $iCopies - How many copies to print (default = 1)
    ; $sActivePrinter - The URL and port of the printer to make active (default = "")
    ; $fPrintToFile - Flag, print to file instead of printer (default = False)
    ; $fCollate - Flag, to collate mutiple copies (default = False)
    ; $sPrToFileName - String filename to print to when printing to file (default = "")
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0 and sets @error on errors:
    ; @error=1 - Specified object does not exist
    ; @error=2 - Specified sheet number doesn't exist
    ; @error=3 - Specified sheet name doesn't exist
    ; @error=4 - $fPrintToFile out of range
    ; @error=5 - $fCollate out of range
    ; @error=6 - $iCopies must be between 1 and 255
    ; @error=7 - Trying to print to filename that is unspecified
    ; Author(s): SEO <locodarwin at yahoo dot com>
    ; Note(s): None
    ;
    ;===============================================================================
    Func _ExcelPrintSheet($oExcel, $vSheet, $iCopies = 1, $sActivePrinter = "", $fPrintToFile = False, _
    $fCollate = False, $sPrToFileName = "")
    If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
    If $fPrintToFile < 0 Or $fPrintToFile > 1 Then Return SetError(4, 0, 0)
    If $fCollate < 0 Or $fCollate > 1 Then Return SetError(5, 0, 0)
    If $iCopies < 1 Or $iCopies > 255 Then Return SetError(6, 0, 0)
    If $sActivePrinter = "" Then $sActivePrinter = $oExcel.ActivePrinter
    If $sPrToFileName = "" Then
    If $fPrintToFile = True Then Return SetError(7, 0, 0)
    EndIf
    If IsNumber($vSheet) Then
    If $oExcel.ActiveWorkbook.Sheets.Count < $vSheet Then Return SetError(2, 0, 0)
    Else
    Local $fFound = 0
    Local $aSheetList = _ExcelSheetList($oExcel)
    For $xx = 1 To $aSheetList[0]
    If $aSheetList[$xx] = $vSheet Then $fFound = 1
    Next
    If NOT $fFound Then Return SetError(3, 0, 0)
    EndIf
    $oExcel.Sheets($vSheet).Activate
    $oExcel.ActiveSheet.PrintOut(Default, Default, $iCopies, False, $sActivePrinter, $fPrintToFile, $fCollate, $sPrToFileName)
    Return 1
    EndFunc ;==>_ExcelPrintSheet

    [/autoit]

    Ansonsten geht evtl. auch

    [autoit]

    ShellExecuteWait

    [/autoit]


    mit verb = print, aber das müsstest du testen ;)