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



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

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

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

当我尝试使用相对路径时,链接不起作用。例如"C:Docfolder1trial.xml"工作正常,但是当我尝试相对路径(例如"..trial1.xml")时,没有形成链接,尽管我的PDF文档和XML文件都在名为"folder1"的同一文件夹中。

如果您遇到这种情况:

C:Docfolder1trial.xml
C:Docfolder1my.pdf

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

C:Doctrial1.xml

我看到两个错误:

  1. trial.xmltrial1.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 文件并在独立查看器中打开它。

最新更新