iText7 ViewerPreferences:默认情况下应显示书签

iText7 ViewerPreferences: Should display Bookmarks by default

我用 iText7 创建了一个 PDF,它不应该显示工具栏。但它应该显示带有 bookmarks/outlines.

的区域
PdfViewerPreferences pref = new PdfViewerPreferences();
pref.SetHideToolbar(true); // works
pref.SetNonFullScreenPageMode(PdfViewerPreferences.PdfViewerPreferencesConstants.USE_OUTLINES); // doesn't work
pdfDocument.GetCatalog().SetViewerPreferences(pref);

Acrobat Reader 应该这样显示:

SetNonFullScreenPageMode 的文档清楚地说明了以下内容:

This entry is meaningful only if the value of the PageMode entry in the Catalog dictionary is FullScreen

因此您还需要添加以下行以使您的配置生效:

pdfDocument.GetCatalog().SetPageMode(PdfName.FullScreen);

但是,这会使 Acrobat 在打开 PDF 时要求您进入全屏模式,而在全屏模式下,除了页面内容外什么也不会显示。

您真正想要的是将 PageMode 设置为 UseOutlines:

pdfDocument.GetCatalog().SetPageMode(PdfName.UseOutlines);

完整代码:

PdfViewerPreferences pref = new PdfViewerPreferences();
pref.SetHideToolbar(true);
pdfDocument.GetCatalog().SetViewerPreferences(pref);
pdfDocument.GetCatalog().SetPageMode(PdfName.UseOutlines);