使用iText进行pdf生成的锚点方法的相对路径

时间:2014-11-21 14:32:00

标签: java pdf-generation itext

我正在使用iText生成PDF,我使用以下代码创建了一个锚:

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

trial对象的类型为ChunkcompletePath是我想要链接到的文件的路径。

当我尝试使用相对路径时,该链接不起作用。例如,"C:\Doc\folder1\trial.xml"工作正常,但是当我尝试"..\trial1.xml"之类的相对路径时,虽然我的PDF文档和XML文件都位于名为"folder1"的同一文件夹中,但没有形成链接。 / p>

1 个答案:

答案 0 :(得分:1)

如果您遇到这种情况:

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

如果您在"..\trial1.xml"中创建路径my.pdf作为参考,那么您告诉PDF可以在此处找到xml文件:

C:\Doc\trial1.xml

我看到两个错误:

  1. trial.xmltrial1.xml以及
  2. 之间存在差异
  3. 你指着错误的目录。
  4. 如果将相对路径与“file:///”连接,甚至可能会出现第三个错误。我们应该看PDF以确保会发生什么。

    我写了一个名为RelativeLink的示例,该示例创建了一个带有Chunk的PDF,上面写着“Click me”。如果单击Chunk,则会打开与relative_link.pdf方向相同的XML文件data.xml

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

    这在web插件的上下文中不起作用(出于显而易见的原因)。要查看此操作,您需要下载PDF文件并在独立查看器中打开它。