我有一份PDF格式的文件。该文件由几个章节,章节等组成。 在案文中,有其他章节或章节的参考;例如:
- 我们将在第15章看到......
- ......的概念,在7.1节中提到,......
参考文献是“链接”;也就是说,当你点击它们时,它会跳转到相应的文本。
但是,链接会将PDF的缩放级别更改为“适合页面”,如下面的对话框所示(截图是在Adobe Acrobat中截取的):
我不喜欢这种行为,并且更喜欢缩放级别不会改变。为此,有一个名为“继承缩放”的选项。
问题是文档中的链接太多,无法手动更改它们。所以,我想以某种方式以编程方式将PDF文档中所有链接的缩放级别更改为“继承缩放”。
这可以使用iText或类似的库吗?
答案 0 :(得分:4)
您可以尝试Docotic.Pdf Library。要完成以下任务,应该完成以下任务:
重置动作缩放级别功能很常见,可能如下所示:
private static void resetActionZoom(PdfAction action)
{
PdfGoToAction goToAction = action as PdfGoToAction;
if (goToAction == null)
return;
// process only actions with FitPage zoom level
if (goToAction.View.Zoom != PdfZoom.FitPage)
return;
goToAction.View.SetZoom(0); // now zoom will remain unchanged after click by link
}
以下示例列举了PDF文档中的所有操作并重置了每个操作的缩放级别:
PdfDocument pdf = new PdfDocument("path_to_your_file.pdf");
foreach (PdfAction action in pdf.Actions)
resetActionZoom(action);
pdf.Save("UpdateAllActions.pdf");
另一种(更准确)的方法是枚举每个页面上的所有链接,并以相同的方式更新相关的操作:
PdfDocument pdf = new PdfDocument("path_to_your_file.pdf");
foreach (PdfPage page in pdf.Pages)
{
foreach (PdfWidget widget in page.Widgets)
{
PdfActionArea actionArea = widget as PdfActionArea;
if (actionArea == null)
continue;
resetActionZoom(actionArea.Action);
}
}
pdf.Save("UpdatePageLinks.pdf");
答案 1 :(得分:0)
福昕阅读器 首选项/页面显示 检查"禁止在执行"转到目标操作期间更改当前缩放系数(这些操作可以从书签启动)"