Wie erstelle ich aus Excel Sheets pdf-Dateien?

  • Hallo zusammen,

    wie erstelle ich mit AutoIt am besten aus mehreren Exceldateien mit jeweils mehreren Sheets aus jedem Sheet einen einzelne pdf-Datei?

    Mein erster Ansatz war über ausdrucken mit pdf-Drucker. Jedoch blieb das Script nach dem ersten ausdruck hängen. Problem war: Es sprang nicht zurück zum ExcelBook.

    Für Tips und Denksnstösse bin ich sehr dankbar.

    Gruß Buddha

  • Hängt von der Excel Version ab. Wenn Dein Excel bereits native PDF-Dateien erstellen kann, dann lässt sich das über das COM-Interface scripten.

  • Hallo Water,

    es ist Excel 2003 im Gebrauch. Lässt es sich bei dieser Version über das COM interface lössen?

    Gruß Buddha

  • Office 203 unterstützt noch keine PDF-Ausgabe.
    Du kannst aber Deinen PDF-Drucker als Ausgabegerät wählen und dann die Sheets über COM ausdrucken. Oder wenn Du keine Lust hast im Excel mit dem Drucker rumzufummeln, dann setze im AutoIt Script den Standarddrucker, drucke die Sheets und setze den Standarddrucker wieder zurück.
    Auf dem englischen AutoIt Forum findest Du mit ExcelCOM ein erweitertes Excel UDF. Die Funktion _ExcelPrintRange sollte tun was Du brauchst.

    • Offizieller Beitrag

    Nutze PDFCreator, der verfügt über eine COM-Schnittstelle und eine entsprechende AutoIt-UDF zu deren Anwendung hatte ich auch schon mal gesehen (such mal hier oder im EN-Forum).
    Damit solltest du keine Probleme haben.
    Alternativ kannst du natürlich auch OpenOfficeOrg verwenden und von dort dein Excel-Dokument direkt als PDF ausgeben. Mit ca. 90% der Exceldokumente sollte das problemlos möglich sein. Nur wenn umfangreiche Formeln im Einsatz sind, ist eine direkte Umsetzung teils nicht möglich.

  • Nutze PDFCreator, der verfügt über eine COM-Schnittstelle und eine entsprechende AutoIt-UDF zu deren Anwendung hatte ich auch schon mal gesehen (such mal hier oder im EN-Forum).
    Damit solltest du keine Probleme haben.
    Alternativ kannst du natürlich auch OpenOfficeOrg verwenden und von dort dein Excel-Dokument direkt als PDF ausgeben. Mit ca. 90% der Exceldokumente sollte das problemlos möglich sein. Nur wenn umfangreiche Formeln im Einsatz sind, ist eine direkte Umsetzung teils nicht möglich.

    Hallo zusammen,

    wie erstelle ich mit AutoIt am besten aus mehreren Exceldateien mit jeweils mehreren Sheets aus jedem Sheet einen einzelne pdf-Datei?

    Mein erster Ansatz war über ausdrucken mit pdf-Drucker. Jedoch blieb das Script nach dem ersten ausdruck hängen. Problem war: Es sprang nicht zurück zum ExcelBook.

    Für Tips und Denksnstösse bin ich sehr dankbar.

    Gruß Buddha

    Hallo zusammen,

    wie erstelle ich mit AutoIt am besten aus mehreren Exceldateien mit jeweils mehreren Sheets aus jedem Sheet einen einzelne pdf-Datei?

    Mein erster Ansatz war über ausdrucken mit pdf-Drucker. Jedoch blieb das Script nach dem ersten ausdruck hängen. Problem war: Es sprang nicht zurück zum ExcelBook.

    Für Tips und Denksnstösse bin ich sehr dankbar.

    Gruß Buddha

    Irgendwas ist da schiefgelaufen.

    PDF Creator, genau.

    Einmal editiert, zuletzt von fschaef (18. Juni 2010 um 10:44)

  • hier mal meine Variante.
    Aufgabe:
    Aus der Warenwirtschaft sollen sämtliche Druckvorgänge als PDF Datei archiviert werden. Es gibt verschiedene Vorgänge, Mandanten und Formulare.
    Im Formular der einzelnen Vorgänge habe ich verschieden Felder mit weißer Schrift hinterlegt. Diese benutze ich um den Dateinamen zusammen zusetzten.
    Außerdem kann ich aus der extrahierten Text Datei Sonderfälle berücksichtigen und bearbeiten.
    Vielleicht hilft es dem einen oder anderen.

    Spoiler anzeigen
    [autoit]


    #cs
    GhostScript installieren
    http://www.ghostscript.com/

    [/autoit] [autoit][/autoit] [autoit]

    Redmon Drucker installieren
    http://pages.cs.wisc.edu/~ghost/redmon/de/redmon.htm

    [/autoit] [autoit][/autoit] [autoit]

    Redmon Einstellungen:

    [/autoit] [autoit][/autoit] [autoit]

    Redirect this port to the program
    C:\Programme\FreePDF_XP\redrun.exe : wird von $Cmdline[1] ausgewertet

    [/autoit] [autoit][/autoit] [autoit]

    Argument for this program are:
    d:\Programme\Archiv\prog\Archiv.exe %1 !Programmpfad darf nicht gemappt sein!

    [/autoit] [autoit][/autoit] [autoit]

    Output:
    Program handles output

    [/autoit] [autoit][/autoit] [autoit]

    Run:
    Hidden

    [/autoit] [autoit][/autoit] [autoit]

    Kein Häckchen bei Run as User

    [/autoit] [autoit][/autoit] [autoit]

    #ce

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $sRedrunFile = $Cmdline[1]

    [/autoit] [autoit][/autoit] [autoit]

    $sGhostProg = "C:\Programme\gs\gs8.54\bin\gswin32c.exe " ; GhostScript
    $sGhostPara = "-q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dNOSAFER -dAutoRotatePages=/PageByPage -dPDFSETTINGS=/prepress -dCompatibilityLevel=1.4 "
    $sGhostPara &= '-sOutputFile=' & $sRedrunFile & '.pdf ' & $sRedrunFile

    [/autoit] [autoit][/autoit] [autoit]

    ; Mache aus dem PDF eine Text Datei
    ; http://en.wikipedia.org/wiki/Pdftotext
    $sPdf2TxtProg = "c:\programme\pdf\pdftotext.exe "
    $sPdf2TxtPara = "-f 1 -raw " & $sRedrunFile & ".pdf " & $sRedrunFile & ".txt"

    [/autoit] [autoit][/autoit] [autoit]

    RunWait(@ComSpec & ' /c ' & $sGhostProg & $sGhostPara, @ScriptDir, @SW_HIDE) ; erzeuge PDF-Datei e:\temp\redaxxxx.pdf
    Sleep(500)
    RunWait(@ComSpec & ' /c ' & $sPdf2TxtProg & $sPdf2TxtPara, @ScriptDir, @SW_HIDE) ; aus dieser PDF-Datei erzeuge TXT-Datei e:\temp\redaxxxx.txt
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    ; In der ersten Zeile stehen im Formular die Parameter wie Rechnungsnummer Datum Mandant und Formularnummer. Weiße Schrift auf weißen Grund
    $line = FileReadLine($sRedrunFile & ".txt") ; lese 1 Zeile ein aus e:\temp\redaxxxx.txt
    $aLine = StringSplit($line, " ") ; separiere 1.Zeile nach Leerzeichen ist Trenner

    [/autoit] [autoit][/autoit] [autoit]

    ;
    ; weiterer Programm Code
    ;
    ;

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; PDF mit Wasserzeichen wird erzeugt
    ; http://www.lagotzki.de/pdftk/index.html
    $sPdfTkProg = "C:\Programme\pdf\pdftk.exe "
    $sPdfTkPara = $sRedrunFile & ".pdf background wasser" & $sMandant & ".pdf dont_ask output " & $sNewPDF ; 'background wasser" & $sMandant' Briefpapier des Mandanten
    RunWait(@ComSpec & ' /c ' & $sPdfTkProg & $sPdfTkPara, @ScriptDir, @SW_HIDE)
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

    Gruß Paule