2014-11-21 101 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