2014-11-21 83 views
1

我利用iText生成PDF和我用下面的代碼創建錨定:使用相對路徑的錨方法利用iText生成PDF

String newPath = "file:///"; 
newPath = newPath + completePath; 
trial.setAnchor(newPath); 

trial目的是Chunk類型和completePath是我想要鏈接到的文件路徑。

當我嘗試使用相對路徑時,鏈接不起作用。例如"C:\Doc\folder1\trial.xml"工作正常,但是當我嘗試使用相對路徑(如"..\trial1.xml")時,雖然我的PDF文檔和XML文件都位於名爲"folder1"的同一文件夾中,但沒有形成鏈接。

回答

1

如果你有這樣的情況:

C:\Doc\folder1\trial.xml 
C:\Doc\folder1\my.pdf 

如果你創建路徑"..\trial1.xml"my.pdf參考,然後你告訴XML文件可以在這裏找到的PDF:

C:\Doc\trial1.xml 

我看到了兩個錯誤:

  1. 還有的之間的差異和trial1.xml
  2. 您指向錯誤的目錄。

如果您將相對路徑與「file:///」連接起來,甚至可能會出現第三個錯誤。我們應該看到PDF以確保發生了什麼。

我已經寫了一個名爲RelativeLink的示例,它創建了一個帶有「單擊我」的Chunk的PDF。如果點擊Chunk,則會打開與relative_link.pdf處於相同方向的XML文件data.xml

Chunk chunk = new Chunk("Click me"); 
chunk.setAnchor("./" + new File(XML).getName()); 
document.add(chunk); 

這不適用於web插件的上下文(原因很明顯)。爲了看到這一點,您需要下載PDF文件並在獨立查看器中打開它。

+0

感謝布魯諾,它的工作。真正的問題是我指向你的代碼段解決的目錄。 – 2014-11-24 12:01:10