PDFについての質問です。私的にズバリご回答、先着の方には100ptを送信させていただきます。


・複数のPDFファイルに、開くパスワードのロックを、まとめて設定したい
・ドラッグすれば、あらかじめ設定したパスワードが、一括で反映されるようなツール

AcrobatDCなどのマクロ?を利用した、敷居の高い方法は見つけました。DCやProを持ってはいますが、難しくて手が出ません。

CubePDF Utilに類似の機能がありましたが、開くパスワードを設定するまでに、何度も画面を遷移させる必要がありました。0.4.1bです。Cube独自?のパスワード設定を施した後、一般のPDFパスワード設定画面が表示される状態です。

海外製のツールでも構いません。単機能ほどうれしいです。よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2018/05/21 14:16:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント200pt

まず定番ですが、 pdftk をダウンロードしてインストールします。
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/


下記をメモ帳にコピーし、適当な場所(デスクトップなど)に "PDFパスワード化.vbs"
のような名前で保存します。

このファイルに PDF ファイルをドロップすれば、パスワードを付けたファイルに置き換えます。
PDF ファイルを複数選択して、一括ドロップしてもかまいません。

パスワードは先頭の Passwors = に設定してください。現在は "12345" です。
元のファイルを残したい場合は、OverWrite = False に変更してください。
test.pdf は残り、パスワード付きの test.pw.pdf が作成されます。

Option Explicit
Const Password = "12345"
Const OverWrite = True

Public fso
Public wsh

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set wsh = CreateObject("WScript.Shell")

If WScript.Arguments.Count = 0 Then
    MsgBox "ここにPDFファイルをドロップしてください"
    WScript.Quit
End If

Dim i
Dim pdfFile
For i=0 To WScript.Arguments.Count - 1
    pdfFile = WScript.Arguments.Item(i)
    If fso.FileExists( pdfFile ) = True Then
        If UCase( fso.GetExtensionName( pdfFile ) ) = "PDF" Then
           AddPassWord( pdfFile )
        Else
           MsgBox "PDFファイルではありません[" & pdfFile  & "]" 
        End If
    Else
        MsgBox "ファイルがありません[" & pdfFile  & "]" 
    End If
Next

Sub AddPassWord( pdfFile )
    Dim outPdfFile
    outPdfFile = Replace( pdfFile, ".", ".pw." )

    If fso.FileExists( outPdfFile ) = True Then
        fso.DeleteFile outPdfFile
    End If

    wsh.Run "pdftk.exe """ & pdfFile & """ output """ & outPdfFile & """ user_pw """ & Password & """", 0, True

    If fso.FileExists( pdfFile ) = False Then
        MsgBox pdfFile & "はパスワードがつけられませんでした。"
        Exit Sub
    End If
    If OverWrite = True Then
        fso.DeleteFile  pdfFile
        fso.MoveFile outPdfFile, pdfFile
    End If
End Sub

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません