itext动作中的相对路径

时间:2015-02-06 01:58:13

标签: c# itextsharp

我尝试在c#中使用itextsharp在pdf文件中创建相对链接。我使用过这个例子(翻译成C#):http://itextpdf.com/sandbox/annotations/RemoteGoToPage

但是当我打开生成的pdf并点击链接时没有任何反应。但是,如果我更改为绝对路径链接。谢谢。

我的代码:

class Program
{
    public const string DEST = "abc2.pdf";
    public const string SRC = "xyz2.pdf";

    static void Main(string[] args)
    {
        Program app = new Program();

        app.createPdf(DEST);
        app.createPdf2(SRC);
    }

    public void createPdf(string dest)
    {
        Document document1 = new Document();
        PdfWriter.GetInstance(document1, new FileStream(dest, FileMode.Create));

        document1.Open();
        document1.Add(new Paragraph("Page 1"));
        document1.NewPage();
        document1.Add(new Paragraph("Page 2"));
        document1.NewPage();
        document1.Add(new Paragraph("Page 3"));
        document1.NewPage();
        document1.Add(new Paragraph("Page 4"));
        document1.NewPage();
        document1.Add(new Paragraph("Page 5"));
        document1.NewPage();
        document1.Add(new Paragraph("Page 6"));
        document1.NewPage();
        document1.Add(new Paragraph("Page 7"));
        document1.Close();
    }

    public void createPdf2(string src)
    {
        Document document2 = new Document();
        PdfWriter.GetInstance(document2, new FileStream(src, FileMode.Create));            
        document2.Open();
        Chunk chunk = new Chunk("Link");
        var link = "abc2.pdf";                    //this don't work
        //var link = "c:/temp/abc2.pdf";    //this work
        chunk.SetAction(new PdfAction(link, 6));
        document2.Add(chunk);
        document2.Close();
    }
}

1 个答案:

答案 0 :(得分:0)

您可以根据文件位置在文件前尝试./(dot斜杠)或/(斜杠),如下所示

var link = "./abc2.pdf"; 

var link  "/abc2.pdf";