COM AddinのPDFMakerをスクリプトで操作してみる
OfficeのファイルをPDFに変換する方法はいろいろありますが、よく使われるものとして、仮想プリンタ(Adobe PDF)を使う方法と、アドインのAcrobat PDFMakerを使う方法があります。
特にワードをはじめとするOfficeファイルをPDFに変換するときには、PDFMakerを使うとみだしからしおりを作ったり、リンクをそのまま活かしたりと、高品質なPDFを作れます。パスワードを設定したPDFも作れます。
VBAをつかってPDFファイルを作るには、デフォルトのプリンタを仮想プリンタ(Adobe PDF)に設定して印刷させたり、PostScriptファイルを作って、Acrobat DistillerライブラリのFileToPDFメソッドを使う方法がよく知られています。
しかし、せっかくアドインがあるのだから、ここは、PDFMakerを使ってVBAでPDFを作る方法にトライです。
今回の記事では、PDFMakerAPI 1.0 Type Library を単独で使って、VBAでPDFファイルを作成するサンプルスクリプトとその概要を示します。その後、他の2つのライブラリ AdobePDFMakerForOffice と AdobePDFMakerX について若干言及しつつ、最後に資料としてPDFMAKERAPILibのPDFMakerSettings列挙体とsecuritySettingsクラスのプロパティ、それにAdobePDFMakerForOfficeのISettingsクラスのプロパティをオブジェクトブラウザから転載します。
ただし、この記事で述べる方法は、Adobeの公式なドキュメントもなくサポート対象外なので、動作保証もありません。自己責任で。
動作確認環境
- OS windows XP SP3
- Word 2002 SP3
- Excel 2002 SP3
- Access 2002 SP3
私のPC環境では、Wordのメニューバーに「Adobe PDF」があり、そのメニューは次のようになっています。
Officeのアプリケーションによって、設定項目が違います。
この環境のPDFMakerは、Docuworksと同時にインストールされている様なので、一般的な環境とは若干違うかもしれません。
VBAから単独で使えるのは PDFMakerAPI ぐらいか?
※一応、AdobePDFMakerForOfficeも使えます。
PC内にあるAdobeのものらしきライブラリをいろいろ試してみました。私の環境では、PDFMaker関連と思われるライブラリは、次の3つがあります。
- PDFMakerAPI 1.0 Type Library(PDFMakerAPI.tlb)
- AdobePDFMakerX(AdobePDFMakerX.tlb)
- AdobePDFMakerForOffice(AcrobatPDFMakerForOffice.tlb)
PDFMakerAPI.tlbとAdobePDFMakerX.tlbは C:\Program Files\Adobe\Acrobat 8.0\PDFMaker\Common に、
AcrobatPDFMakerForOffice.tlbは C:\Program Files\Adobe\Acrobat 8.0\PDFMaker\Office にありました。
名称から察するに、PDFMakerの本体がPDFMakerAPIでそのラッパーがAdobePDFMakerX、Office用のオプションがAdobePDFMakerForOfficeってとこでしょうか。勝手な推測です。
補足ですが、C:\Program Files\Adobe\Acrobat 8.0\PDFMaker\Common フォルダには PDFMakerAPI.dll というファイルもあり、プロパティを開くと、PDFMakerAPI Module 8.1.0.0 となっていて、著作権の項目は、Copyright 1984-2007 Adobe Systems Incorporated and its licensors. All rights reserved. と記されています。
PDFMakerAPI 1.0 Type Libraryの PDFMakerApp オブジェクトを使ってPDFを作る
PDFMakerAPI 1.0 Type Library 内のPDFMakerApp オブジェクトの CreatePDF メソッドを使って、PDFファイルを作ります。
ただし、この方法にもいくつか注意点があります。
まず、既に開いているファイルのPDFは作れません。CreatePDFメソッドの第1引数 srcFilePathに指定したファイルが開いていると、CreatePDFメソッドは kPDFMErrorOpeningFile (= -8 (&HFFFFFFF8))を返してエラーになります。
また、このスクリプトをWordファイルで走らせたときは、他のWordファイルからPDFを作ると、スクリプトがそのWordファイルを閉じるときに「このファイルはすでに開かれているため、保存できません」エラーが出ます。
CreatePDFメソッドを使うと、
対応したアプリケーションを立ち上げる→ファイルを開く→PDFファイルを作る→ファイルを閉じる→アプリケーションを閉じる
の一連の作業をするからでしょう。
ひょっとしたら、PDFMAKERAPILibライブラリ内の PDFMakerDriver オブジェクトの一連のメソッドが動いているのかもしれません。
なので、この方法がとれるのは、
- Excelのファイルに記述して、WordファイルからPDFを作る。
- Wordのファイルに記述して、ExcelファイルからPDFを作る。
- Accessに記述して、WordやExcelファイルからPDFを作る。
といったところでしょうか。
サンプルスクリプト
このサンプルスクリプトでは、srcFilePathで指定したファイルを、pdfFilePath指定したPDFファイルに変換します。PDF変換のオプションとして設定した項目は、以下のとおり。
セキュリティ関連
- ファイルを開く時のパスワードは「0000」
- 印刷は不許可とし、権限設定を変更する時のパスワードは「1111」
しおりやリンクなど
- PDFファイルにしおりを追加
- 文書情報を追加
Sub PDFMakerAPI_test() '=============================================================== '自身のアプリケーション以外のファイルをPDFに変換する際は、有用。 '参照設定 PDFMakerAPI 1.0 Type Library(PDFMakerAPI.tlb) 'convert closed office file to PDF with PDFMAKERAPILib '=============================================================== Dim myPDFMakerApp As PDFMAKERAPILib.PDFMakerApp Dim myConversionSettings As PDFMAKERAPILib.ConversionSettings '変換設定 Dim mySecuritySettings As PDFMAKERAPILib.securitySettings 'セキュリティ設定 Dim srcFilePath As String, pdfFilePath As String 'ファイルパス Dim myMsg As String Dim settingsFile As String Dim appType As Long Dim bitField As Long Dim settings As Long Dim PDFMRetVals As Long srcFilePath = "D:\test.doc" 'input office file ' srcFilePath = "D:\test.xls" pdfFilePath = "D:\test.pdf" 'output PDF file 'set PDFMakerApp,ConversionSettings and SecuritySettings objects Set myPDFMakerApp = New PDFMAKERAPILib.PDFMakerApp Set myConversionSettings = New PDFMAKERAPILib.ConversionSettings Set mySecuritySettings = myConversionSettings.GetSecuritySettings 'Get SecuritySettings 'Get File Application Type appType = myPDFMakerApp.GetSupportedAppType(srcFilePath) 'Make Security Parameters With mySecuritySettings 'Set Opening Password .OpenDocPasswd = "0000" .OpenDocPasswdNeeded = True 'Set Printing Password .PrintingModeAllowed = kPrintingAllowedNone .PermsPasswd = "1111" .PermsPasswdNeeded = True End With With myConversionSettings .LoadDefaultSettings .GetAppConversionDefaults appType, bitField, settingsFile .GetConversionParameters settings 'If applied default setting,it returns -1 'Show Conversion settings myMsg = "bitField : " & bitField & " &H" & Hex(bitField) myMsg = myMsg & vbCrLf & "settingsFile : " & settingsFile myMsg = myMsg & vbCrLf & "Defaultsettings : " & settings & " &H" & Hex(settings) 'Set Security Paramaters .SetSecuritySettings mySecuritySettings 'Make ConversionParamaters bitField = kCreateBookmarks + kCreateDocInfo + kCreateTextNotes 'Set ConversionParameters .SetConversionParameters (bitField) 'Check ConversionSettings myMsg = myMsg & vbCrLf & "bitField : " & bitField & " &H" & Hex(bitField) .GetConversionParameters settings myMsg = myMsg & vbCrLf & "settings : " & settings & " &H" & Hex(settings) End With 'Get PDF! 'return PDFMakerRetVals Enum PDFMRetVals = myPDFMakerApp.CreatePDF(srcFilePath, pdfFilePath, myConversionSettings) myMsg = myMsg & vbCrLf & "PDFMakerRetVals : " & PDFMRetVals & " &H" & Hex(PDFMRetVals) Debug.Print myMsg Set mySecuritySettings = Nothing Set myConversionSettings = Nothing Set myPDFMakerApp = Nothing End Sub
作成したPDFファイルのプロパティ
PDFを作成したアプリケーションは、「Word用Acrobat PDFMaker 8.1」となっています。
上記の制限内であれば、自由に使えそうです。
PDFMakerAPI 1.0 Type Library (PDFMakerAPI.tlb)について
参照設定でPDFMakerAPI 1.0 Type LibraryのチェックボックスをONにすると、オブジェクトブラウザでクラスやメソッドを参照できます。
オブジェクトブラウザで確認すると、このライブラリには5つのクラスがあります。
- ConversionSettings
- IDirectSink
- PDFMakerApp
- PDFMakerDriver
- securitySettings
興味のある方は実際にオブジェクトブラウザで確認していただくとして、PDF変換のメソッドはPDFMakerAppクラスにありそうです。
PDFMakerAppクラスには、次の5つメソッドがあります。
- CreatePDF (Create PDF)
- CreatePDFFromConfigXML (Create PDF From XML Config File)
- CreatePDFFromMultipleFiles (Create PDF from multiple files)
- CreatePDFFromObject (Create PDF from object within file)
- GetSupportedAppType
上記リストのカッコ内は、オブジェクトブラウザで示されている説明です。それぞれ名称どおりの働きをするのでしょうが、私はCreatePDFとGetSupportedAppTypeしか使っていません。
CreatePDFメソッドの定義は次のようになっています。
Function CreatePDF(srcFilePath As String, pdfFilePath As String, [pSettings], [bConvertSilent], [bShowProgress], [bConvertAsync], [pClientHandle]) As Long
返値はLong型となっており、使ってみると、PDFMakerRetVals 列挙型を返すようです。
第1引数のsrcFilePathには、PDFに変換するファイル 要はWordやExcelファイルのフルパス、第2引数のpdfFilePathには、出力するPDFファイルのフルパスを指定します。
第3引数のpSettingsには、ConversionSettings オブジェクトを指定します。第4引数以下は、私が使っている限りでは動作確認できませんでした。
ConversionSettings オブジェクトで変換設定する
PDFファイルに「しおり」や「みだし」をつけるかどうか、またパスワードの設定など、PDFの変換設定にはConversionSettings オブジェクトを使います。サンプルスクリプトで行った主な作業は以下のとおり。
- ConversionSettingsオブジェクトにGetSecuritySettingsメソッドを適用して、securitySettingsオブジェクトを取得する。
- securitySettings オブジェクトの各種プロパティを操作して、パスワードなどを設定する。
- ConversionSettingsオブジェクトのSetSecuritySettings メソッドで、変更後の securitySettings オブジェクトを適用する。
- ConversionSettingsオブジェクトのGetAppConversionDefaults メソッドで変換元ファイルの種類に応じた bitField を取得する。
- bitFieldを任意に変更する(PDFMakerSettings 列挙型の和)。
- SetConversionParameters メソッドで、変更後の bitFieldを適用する。
PDFのセキュリティ項目を変更するときに扱うsecuritySettings オブジェクトには14のプロパティがあります。参考資料として下に一覧を示してあるので、ご覧ください。
内容はオブジェクトブラウザでも確認できますし、自動メンバ表示も動作しますので、プロパティ名とオブジェクトブラウザに表示される説明からどんな項目か、ほぼ見当がつくでしょう。
なお、オブジェクトブラウザに表示される securitySettings クラスの説明に
Structure containing the security settings (Second Tab of Conversion Settings Dialog)
とあるように、このプロパティはセキュリティタブの設定項目と対応しているようです。
サンプルスクリプトでも分かると思いますが、ファイルを開くときにパスワードを要求するときは、OpenDocPasswdNeeded に True を設定し、OpenDocPasswd にパスワードを設定します。今回は、「0000」としました。また、サンプルスクリプトでは印刷を不許可にして、権限設定を変更する際のパスワードを「1111」にしてあります。私のPCにはAdobe Readerしかインストールされていないので、権限パスワードは確認できていませんが。
PDF変換設定を変更する
PDFの変換設定を変更するには、ConversionSettings オブジェクトの SetConversionParameters メソッドを実行します。引数として長整数型 settings をとりますが、これは PDFMakerSettings 列挙型の和であり、足算結果を16進数で解釈しているようです。
PDFMakerAPI 1.0 Type Libraryで変換設定を操作するときは、いちいちPDFMakerSettings 列挙型の和を指定しないといけないので、若干面倒です。
PDFMakerSettings 列挙型 の一覧も下の参考資料に示しましたので、ご覧ください。
全ての設定が使えるわけではない
おそらくいくつかのライブラリを組み合わせて使うことを想定しているものを、単体で使おうとしているので、思い通りに動作しないこともあります。
今回全ての設定を使い込んだわけでないのですが、少なくともExcelファイルをPDFに変換する際、kPromptForSheetSelection すなわち、「Excelのシートを確認するダイアログを表示する」をONにしても、ダイアログは表示されませんでした。Excelアプリケーションの標準ConversionParametersを読み込んで、値が&H8400017であることを確認しているのですが。
複数のワークシートを含んだブックを、今回の方法でPDFに変換すると、ファイルを開いた時にアクティブなワークシートだけがPDFに変換されます。
AdobePDFMakerForOfficeライブラリのPDFMakerオブジェクトを使ってPDFを作る
実は、PDFMakerAPIを単独で使うよりも、AdobePDFMakerForOfficeライブラリのPDFMakerオブジェクトと一緒に使う、下のサンプルスクリプトの方が使いやすい場面があるかもしれません。
変換設定の方法は、AdobePDFMakerForOfficeライブラリのISettingsオブジェクトの各プロパティを設定するだけ。
ただ、Officeの各アプリケーションを意識しないといけないのが、若干面倒かも。ま、お好みに応じて。
制限はPDFMakerAPIを単独で使うときと、ほぼ同じ。
以下に、いくつかサンプルスクリプトを示します。
WordのNormal.dotの標準モジュールに記述して、開いているファイルをPDF変換する
次に示すサンプルスクリプトは、Wordファイルに記述して起動すると、開いているWordファイルのPDFを同じフォルダに作成します。PDF Maker アドインの設定にかかわらず、PDFファイルには、ファイルを開く時のパスワード(0000)が設定されます。またPDFの作成後、PDFは表示されません。
Sub AdobePDFMakerForOffice_testSecurity() '=============================================================== 'アクティブなドキュメントをPDF変換するには、AdobePDFMakerForOfficeライブラリを使う。 '参照設定 PDFMakerAPI 1.0 Type Library(PDFMakerAPI.tlb) ' AdobePDFMakerForOffice(AcrobatPDFMakerForOffice.tlb) 'convert active document to PDF with AdobePDFMakerForOffice '=============================================================== Dim myPDFMaker As AdobePDFMakerForOffice.PDFMaker Dim myISettings As AdobePDFMakerForOffice.ISettings Dim myConversionSettings As PDFMAKERAPILib.ConversionSettings Dim mySecuritySettings As PDFMAKERAPILib.securitySettings Dim myObj As Variant Dim pdfFilePath As String 'not saved document cannot be converted If Not Application.ActiveDocument.Saved Then MsgBox "PDFに変換する前に、ファイルを保存してください。" Exit Sub End If 'get PDFMaker COMAddIn Object Set myPDFMaker = Nothing For Each myObj In Application.COMAddIns If InStr(UCase(myObj.Description), "PDFMAKER") > 0 Then Set myPDFMaker = myObj.Object Exit For End If Next If myPDFMaker Is Nothing Then MsgBox "PDFMaker add-in が見つかりませんでした。", vbAbortRetryIgnore Exit Sub End If 'set output PDF filepath pdfFilePath = Application.ActiveDocument.FullName pdfFilePath = Left(pdfFilePath, InStrRev(pdfFilePath, ".") - 1) & ".pdf" 'get SecuritySettings object and set security parameters (PassWord) Set myConversionSettings = New PDFMAKERAPILib.ConversionSettings Set mySecuritySettings = myConversionSettings.GetSecuritySettings mySecuritySettings.OpenDocPasswd = "0000" mySecuritySettings.OpenDocPasswdNeeded = True 'set Converion parameters and securitySettings object myPDFMaker.GetCurrentConversionSettings myISettings myISettings.OutputPDFFileName = pdfFilePath myISettings.ShouldShowProgressDialog = False myISettings.ViewPDFFile = False myISettings.securitySettings = mySecuritySettings 'create PDF myPDFMaker.CreatePDFEx myISettings, 0 Set myConversionSettings = Nothing Set mySecuritySettings = Nothing Set myPDFMaker = Nothing End Sub
Accessの標準モジュールに記述して、WordファイルをPDF変換
Sub AdobePDFMakerForOffice_Word() '=============================================================== 'ドキュメントをPDF変換するには、AdobePDFMakerForOfficeライブラリを使う。 '参照設定 PDFMakerAPI 1.0 Type Library(PDFMakerAPI.tlb) ' AdobePDFMakerForOffice(AcrobatPDFMakerForOffice.tlb) ' Microsoft Word 10.0 Object Library 'convert a document to PDF with AdobePDFMakerForOffice '=============================================================== Dim myPDFMaker As AdobePDFMakerForOffice.PDFMaker Dim myISettings As AdobePDFMakerForOffice.ISettings Dim myConversionSettings As PDFMAKERAPILib.ConversionSettings Dim mySecuritySettings As PDFMAKERAPILib.securitySettings Dim myObj As Variant Dim wdFilePath As String Dim pdfFilePath As String Dim myWD As Word.Application Set myWD = CreateObject("Word.Application") 'get PDFMaker COMAddIn Object Set myPDFMaker = Nothing For Each myObj In myWD.COMAddIns If InStr(UCase(myObj.Description), "PDFMAKER") > 0 Then Set myPDFMaker = myObj.Object Exit For End If Next If myPDFMaker Is Nothing Then MsgBox "PDFMaker add-in が見つかりませんでした。", vbAbortRetryIgnore Exit Sub End If 'set filepath wdFilePath = "D:¥test.doc" pdfFilePath = "D:¥test.pdf" myWD.Documents.Open wdFilePath 'get SecuritySettings object and set security parameters (PassWord) Set myConversionSettings = New PDFMAKERAPILib.ConversionSettings Set mySecuritySettings = myConversionSettings.GetSecuritySettings mySecuritySettings.OpenDocPasswd = "0000" mySecuritySettings.OpenDocPasswdNeeded = True 'set Converion parameters and securitySettings object myPDFMaker.GetCurrentConversionSettings myISettings With myISettings .OutputPDFFileName = pdfFilePath .ShouldShowProgressDialog = False .ViewPDFFile = False .securitySettings = mySecuritySettings End With 'create PDF myPDFMaker.CreatePDFEx myISettings, 0 Set myConversionSettings = Nothing Set mySecuritySettings = Nothing Set myPDFMaker = Nothing myWD.Quit wdDoNotSaveChanges Set myWD = Nothing End Sub
Accessの標準モジュールに記述して、ExcelファイルをPDF変換
(全てのワークシートを変換する設定にしてあります。)
Sub AdobePDFMakerForOffice_Excel() '=============================================================== 'ドキュメントをPDF変換するには、AdobePDFMakerForOfficeライブラリを使う。 '参照設定 PDFMakerAPI 1.0 Type Library(PDFMakerAPI.tlb) ' AdobePDFMakerForOffice(AcrobatPDFMakerForOffice.tlb) ' Microsoft Excel 10.0 Object Library 'convert a document to PDF with AdobePDFMakerForOffice '=============================================================== Dim myPDFMaker As AdobePDFMakerForOffice.PDFMaker Dim myISettings As AdobePDFMakerForOffice.ISettings Dim myConversionSettings As PDFMAKERAPILib.ConversionSettings Dim mySecuritySettings As PDFMAKERAPILib.securitySettings Dim myObj As Variant Dim wdFilePath As String Dim pdfFilePath As String Dim myXls As Excel.Application Set myXls = CreateObject("Excel.Application") 'get PDFMaker COMAddIn Object Set myPDFMaker = Nothing For Each myObj In myXls.COMAddIns If InStr(UCase(myObj.Description), "PDFMAKER") > 0 Then Set myPDFMaker = myObj.Object Exit For End If Next If myPDFMaker Is Nothing Then MsgBox "PDFMaker add-in が見つかりませんでした。", vbAbortRetryIgnore Exit Sub End If 'set filepath wdFilePath = "D:¥test.doc" pdfFilePath = "D:¥test.pdf" myXls.Workbooks.Open wdFilePath 'get SecuritySettings object and set security parameters (PassWord) Set myConversionSettings = New PDFMAKERAPILib.ConversionSettings Set mySecuritySettings = myConversionSettings.GetSecuritySettings mySecuritySettings.OpenDocPasswd = "0000" mySecuritySettings.OpenDocPasswdNeeded = True 'set Converion parameters and securitySettings object myPDFMaker.GetCurrentConversionSettings myISettings With myISettings .OutputPDFFileName = pdfFilePath .ShouldShowProgressDialog = False .ViewPDFFile = False .PrintActivesheetOnly = False '全てのワークシートを変換 .PromptForSheetSelection = False '「Adobe PDF に含める Excel ワークシートを選択」ダイアログを非表示 .securitySettings = mySecuritySettings End With 'create PDF myPDFMaker.CreatePDFEx myISettings, 0 Set myConversionSettings = Nothing Set mySecuritySettings = Nothing Set myPDFMaker = Nothing myXls.Quit Set myXls = Nothing End Sub
これらのスクリプトのポイントは、AdobePDFMakerForOffice.PDFMakerオブジェクトを、アプリケーションのCOMAddInsコレクションから参照しているところです。したがって、WordのNormal.dotの標準モジュールに記述するときは別として、AdobePDFMakerForOffice_WordやAdobePDFMakerForOffice_Excelのように、ほかのアプリケーションからPDF変換する時は、それぞれ変換するファイルのアプリケーションのインスタンスを明示的に作らなくてはいけません。
(既に開いているアプリケーションがあるなら、GetObject関数でそれを操作するのも一つの方法です。)
この、AdobePDFMakerForOfficeライブラリを使う方法は、Web上で見つけたコードに少し手を加えたものです。
ハック的な方法として出回っているのですが、変換元のファイルを明確に指定しずらい所や、特にワードの場合は他にインスタンスが開いているとNormal.dotの関係で思い通りの操作をするのが難しかったり(Wordのウィンドウを閉じられない)して、個人的にはあまり好みではありません。でも、コードとして分かりやすいのはこちらかな。
AdobePDFMakerX はうまく使えない(おまけ)
最後に残った AdobePDFMakerX ライブラリですが、これはどうにも活用できませんでした。
オブジェクトブラウザで見ている限りでは、オブジェクトの数も多く、差し込み印刷をPDFに変換するオブジェクトや、メール送信するオブジェクトもあるので、おそらくAdobePDFMakerXが活用できればいろいろできそうなのですが、どうにも思ったとおりに動かない。ひょっとしたら、いくつかのオブジェクトをうまく順番に使っていくとできるのかもしれません。誰か腕に覚えのある方、チャレンジしてみません?
読者の方のおかげです
実は、記事の公開当初、AdobePDFMakerForOfficeライブラリを使った方法は、CreatePDFExメソッドで異常終了しているようで、上手く動かないと書いていました。
その後、2013年2月下旬に、問い合わせフォームから、下記のようなメッセージをいただいたのです(一部抜粋)。
さて、「私の環境では完璧には動きません。」とありましたが、「Wordファイルにコードを書いて、そのファイルのPDFを作る場合」に「myPDFMaker.CreatePDFExのところでスクリプトが異常終了」するのは当然のことと思われますが、如何でしょうか!? というのは、WordファイルをPDFMakerでpdf化する過程では、pdf化するWordファイルを一度閉じて再度開くという操作が行われるので、その文書にPDFMakerを呼び出すVBAモジュールが組み込まれていると、PDFMakerでの処理が済んでVBAに制御が戻そうとしても戻せないからです。例えば、Normal.dotのようにWordアプリケーションが起動している間はずっと開かれたままのファイルにpdf化モジュールを組み込んでみてはどうでしょうか。多分、問題なくと動作すると思うのですが… 一度御試し下さい。因みに、当方ではそのような方法で問題なく動作しました。
いやー、全くそのとおり。一人でモンモンとやっていると、気づかないものです。
遅まきながら、2013年3月11日、後半を大幅に書き直しました。ご指摘、ありがとうございました。
こんなふうに、おかしなことを書いていることがあるかもしれないので、お気づきの際は about and comments から教えていただけると助かります。
参考資料
Enum PDFMakerSettings
Definition | Name | 10進数 Decimal | 16進数 Hexadecimal | Word Default Setting 29360151 (&H1C00017) |
Excel Default Setting 138412055 (&H8400017) |
Memo |
---|---|---|---|---|---|---|
Const kConversionRoute = -2147483648 (&H80000000) | kConversionRoute | -2147483648 | &H80000000 | |||
Const kAllEnabled = -1 (&HFFFFFFFF) | kAllEnabled | -1 | &HFFFFFFFF | |||
Const kCreateLinks = 1 | kCreateLinks | 1 | &H1 | TRUE | TRUE | リンクを追加 |
Const kCreateBookmarks = 2 | kCreateBookmarks | 2 | &H2 | TRUE | TRUE | しおりを追加 |
Const kCreateDocInfo = 4 | kCreateDocInfo | 4 | &H4 | TRUE | TRUE | 文書情報を追加 |
Const kCreateComments = 8 | kCreateComments | 8 | &H8 | 表示されたコメントをノート注釈に変換 | ||
Const kCreateTags = 16 (&H10) | kCreateTags | 16 | &H10 | TRUE | TRUE | タグ付けの詳細設定を有効 |
Const kCreateLayers = 32 (&H20) | kCreateLayers | 32 | &H20 | |||
Const kCreateMetadata = 64 (&H40) | kCreateMetadata | 64 | &H40 | |||
Const kAttachSource = 128 (&H80) | kAttachSource | 128 | &H80 | |||
Const kFitToOnePage = 256 (&H100) | kFitToOnePage | 256 | &H100 | |||
Const kPreserveSpotColor = 512 (&H200) | kPreserveSpotColor | 512 | &H200 | |||
Const kUseSavedLayerSettings = 512 (&H200) | kUseSavedLayerSettings | 512 | &H200 | |||
Const kEmbedScale = 1024 (&H400) | kEmbedScale | 1024 | &H400 | |||
Const kPrintCropMarks = 1024 (&H400) | kPrintCropMarks | 1024 | &H400 | |||
Const kAllowBleeds = 2048 (&H800) | kAllowBleeds | 2048 | &H800 | |||
Const kPrintBleedMarks = 4096 (&H1000) | kPrintBleedMarks | 4096 | &H1000 | |||
Const kConvertMultimedia = 8192 (&H2000) | kConvertMultimedia | 8192 | &H2000 | |||
Const kConvertHiddenSlides = 16384 (&H4000) | kConvertHiddenSlides | 16384 | &H4000 | |||
Const kSaveSlideTransitions = 32768 (&H8000) | kSaveSlideTransitions | 32768 | &H8000 | |||
Const kSaveAnimations = 65536 (&H10000) | kSaveAnimations | 65536 | &H10000 | |||
Const kLayoutBasedOnPrinterSettings = 131072 (&H20000) | kLayoutBasedOnPrinterSettings | 131072 | &H20000 | |||
Const kAlwaysFlattenLayers = 262144 (&H40000) | kAlwaysFlattenLayers | 262144 | &H40000 | |||
Const kConvertSpeakerNotes = 524288 (&H80000) | kConvertSpeakerNotes | 524288 | &H80000 | |||
Const kCreateTextNotes = 524288 (&H80000) | kCreateTextNotes | 524288 | &H80000 | |||
Const kOpenLayerPane = 1048576 (&H100000) | kOpenLayerPane | 1048576 | &H100000 | |||
Const kConvertAllPages = 2097152 (&H200000) | kConvertAllPages | 2097152 | &H200000 | TRUE | ||
Const kCreateXrefLinks = 4194304 (&H400000) | kCreateXrefLinks | 4194304 | &H400000 | TRUE | TRUE | 相互参照と目次をリンクに変換 |
Const kCreateThreads = 8388608 (&H800000) | kCreateThreads | 8388608 | &H800000 | TRUE | 見出しをしおりに変換? | |
Const kCreateFootnoteLinks = 16777216 (&H1000000) | kCreateFootnoteLinks | 16777216 | &H1000000 | TRUE | 脚注と文末脚注のリンクを変換 | |
Const kPreserveTransparency = 33554432 (&H2000000) | kPreserveTransparency | 33554432 | &H2000000 | |||
Const kExcludeObjectsWithoutMetadata = 67108864 (&H4000000) | kExcludeObjectsWithoutMetadata | 67108864 | &H4000000 | |||
Const kPromptForSheetSelection = 134217728 (&H8000000) | kPromptForSheetSelection | 134217728 | &H8000000 | TRUE | Excelのシートを確認 | |
Const kAdvancedTagging = 268435456 (&H10000000) | kAdvancedTagging | 268435456 | &H10000000 | |||
Const kPDFACompliance = 536870912 (&H20000000) | kPDFACompliance | 536870912 | &H20000000 | |||
Const kEmbed3DContent = 1073741824 (&H40000000) | kEmbed3DContent | 1073741824 | &H40000000 |
Class securitySettings
Structure containing the security settings (Second Tab of Conversion Settings Dialog)
Definition | Note |
---|---|
Property AllowedChanges As tagAllowedChangesEnum | Types of Changes Allowed for this Document |
Property AllowedPermissionsBits As AllowedPermissions | Bit Fields of Allowed Changes |
Property AttachmentPasswd As String | The File Attachment Password |
Property AttachmentPasswdNeeded As Boolean | Is the File Attachment Password Set? |
Property EnableCopyingContent As Boolean | Enable Copying of text, Images and other Contents |
Property EnablePlaintextMetadata As Boolean | Enable Plain Text Metadata (Acrobat >= 6.0) |
Property EnableTextAccessibility As Boolean | Enable text access for visually impaired |
Property EncryptAttachmentsOnly As Boolean | Should we encrypt only Attachments? |
Property KeyLen As tagKeyLengthEnum | The Security Strength |
Property OpenDocPasswd As String | The Open Document Password |
Property OpenDocPasswdNeeded As Boolean | Is the Document Open Password Set? |
Property PermsPasswd As String | The Permissions Password |
Property PermsPasswdNeeded As Boolean | Is the Permissions Password Set? |
Property PrintingModeAllowed As tagPrintingModesAllowedEnum | Types of Printing Allowed for this Document |
Class ISettings
Name | Note |
---|---|
Property AddBookmarks | Boolean |
Property AddLinks | Boolean |
Property AddTags | Boolean |
Property AdvancedTagging | Boolean |
Property AllowBleeds | Boolean |
Property AlwaysFlattenLayers | Boolean |
Property AttachSourceFile | Boolean |
Property ConversionRoute | Boolean |
Property ConvertAllPages | Boolean |
Property ConvertComments | Boolean |
Property ConvertHiddenSlides | Boolean |
Property ConvertMultimedia | Boolean |
Property ConvertSpeakerNotes | Boolean |
Property CreateDocInfo | Boolean |
Property CreateFootnoteLinks | Boolean |
Property CreateLayers | Boolean |
Property CreateMetadata | Boolean |
Property CreateTextNotes | Boolean |
Property CreateThreads | Boolean |
Property CreateXrefLinks | Boolean |
Property FitToOnePage | Boolean |
Sub GetConversionRange(pvRange) | conversion range |
Property InvokedFromFeat | Boolean |
Property IsAutomation | Boolean |
Property IsConversionSilent | Boolean |
Property JobOptions | String |
Property LayoutBasedOnPrinterSettings | Boolean |
Property OpenLayerPane | Boolean |
Property OutputPDFFileName | String |
Property PDFACompliance | Boolean |
Property PreserveSpotColor | Boolean |
Property PreserveTransparency | Boolean |
Property PrintActivesheetOnly | Boolean |
Property PrintBleedMarks | Boolean |
Property PrintCropMarks | Boolean |
Property PromptForPDFFilename | Boolean |
Property PromptForSheetSelection | Boolean |
Property Reserved | Long |
Property SaveAnimations | Boolean |
Property SaveSlideTransitions | Object |
Property SendForReview | Boolean |
Property SendViaEmail | Boolean |
Sub SetConversionRange(pvRange) | conversion range |
Property ShouldShowProgressDialog | Boolean |
Property ViewPDFFile | Boolean |
最近のコメント