Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Acrobat

Acrobat
11.12.2012 23:57:29
John
Hallo zusammen
Arbeit seit Jahren mit folgendem Befehl
Set acroApp = CreateObject("AcroExch.App")
Set avDoc = CreateObject("AcroExch.avDoc")
acroApp.Show
Gibt es eine Freewarealternatove zu Acrobat? Möchte das bei meiner Kollegin installieren, aber schauen, dass sich die Kosten für sie im Rahmen halten.
Geht das auch evtl. mit einem anderen Code oder Programm?
Danke und Gruss
John

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Acrobat
12.12.2012 04:14:19
fcs
Hallo John,
was willst du denn erreichen bzw. machen?
Zum Erstellen von PDF-Dateien gibt es reichlich Freeware, die sich als Drucker einrichten.
z.B. FreePDF, PDF24 Creator, etc. Einen so eingerichtetn Drucker kann man dann natürlich auch in eine VBA-Routine einbinden.
Viele PDF-Freewareprogramme haben auch noch Zusatzfunktionen, mit denen PDF-Dokumente in begrenztem Umfang bearbeitet werden können.
Bei Microsoft Office-Produkten kann man seit der 2007er-Version Dokumente auch im PDF-Format speichern. Auch dies kann man in einer VBA-Routine einbauen.
Zur Anzeige der erstellten PDF wird dann meist der Acrobat-Reader verwendet.
Gruß
Franz

Anzeige
AW: Acrobat
12.12.2012 07:28:41
John
Hallo Franz
Ich habe fertige PDF Dateien die mit Inhalten aus diversen Zellen befüllt werden sollen.
FreePDF ist bei der Kollegin installiert. Wie würde denn da der Befehl heißen?
ich habe das mal auf dem firmennotebook probiert gehabt, auch dort ist FreePDF drauf gewesen und da hat es eben nicht funktioniert, weil ich immer dachte, dass eben das vollwertige Acrobat fehlt.
Hier nochmals der vollständige Code bis zur ersten Zelle
Sub Variante()
Dim pdfPath As String
Dim TestVal As String
'Dim pdDoc As Acrobat.CAcroPDDoc
'Dim avDoc As Acrobat.CAcroAVDoc
'Dim acroApp As Acrobat.CAcroApp
Dim pdDoc As Object
Dim avDoc As Object
Dim acroApp As Object
Dim jsObj As Object
Dim fieldObj As Object
' hier liegt die Test Datei
pdfPath = "D:\Arbeitsdaten\Variante.pdf"
Set acroApp = CreateObject("AcroExch.App")
Set avDoc = CreateObject("AcroExch.avDoc")
acroApp.Show
' doc öffnen
If avDoc.Open(pdfPath, "Variante") Then
Set pdDoc = avDoc.GetPDDoc()
Set jsObj = pdDoc.GetJSObject()
' Zugriff auf das Feld
Set fieldObj = jsObj.getField("Name")
' ... und wert setzen
fieldObj.Value = Worksheets("Dateneingabe").Range("C4").Value
Vielen Dank
John

Anzeige
AW: Acrobat
12.12.2012 09:06:03
mumpel
Hallo!
Probier den PDF-Creator. VBA-Beispiele dafür findest Du hier im Forenarchiv und im Internet. Ob man damit auch ausfüllen kann weiss ich aber nicht. http://de.pdfforge.org
Gruß, René

AW: Acrobat
13.12.2012 03:22:19
fcs
Hallo John,
mit dem AcrobatReader wird bei der Installtion desProgramms auch einiges an Objekt-Bibliotheken installiert, in denen auch die in deinem Code angesprochenden Objekt-Typen auftauchen.
Ich hab aber keine Ahnung, ob man damit via VBA oder VB-Script einen Datentransfer von Excel in die Formularfelder eines PDF-Formulars realisieren kann, ohne eine Acrobat-Vollversion zu installieren.
Gruß
Franz

Anzeige
AW: Acrobat
13.12.2012 10:11:48
mumpel
Mit Adobe-Reader XI dürfte es funktionieren, da dieser PDF-Formulare auch speichern kann. Dieses Thema hatten wir hier erst kürzlich. Da ging es auch.
;
Anzeige
Anzeige

Infobox / Tutorial

PDF-Daten mit Excel und Acrobat automatisieren


Schritt-für-Schritt-Anleitung

Um Daten aus Excel in ein PDF-Dokument zu übertragen, kannst du die folgenden Schritte ausführen. Diese Anleitung setzt voraus, dass du die Adobe Acrobat-Software installiert hast.

  1. Öffne Excel und erstelle ein neues Makro:

    • Gehe zu „Entwicklertools“ > „Visual Basic“.
    • Erstelle ein neues Modul.
  2. Füge den folgenden VBA-Code ein:

    Sub Variante()
       Dim pdfPath As String
       Dim pdDoc As Object
       Dim avDoc As Object
       Dim acroApp As Object
       Dim jsObj As Object
       Dim fieldObj As Object
    
       ' Hier liegt die Test Datei
       pdfPath = "D:\Arbeitsdaten\Variante.pdf"
    
       Set acroApp = CreateObject("AcroExch.App")
       Set avDoc = CreateObject("AcroExch.avDoc")
       acroApp.Show
    
       ' Dokument öffnen
       If avDoc.Open(pdfPath, "Variante") Then
           Set pdDoc = avDoc.GetPDDoc()
           Set jsObj = pdDoc.GetJSObject()
    
           ' Zugriff auf das Feld
           Set fieldObj = jsObj.getField("Name")
    
           ' Wert setzen
           fieldObj.Value = Worksheets("Dateneingabe").Range("C4").Value
       End If
    End Sub
  3. Passe den pdfPath an: Stelle sicher, dass der Pfad zu deinem PDF-Dokument korrekt ist.

  4. Führe das Makro aus: Klicke auf „F5“ oder gehe zu „Ausführen“ > „Sub/UserForm ausführen“.


Häufige Fehler und Lösungen

  • Fehler: „Objekt nicht gefunden“:

    • Lösung: Stelle sicher, dass die Adobe Acrobat-Software installiert ist und dass die entsprechenden Objektbibliotheken aktiviert sind (unter „Extras“ > „Verweise“).
  • Fehler: Das PDF-Dokument öffnet sich nicht:

    • Lösung: Überprüfe den Pfad zur PDF-Datei. Achte darauf, dass die Datei existiert und der Pfad korrekt ist.
  • Fehler: Formularfeld wird nicht ausgefüllt:

    • Lösung: Vergewissere dich, dass das Formularfeld „Name“ tatsächlich existiert. Du kannst den Namen des Feldes in Acrobat überprüfen.

Alternative Methoden

Falls du keine Adobe Acrobat-Version hast, kannst du auch andere PDF-Tools nutzen:

  • PDFCreator: Mit diesem Tool kannst du PDF-Drucker installieren und in VBA einbinden.
  • FreePDF: Diese Software ermöglicht das Erstellen von PDFs über einen Druckauftrag.

Ein Beispiel für den VBA-Code mit PDFCreator könnte so aussehen:

Dim pdfCreator As Object
Set pdfCreator = CreateObject("PDFCreator.JobQueue")
' Hier könnte weiterer Code folgen, um das PDF zu erzeugen.

Praktische Beispiele

Hier ist ein einfaches Beispiel, um den Adobe Reader zu nutzen, um einen Stempel dauerhaft einzublenden:

Sub StempelEinblenden()
    Dim acroApp As Object
    Dim avDoc As Object
    Set acroApp = CreateObject("AcroExch.App")
    Set avDoc = CreateObject("AcroExch.avDoc")

    avDoc.Open "D:\Pfad\zu\deinem\Dokument.pdf", ""
    ' Stempel hinzufügen (hier musst du den exakten Stempel-Pfad angeben)
    avDoc.AddStamp "D:\Pfad\zu\deinem\Stempel.pdf"
    avDoc.Close True
    acroApp.Exit
End Sub

Tipps für Profis

  • Objektbibliotheken aktivieren: Stelle sicher, dass die richtigen Objektbibliotheken in deinem VBA-Projekt aktiviert sind, um die Funktionen von Acrobat zu nutzen.
  • PDF-Felder überprüfen: Nutze die Acrobat-Software, um sicherzustellen, dass alle benötigten Formularfelder vorhanden und korrekt benannt sind.
  • Debugging: Verwende Debug.Print in deinem Code, um Werte auszugeben und Fehler leichter zu identifizieren.

FAQ: Häufige Fragen

1. Kann ich PDF-Dokumente ohne Acrobat erstellen? Ja, es gibt kostenlose Alternativen wie PDFCreator oder FreePDF, die PDF-Dokumente erstellen können.

2. Funktioniert das auch mit älteren Versionen von Excel? Ja, die oben genannten VBA-Codes sollten ab Excel 2007 funktionieren, solange die entsprechenden Bibliotheken vorhanden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige