PDFファイル内でjavascriptを使用する方法と、著者やタイトルなどの/ Infoオブジェクトから情報を取得する方法を学ぼうとしています。PDF内でjsを使用する2つの方法を見つけました.2つのサンプルをまとめました。最初のサンプルは機能し、2番目のサンプルは機能しません。どちらも JavaScript を実行しますが、2 番目のコードは /Info データにアクセスできません。理由がわかりません。
サンプル 1 (このコードは、/Title の内容でアラートを表示します。正常に動作します):
%PDF-1.3
1 0 obj
<</Type/Catalog/Pages 5 0 R/OpenAction 3 0 R>>
endobj
2 0 obj
<<
/Producer (test)
/Subject (test)
/Title (test)
>>
endobj
3 0 obj
<</Type/Action/S/JavaScript/JS 4 0 R>>
endobj
4 0 obj
<</Length 17>>
stream
app.alert(title);
endstream
endobj
5 0 obj
<<
>>
endobj
xref
trailer
<<
/Root 1 0 R
/Info 2 0 R
>>
startxref
%%EOF
サンプル 2 (これはアラートを表示しませんが、タイトルを文字列に置き換えるとアラートが表示されます);
%PDF-1.3
1 0 obj
<</Type/Catalog/Pages 5 0 R/AcroForm 3 0 R>>
endobj
2 0 obj
<<
/Producer (test)
/Subject (test)
/Title (test)
>>
endobj
3 0 obj
<</XFA [4 0 R]>>
endobj
4 0 obj
<</Length 767>>
stream
<?xml version="1.0" encoding="UTF-8" ?>
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
<config xmlns="http://www.xfa.org/schema/xci/1.0/"><present>
<pdf><interactive>1</interactive><version>1.6</version>
</pdf><xdp><packets>*</packets></xdp><destination>pdf</destination></present></config>
<template xmlns="http://www.xfa.org/schema/xfa-template/2.5/">
<subform layout="tb" locale="en_US" name="form">
<subform>
<field>
<event activity="initialize" name="eventName">
<script contentType="application/x-javascript">
app.alert(title)
</script>
</event>
</field>
</subform>
</subform>
</template>
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
<xfa:data></xfa:data></xfa:datasets>
</xdp:xdp>
endstream
endobj
5 0 obj
<<
>>
endobj
xref
trailer
<<
/Root 1 0 R
/Info 2 0 R
>>
startxref
%%EOF
(両方のpdfソースは実際には有効なpdfではありませんが、jsが実行されます。読みやすくするために多くのものを削除しました)
app.alert(title) が2番目のサンプルで機能しない理由を誰かが知っていますか?