2011-01-02 7 views
1

JavaアプリケーションでiText PDFライブラリを使用してテストシナリオレポートを生成しています。レポートでは、シナリオごとに1行ずつテーブルを作成しています。私は、シナリオのそれぞれのディレクトリに、各行のリンクの最初のセルを作るしようとしている:どのようにiText PDF Javaライブラリを使用してリモートディレクトリを開きますか?

PdfPCell scenarioCell = new PdfPCell(new Phrase(new Chunk(ri.getScenarioFile() + " (" + ri.getId() + ")", this.defaultFont).setRemoteGoto("instances/" + ri.getId(), "Instance Directory")));

上記のコードは正しい場所にリンクする働き、しかし、開くように私のコンピュータを強制的に思えますファイルをデフォルトのテキストエディタにコピーします(この結果、「ファイルを開くことはできません」というメッセージが表示されます)。

このリンクを強制的に使用して、クロスプラットフォームの遵守を失うことなく、マシンのデフォルトファイルブラウザを使用できますか?

答えて

0

iTextのPDFファイル:(コメントから撮影)

PdfAction.createLaunch("instances" + File.separator + ri.getId(), null, null, null); 

JAVA:デスクトップ
ネイティブにディレクトリを開くための方法だろう http://download.oracle.com/javase/6/docs/api/java/awt/Desktop.html

Desktop d = Desktop.getDesktop(); 
d.open(new File("dirpath")); 
+0

を使用する

てみてくださいJavaアプリケーションからのファイルブラウザではなく、Javaアプリケーションで生成されたPDFドキュメントからのものではありません。 – jerluc

+0

申し訳ありませんが、私はあなたの質問に誤解しました。おそらく、パスの最後にスラッシュを追加するか、 'setAction(new PdfAction(dirpath))'を使うことです。あなたを誤解して申し訳ありません。 –

+0

心配しないで、私はちょうどURLとしてディレクトリを渡して、PdfActionを使用しようとし始めましたが、今は相対パスであるかのように絶対パスを解決するURLに問題があります。 "file:/// home/user/scenarios/instances/instance1234"を指すURLを作成すると、 "file:/// home/user/scenarios/file:/// home/user /シナリオ/インスタンス/インスタンス1234 "は、本質的に何らかの理由でPDFの現在の作業ディレクトリに解決しています。 – jerluc

関連する問題