0

我希望有人可以帮助我解决我在使用 Aspose.Pdf 库生成带有超链接的受密码保护的 PDF 时遇到的问题。问题是密码保护似乎把超链接搞砸了……</p>

以下代码工作正常(没有任何密码保护):

// create new PDF doc with hyperlink in
Aspose.Pdf.Document doc = new Aspose.Pdf.Document();
Aspose.Pdf.Page page = doc.Pages.Add();
Aspose.Pdf.Text.TextFragment textFragment = new Aspose.Pdf.Text.TextFragment("hyperlink test");
textFragment.Hyperlink = new Aspose.Pdf.WebHyperlink("https://www.google.co.uk/");
page.Paragraphs.Add(textFragment);

// password protect the PDF
// Aspose.Pdf.Permissions permission = (Aspose.Pdf.Permissions.PrintingQuality | Aspose.Pdf.Permissions.PrintDocument | Aspose.Pdf.Permissions.ModifyTextAnnotations | Aspose.Pdf.Permissions.FillForm | Aspose.Pdf.Permissions.ModifyContent | Aspose.Pdf.Permissions.ExtractContent | Aspose.Pdf.Permissions.AssembleDocument);
// doc.Encrypt("pass1", "pass2", permission, Aspose.Pdf.CryptoAlgorithm.RC4x128);

// save the doc
doc.Save("C:\\temp\\PDFHyperlink\\test.pdf");

生成的 PDF 很好,超链接成功打开浏览器并导航到谷歌

在此处输入图像描述

但是,如果您取消注释密码保护 PDF 的行,超链接就会搞砸

// create new PDF doc with hyperlink in
Aspose.Pdf.Document doc = new Aspose.Pdf.Document();
Aspose.Pdf.Page page = doc.Pages.Add();
Aspose.Pdf.Text.TextFragment textFragment = new Aspose.Pdf.Text.TextFragment("hyperlink test");
textFragment.Hyperlink = new Aspose.Pdf.WebHyperlink("https://www.google.co.uk/");
page.Paragraphs.Add(textFragment);

// password protect the PDF
Aspose.Pdf.Permissions permission = (Aspose.Pdf.Permissions.PrintingQuality | Aspose.Pdf.Permissions.PrintDocument | Aspose.Pdf.Permissions.ModifyTextAnnotations | Aspose.Pdf.Permissions.FillForm | Aspose.Pdf.Permissions.ModifyContent | Aspose.Pdf.Permissions.ExtractContent | Aspose.Pdf.Permissions.AssembleDocument);
doc.Encrypt("pass1", "pass2", permission, Aspose.Pdf.CryptoAlgorithm.RC4x128);

// save the doc
doc.Save("C:\\temp\\PDFHyperlink\\test.pdf");

在此处输入图像描述

…当点击超链接时,您会收到以下消息:

在此处输入图像描述

…如果你点击Allow,什么都不会发生!

我用密码保护 PDF 的方式有问题吗?任何帮助,将不胜感激。

4

1 回答 1

0

我已经测试了这个场景并设法重现了上述问题。为了更正,我在我们的问题跟踪系统中将其记录为PDFNET-41159 。我们将进一步调查此问题的详细信息,并让您了解更正状态。请耐心等待解决。

我的名字是 Nayyer,我是 Aspose 的开发布道者。

于 2016-07-19T05:25:01.953 回答