要件は、site / pdf / etcの下にハイパーリンクがあるpdfでテキストを表示することです。これは、HTMLと同様に、ここをクリックしてリンクを開きます。
私はPlanetPressを使用してPDFを作成しています。これは基本的に、ビタミンと鉄を追加したPostScriptコードです。
テキスト内にhttp://が見つかると、Acrobatは自動的にリンクを作成します。その結果、PlanetPressはリンクを直接処理しません(Acrobatによって自動的に作成されるため)。
PDFMark PostScriptコードをPlanetPressに直接渡すことで、要件を満たす静的リンクを作成できますが、コードの数行に対して同じことを動的に実行しようとすると、リスト内の最後のリンクが各行のリンクになります。
PlanetPressでは、基本的にXMLファイルをループして、結果を.psファイルに送信しています。
これが私のPDFmarksコードです:
passthrough('[ /Rect [ 0 0 16 '+inttostr(floattoint(&j))+' ]')
passthrough('/Action << /Subtype /URI /URI ('+&CentreCodeLink+') >>')
passthrough('/Count '+IntToStr(&i)+'')
passthrough('/Subtype /Link')
passthrough('/Border [ 1 1 1 ]')
passthrough('/ANN pdfmark')
/ countファイルを使用して、さまざまな値が読み取られてPostScriptファイルに渡されていることを確認しました。/rectフィールドと/borderフィールドを使用して、ハイパーリンク領域を作成しました。長方形がハイパーリンク領域の境界になると思いましたが、そうではないようです。movetoを使用してカーソルがページに沿って移動していることを確認しようとしましたが、これは最終結果にはまったく影響しません。passthrough('' + inttostr(floattoint(&width * 72))+'' + inttostr(floattoint(&j))+'moveto')
PostScriptはよくわかりませんが、これは2つのリンクの出力のチャンクだと思います(実際のリンクであるため、リンクを切り詰めました)。
0 0 *m
213.9994 30.00256 *m
0 35.00296 *m
*gr
*gs
[1 0 0 1 0 70.75305]concat
/^PP$ {systemdict /show get exec} *bd
&body /$ 1 index 2 get store /_ 1 index 6 get store 1 get *sf
/^PP$ {systemdict /show get exec} *bd
&bold /$ 1 index 2 get store /_ 1 index 6 get store 1 get *sf
36 12.00037 *m
36 12.00037 *m (London - Hammersmith) $
165.6 12.00037 *m
&weblinkstyle dup 0 get [9 0 0 -9 0 0] *mf *sf
/^PP$ {systemdict /show get exec} *bd
[] 0 setdash
/$ 1 index 5 get dup 0 {1 1 0 0 *sc}*bi put store /_ exch 8 get dup 0 {1 1 0 0 *sc}*bi put store
165.6002 12.00037 *m (London - Angel) $
([ /Rect [ 0 0 540 16 ]) cvx exec
(/Action << /Subtype /URI /URI \(http://WelcomePacka5LondonAngel/\) >>) cvx exec
(/Count 1) cvx exec
(/Subtype /Link) cvx exec
(/Border [ 1 1 1 ]) cvx exec
(/ANN pdfmark) cvx exec
( 540 16 moveto) cvx exec
/^PP$ {systemdict /show get exec} *bd
&bold /$ 1 index 2 get store /_ 1 index 6 get store 1 get *sf
36 24.00073 *m
36 24.00073 *m (London - London Bridge) $
165.6 24.00073 *m
&weblinkstyle dup 0 get [9 0 0 -9 0 0] *mf *sf
/^PP$ {systemdict /show get exec} *bd
[] 0 setdash
/$ 1 index 5 get dup 0 {1 1 0 0 *sc}*bi put store /_ exch 8 get dup 0 {1 1 0 0 *sc}*bi put store
165.6002 24.00073 *m (London - Bridge / Borough High Street) $
([ /Rect [ 0 0 540 28 ]) cvx exec
(/Action << /Subtype /URI /URI \(http://WelcomePacka5LondonBridge/\) >>) cvx exec
(/Count 2) cvx exec
(/Subtype /Link) cvx exec
(/Border [ 1 1 1 ]) cvx exec
(/ANN pdfmark) cvx exec
( 540 28 moveto) cvx exec
/^PP$ {systemdict /show get exec} *bd
これらが機能しない理由はありますか?今は境界線を共有しているように見えるので、各pdfmarkボックスの間に休憩が必要かもしれないと思っていましたが、これを行う方法がわかりません。ありがとう