Acrobat Layer

[Acrobat]対象のPDFをAcrobatで開くようにさせる(その4:文書のアクション)

[Acrobat]対象のPDFをAcrobatで開くようにさせる(その1)
[Acrobat]対象のPDFをAcrobatで開くようにさせる(その2:フォームの全画面配置)
[Acrobat]対象のPDFをAcrobatで開くようにさせる(その3:レイヤの制御)

要点は『コンテンツを隠す』事で、
特定の環境での閲覧を制限する事が出来る…を4回にわけましたが
Acrobat以外で開いた時は表示させない
逆に
デスクトップに保存してAcrobatで表示させたくない
なんて時の参考になるかな?と

レイヤでの制御で
レイヤを『表示』『非表示』を切り替える制御でした。
あとはその2でやった『起動時の設定』と『環境での切り分け』を記述すれば完成です。

ダウンロード - sampleb.pdf

ダウンロード - sampleb.pdf.js.txt




文書のアクションで
閉じる時
保存する時
印刷する時 に それぞれレイヤをONにしておけば
コンテンツを印刷出来ないPDFなんてのも出来ます。
(印刷時に期待値通りの動作をしない場合が多いのでお勧めしません)
(まぁセキュリティ設定すれば良いわけだけど…笑)
Screencapture_20210516_18_39_22


スクリーンキャプチャを取らせない方法と一緒で
今回の方法も『絶対』じゃないので
一般的なスキルの方を対象にAcrobatでフォームを…
なんて時に有効ですので参考にしてください

|

[Acrobat]対象のPDFをAcrobatで開くようにさせる(その3:レイヤの制御)

元データはこんな感じの10ページ

Screencapture-20210516-153404

ダウンロード - sample.pdf




レイヤを利用する場合
Screencapture_20210516_17_08_59
サンプルでは全ページ同じ『Curtains』って名前で設定しています
レイヤのON OFFは
Screencapture_20210516_17_11_57

OCGオブジェクトとして取得できます
var OCGlayers = this.getOCGs();
プロパティは
initState
locked
name
stateになりますの
OCGlayers[i].initState;
OCGlayers[i].locked;
OCGlayers[i].name;
OCGlayers[i].state; てな感じで取得します。

initState
デフォルトの状態のこと true =onでオンで表示 false=OFFでオフで非表示 OCGlayers[i].initState = true; か OCGlayers[i].initState = false ;
locked
OCGlayers[i].locked = true; か OCGlayers[i].locked = false ;
trueでレイヤロック falseでレイヤロック解除
name
console.println(OCGlayersName); でテキストとして取得
OCGlayers[i].state = "レイヤ名"; でレイヤの名前を設定
state
OCGlayers[i].state = true; か OCGlayers[i].state = false ;
trueでレイヤ表示 falseでレイヤ非表示

ここまで、レイヤの制御の部分のサンプル
Screencapture-20210516-174652

フォームのボタンに記述していますので
サンプルコードはこちらでみてください

ダウンロード - samplec.pdf


つづく

|

[Acrobat]対象のPDFをAcrobatで開くようにさせる(その2:フォームの全画面配置)

元データはこんな感じの10ページ

Screencapture-20210516-153404

ダウンロード - sample.pdf




フォームを利用する場合
Screencapture_20210516_15_36_44

各ページに『ボタン』か『テキスト』で塗り色白で『全面サイズ』でフォームオブジェクトを配置
名前は任意で1ページ目で作ったフォームオブジェクトを、各ページにコピーします。
重要なのは、『名前が同じ』である事


フォームオブジェクトの配置が終わったら
スクリプトを記述します。
1:文書レベル(ドキュメントレベル)のスクリプトを1つ記述します。
2:ファイルを開いた時に動作するようにします。

文書レベルのスクリプトを1つ作ります
112

開いた時に実行されるようにします 122


起動時の動作は後にして
文書レベルのスクリプトで
コンテンツを『見せる』場合と『隠す』場合のそれぞれの処理を記述します。
見せる場合
Miseru
隠す場合
Kakusu


Screencapture-20210516-160031

function CurtainClose()
{
////コンテンツを隠す
this.getField("Curtains").display = 0;
this.getField("Thumbnail").display = 0;
}

function CurtainOpen()
{
////コンテンツを見せる
this.getField("Curtains").display = 1;
this.getField("Thumbnail").display = 1;
}

起動時に実行されるintに条件入れて、見せる、見せないの分岐
Screencapture-20210516-163724

function int()
{
if( app.viewerVersion <= 10 ) {
CurtainClose();
} else {
CurtainOpen();
}
if( app.viewerType == "Reader" ) {
CurtainOpen();
} else if( app.viewerType == "Exchange" ) {
CurtainOpen();
} else if( app.viewerType == "Exchange-Pro" ) {
CurtainOpen();
} else {
CurtainClose();
}
}
int();


出来上がりです。
クロームやプレビューで『ページパネル』にサムネイルが表示されてしまいますので
コンテンツを必ず隠す事は出来ないが、Acrobatで表示してね?に誘導するには充分でしょう。

ダウンロード - samplea.pdf


ダウンロード - samplea.pdf.js.txt

|

[Acrobat]対象のPDFをAcrobatで開くようにさせる(その1)

対象のPDFをブラウザやプレビュー等で開いた場合に
コンテンツを見せないようにする。
Acrobatで開いた場合は、コンテンツを見せる。
2通り考えました。


エッジ
1_20210516145001
クローム
2_20210516145001
サファリ
3_20210516145001
ファイヤーフォックス
4_20210516145001
プレビュー
5
こんな感じで表示させない処理をします。


考えた方法2通りは
1:フォームを使う
2:レイヤーを使う この2通り

1:フォームを使う
Screencapture_20210516_13_43_21

2:レイヤーを使う
Screencapture_20210516_13_44_44

両方とも『白』いオブジェクトを前面で出して
コンテンツを隠します。
Acrobatで開いたらコンテンツを見せればOK


問題点が2点
1:フォームを使う→サムネイルページで内容が見れてしまう
2:レイヤーを使う→サムネイルページで内容が見れない

1:フォームを使う クロームやプレビューでページパネル内にサムネイル表示されてしまう。
Screencapture_20210516_15_00_57

2:レイヤーを使う アクロバットで開いた時にページパネルのサムネイルが非表示のままになってしまう。
Screencapture_20210516_15_01_14

現時点では1長1短ですが
目的である『コンテンツを見せない』って意味だと『レイヤで隠す』が良いか?と思います
続く

|

[Acrobat]レイヤーの統合

レイヤードPDFの統合

レイヤーパネルから統合するか
Image00221220_164420

プリフライトのフィックスアップを使います

Image00221220_170317

※注意
レイヤーの統合を利用する場合
全てのレイヤーを統合すると
不必要なオブジェクトも残りますので
注意してください

Image00221220_170547

レイヤ上下関係でオブジェクトが重なって存在しますのでオーバープリント利用時には注意が必要です

| | コメント (0) | トラックバック (0)

[execDialog]AcrobatのJavascriptsダイアログ【最終回】

AcrobatのJavascriptsでダイアログ制御の最終回
今迄の経過は
ダイアログの概要[LINK]アイコン:新しいウィンドで開きます
【その1】[LINK]アイコン:新しいウィンドで開きます【その2】[LINK]アイコン:新しいウィンドで開きます【その3】[LINK]アイコン:新しいウィンドで開きます【その4】[LINK]アイコン:新しいウィンドで開きますも参考にしてください
 

■起動時に実行させる
■レイヤ制御等
の2点でこのシリーズ?は終わりにします。

まずはファイルを

「LicenseBox.pdf」をダウンロード[PDF]新しいウィンドで開きます

 
■起動時に実行させる

起動時にスクリプトを実行させるのは
ドキュメントレベルのスクリプトになります

文書レベルのJavascriptの編集から
Im00221208_181739

新規に作って行きます
Im00221208_181751

ファンクションに内容を記述して
ファンクションを呼び出す記述をすればOK
Im00221208_181907


サンプルのPDFでは
Im00221208_21746

バージョンチェック後に
ダイアログを呼び出すような内容になっています。

ダイアログは前回やったように
トップレベル(文書レベル)に記述していますので

Im00221208_21825

後でも使えます

 

■レイヤ制御等

レイヤードPDFの
レイヤのON・OFFを使って

Im00221208_112519

見た目を工夫する事が出来ます。

Im00221208_112517

このような動作は
デザイナーさんと相談して決めて行けば良いですね
まぁ
簡単な物なら自分で書いても良いし
素材集とかでも良いですね。


後は
ShowHideを使って

Im00221208_112536

添付パネルのOnOffなんかも良いかもしれません。


 

備考
ok cancelの制御でもやりましたが
Im00221208_112533

こんな風に流れますので

cancelなら『ドキュメントを閉じる』記述をすれば
キャンセルの後にも
アクションを実行させる事ができますね。


マルチライン【multiline: "true"】の
スタティックテキスト【type: "static_text"】は
Im00221208_105604

テキストがコピー出来ますので

住所や電話番号とか.....
URLとか....
メールアドレスとか?
ユーザー名とパスワードとか?
なんだろ後......を表示させるのもアリかも

 
自分まとめ

必要に迫られてドキュメントを見ながら
自分が勉強した感じですが
AcrobatのJavascriptは作法に戸惑いを感じましたが
まぁ
工夫次第で『ある程度』は出来る事がわかりました。

注意点としては
文字コードと改行コードが
実行するマシンに依存するので
現時点では
MacintoshならMacSJISのMac改行
WindowsならWinSJISのWin改行
でないと日本語が通らないのが意外ですね。
まだ
AcrobatのJavaScriptエンジンがUTF8化されていないわけです。
次のバージョンあたりでは
さすがに変更されるかもしれませんが
その時は
フォルダレベルのスクリプトの文字コードを変更しなくてはなりませんね。
ドキュメントに記述されたJavaScriptもどうなるか?

その時が来たら慌てたいと......笑

| | コメント (0)

その他のカテゴリー

Accessibility AccessibilityCheck AccessibilityForm AccessibilityInDesign AccessibilityPDF Acrobat Acrobat Action Acrobat Annotation Acrobat AppleScripts Acrobat Character Acrobat Layer Acrobat PDF Embed API Acrobat PDF Form Print Acrobat Plug-ins Acrobat Portfolios Acrobat Print AcrobatBarcode AcrobatDialog AcrobatForm AcrobatJS AcrobatMenu AcrobatPDF AcrobatStamp AcrobatYouTube AddressBook Adobe Adobe InDesign Adobe Photoshop AdobeAppleScript AdobeBridge AdobeIllustrator AdobeJSX aed Alfresco Android AnimationGif Apple Apple Support AppleScript AppleScriptBasics AppleScriptCharacter AppleScriptColor AppleScriptDroplet AppleScriptErrorNum AppleScriptFolder AppleScriptFontBook AppleScriptRename AppleScriptTools AppleSymbols Applications Barcode Barcode2D BarcodePostal BetterHTMLExport Book BOX Browser buzz Certificates CharacterEntity CharacterSets Colors Cool Site CSS Cutting DecoMail DecorationMail Design Desktop Diff DJ dmg DNS Documents Download DTP eBook Editer eMail Envelopes ExifTool Facebook FFmpeg File System Fonts FontsTool FontsWeb FOOD FormPrint ftp Gadget Gif Animation Google Google Chrome Enterprise HexEditor HTML info iPhoto ISBN ISO iTunes iWork iWorkNumbers iWorkNumbersCalendar iWorkNumbersTimecard iWorkPages JavaScript JeditX JeditX Regexp JeditXAppleScript JIS jquery Letterpress Library logo Mac Admin Mac Archiver Mac Browser Mac Browser Plugin Mac QuickLook Mac Setup Mac Spotlight Mac Video Map Memo Microsoft Teams Mobby mobileconfig Moto Movies Music Network Basic ntp OCR Office OfficePowerPoint OSX Paint Pantone Paper PDFlib Permission Photo Pictograms Print Public Python QuickLook QuickTime QuickTimeSetting QuickTimeSound Real Media ReName ResourceFork ruby Sample Screen ScreenCast Search Security SEO Sharing SLAResource Sound Spotlight Stamp SWF TCC.db Tutorial PSD TV Twitter Typography Unicode Utilities Video WEB APP WebFont Wedding Windows WindowsMedia XML XMP XPS YouTube YouTube Rss