Hinzufügen Klicken Sie im Windows Explorer mit der rechten Maustaste auf Als PDF speichern

8

Ich suche nach einer Möglichkeit, einige Optionen zum Kontextmenü mit der rechten Maustaste in Windows 7 hinzuzufügen. Ich habe wirklich nicht viel Erfahrung mit dem Programmieren, aber ich bin sehr eifrig und lernbereit.

Insbesondere möchte ich in der Lage sein, mit der rechten Maustaste auf ein Word-Dokument zu klicken und es als PDF-Datei konvertieren oder speichern zu lassen. Ich möchte vorhandene Dokumente in das PDF-Format konvertieren können. Bei den Dokumenten handelt es sich in 99% der Fälle um Microsoft Word-Dokumente. Wenn es also eine Möglichkeit gibt, dies zu automatisieren, wird die Anleitung dort geschätzt.

Ich bin mir bewusst, dass es andere Methoden gibt, wie das Herunterladen eines "PDF-Druckers", aber ich würde diese Methode lieber vermeiden, wenn ich könnte. Ich möchte auch vermeiden, dass nach Möglichkeit mehr Software heruntergeladen wird, um sie auf den PCs des Benutzers zu installieren.

Hoffentlich bin ich nicht sehr anspruchsvoll, aber ich schätze wirklich jede Hilfe oder Anleitung, die Sie anbieten können.

(Als Bonus würde ich gerne sehen, ob ich auch die Option "Als PDF speichern und wenn möglich als Anhang senden" erhalten kann.)

cyborgcommando0
quelle
Mit Office 2010 können Sie als PDF speichern. Welche Office-Version verwenden Sie?
Bryan

Antworten:

8

Hier ist die Lösung für Word 2013. Sie umfasst nur das Hinzufügen eines Visual Basic-Makros zu Word und einige Datensätze zur Registrierung.

Erstellen Sie ein globales Makro in Word 2013: Öffnen Sie ein beliebiges Dokument in Word, öffnen Sie den integrierten Visual Basic-Editor (Alt + F11), wählen Sie im linken Bereich Normal aus, klicken Sie im Hauptmenü auf Einfügen und dann auf Modul und kopieren Sie den Code in der Editor:

Sub ExportToPDFext()
    ChangeFileOpenDirectory ThisDocument.Path
    ActiveDocument.ExportAsFixedFormat _
        OutputFileName:=Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".")) + "pdf", _
        ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, _
        OptimizeFor:=wdExportOptimizeForPrint, _
        Range:=wdExportAllDocument, _
        From:=1, _
        To:=1, _
        Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, _
        KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, _
        DocStructureTags:=True, _
        BitmapMissingFonts:=True, _
        UseISO19005_1:=False
    Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub

Speichern Sie das Modul (Strg + S) und schließen Sie den Visual Basic-Editor und Word.

Fügen Sie dann die Kontextmenüoptionen zur Registrierung hinzu. Erstellen und Ausführen einer Datei mit der Erweiterung .reg:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Word.Document.8\shell\SavePDFhere]
@="Save PDF here"

[HKEY_CLASSES_ROOT\Word.Document.8\shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\Office15\\WINWORD.EXE\" /mExportToPDFext /q \"%1\""

[HKEY_CLASSES_ROOT\Word.Document.12\shell\SavePDFhere]
@="Save PDF here"

[HKEY_CLASSES_ROOT\Word.Document.12\shell\SavePDFhere\command]
@="\"C:\\Program Files\\Microsoft Office\\Office15\\WINWORD.EXE\" /mExportToPDFext /q \"%1\"" 

Der Rechtsklick auf "PDF hier speichern" wird im Explorer für DOC- und DOCX-Dateien angezeigt.

Es funktioniert unbeaufsichtigt und unterstützt die Stapelkonvertierung mehrerer ausgewählter Dokumente.

Oleksiy Kovtun
quelle
Oleksiy, funktioniert das zufällig mit Word 2010?
Saulius2
saulius2, leider muss ich Word 2010 nicht überprüfen.
Oleksiy Kovtun
Ich habe diese Sache einige Tage später mit Office 2010 überprüft. Das funktioniert auch hier. Vielen Dank.
Saulius2
4

Verwenden Sie die Befehlszeilenfunktion von PDFCreator , um druckbare Dateien in PDF zu konvertieren

  1. Laden Sie PDFCreator zusammen mit seinem COM-Modul herunter und installieren Sie es . Das COM-Modul ist wichtig, da sonst das folgende VBscript nicht mit Ihrem PDF-Drucker kommunizieren kann

  2. Kopieren Sie diesen Code, fügen Sie ihn in eine Textdatei ein und speichern Sie ihn unter Convert2PDF.vbs

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set PDFCreator = Wscript.CreateObject("PDFCreator.clsPDFCreator", "PDFCreator_")
    
    With PDFCreator
     ReadyState = 0
     .cStart "/NoProcessingAtStartup"
     .cOption("UseAutosave") = 1
     .cOption("UseAutosaveDirectory") = 1
     .cOption("AutosaveFormat") = 0
     .cOption("AutosaveStartStandardProgram") = 0
     DefaultPrinter = .cDefaultprinter
     .cDefaultprinter = "PDFCreator"
     .cClearcache
     .cPrinterStop = false
     .cOption("AutosaveDirectory") = fso.GetParentFolderName(WScript.Arguments(0))
     .cOption("AutosaveFilename") = fso.GetBaseName(WScript.Arguments(0))
     .cPrintfile cStr(WScript.Arguments(0))
      c = 0
      Do While (ReadyState = 0) and (c < 120)
       c = c + 1
       Wscript.Sleep 250
      Loop
     .cDefaultprinter = DefaultPrinter
     .cClearcache
     WScript.Sleep 200
     .cClose
    End With
    
    Public Sub PDFCreator_eReady()
     ReadyState = 1
    End Sub
    
  3. Platzieren Sie eine Verknüpfung zu Ihrem VBscript in Ihrer Shell: sendto-Ordner für einen schnelleren Zugriff

    Geben Sie hier die Bildbeschreibung ein

    (oder)

    Führen Sie Ihr VBScript über die Befehlszeile aus, wenn Sie die vollständige Kontrolle über den Namen der Ausgabedatei haben möchten.
    Verwenden Sie dazu diesen leicht geänderten Code .

     C:\Convert2PDF.vbs "C:\inputfile.doc" "C:\outputfolder" "outputfilename"
    
Nixda
quelle
Schön. Aber ich fand PDCreator manchmal im Skript abstürzen. In diesem Fall bleibt der Standarddrucker unrestauriert, was für Gelegenheitsbenutzer ein Problem darstellt. Es würde wahrscheinlich ausreichen, einige VBA-Anweisungen hinzuzufügen, um Ausnahmen abzufangen, aber schließlich habe ich mich für die Verwendung von einfachem MS Office 2010 entschieden :( da es realistischer funktioniert.
saulius2
0

Ich entschuldige mich dafür, dass ich diese Frage vergessen habe, aber zumindest beantworte ich die Frage endlich, oder?

Ich konnte keinen Weg finden, dies so zu erreichen, wie ich es wollte, also habe ich eine leichte Problemumgehung durchgeführt. Ich habe 2 separate .ahk- Skripte ( AutoHotkey ) erstellt und kompiliert und sie den Kontextmenüs mit der rechten Maustaste hinzugefügt.

Hier sind die Skripte:

Konvertieren von .DOC und .DOCX in PDF (erfordert Office 2007 oder 2010)

; AutoHotkey Script by Cyborg v1.5

; This script is designed to be compiled and ran in the user's Send To Right-Click Menu.
; The user needs to right click a word document go into the send to menu and choose this
; script. After launching the script the selected file will open in its version of Word
; and open the menus to save it as a PDF. In this version the user is unable to rename the
; the file.

; NOTE: In order for this to work correctly with Office 2007 you MUST have already installed
; the PDF/XPS converter from Microsoft.

SetTitleMatchMode 2

Loop %0%
{
Path := %A_Index%
Run,% Path
}

IfWinExist, Microsoft Word
    WinActivate

sleep 1000

Word2007:
IfExist, C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE ; Microsoft Word 2007
{
    Send ^s
    Send !f
    Send f
    Send p
    Sleep 500
    Send {Enter}
    Sleep 500
    WinClose, Microsoft Word
}
else
{
    Goto, Word2010
}
return

Word2010:
IfExist, C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE ; Microsoft Word 2010
{
    Send ^s
    Send !f
    Send d
    Send p
    Send a
    Sleep 500
    Send {Enter}
    Sleep 500
    WinClose, Microsoft Word
}
else
{
    Goto, Word2013
}
return

Konvertieren Sie .XLS und .XLSX in PDF (erfordert Office 2007 oder 2010)

; AutoHotkey Script by Cyborg v1.5

; This script is designed to be compiled and ran in the user's Send To Right-Click Menu.
; The user needs to right click a word document go into the send to menu and choose this
; script. After launching the script the selected file will open in its version of Excel
; and open the menus to save it as a PDF. In this version the user is unable to rename the
; the file.

; NOTE: In order for this to work correctly with Office 2007 you MUST have already installed
; the PDF/XPS converter from Microsoft.

SetTitleMatchMode 2

Loop %0%
{
Path := %A_Index%
Run,% Path
}

IfWinExist, Microsoft Excel
    WinActivate

sleep 1500

Excel2007:
IfExist, C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE ; Microsoft Excel 2007
{
    Send ^s
    Send !f
    Send f
    Send p
    Sleep 700
    Send {Enter}
    Sleep 700
    WinClose, Microsoft Excel
}
else
{
    Goto, Excel2010
}
return

Excel2010:
IfExist, C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE ; Microsoft Excel 2010
{
    Send ^s
    Send !f
    Send d
    Send p
    Send a
    Sleep 500
    Send {Enter}
    Sleep 500
    WinClose, Microsoft Excel
}
else
{
    Goto, Excel2013
}
return

Excel2013:
    MsgBox, Excel 2013 Not Configured for this Script.
return

Nachdem ich diese Skripte geschrieben und in EXE-Dateien kompiliert hatte, platzierte ich sie in SendTo, indem ich dieser Anleitung von HowToGeek folgte .

Möglicherweise können Sie auch jedes Skript auf jeden Dateityp anwenden, aber das habe ich nicht untersucht.

cyborgcommando0
quelle