这里我想在acrobat的Initial View选项卡下设置已存在的PDF文档属性.
文件选项:
窗口选项:
如下面的屏幕截图所示:
我尝试下面的代码:
PdfStamper stamper = new PdfStamper(reader, new FileStream(dPDFFile, FileMode.Create));
stamper.AddViewerPreference(PdfName.DISPLAYDOCTITLE, new PdfBoolean(true));
Run Code Online (Sandbox Code Playgroud)
上面的代码用于设置文档标题显示.
但是下面的代码不起作用
对于页面布局:
stamper.AddViewerPreference(PdfName.PAGELAYOUT, new PdfName("OneColumn"));
Run Code Online (Sandbox Code Playgroud)
对于书签面板和页面:
stamper.AddViewerPreference(PdfName. PageMode, new PdfName("UseOutlines"));
Run Code Online (Sandbox Code Playgroud)
所以请指导我什么是满足我的要求的正确方法.
我在回答前一个答案的评论中的额外问题时添加了一个额外的答案:
当您有一个PdfWriter名为的实例时writer,您可以像这样设置Viewer首选项:
writer.ViewerPreferences = viewerpreference;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,该viewerpreference值可以具有以下值之一:
PdfWriter.PageLayoutSinglePagePdfWriter.PageLayoutOneColumnPdfWriter.PageLayoutTwoColumnLeftPdfWriter.PageLayoutTwoColumnRightPdfWriter.PageLayoutTwoPageLeftPdfWriter.PageLayoutTwoPageRight有关详细信息,请参阅PageLayoutExample.
您还可以更改页面模式,如ViewerPreferencesExample中所示.在这种情况下,不同的值是"OR" - :
PdfWriter.PageModeFullScreenPdfWriter.PageModeUseThumbsPdfWriter.PageLayoutTwoColumnRight | PdfWriter.PageModeUseThumbsPdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseOutlinesPdfWriter.FitWindow | PdfWriter.HideToolbarPdfWriter.HideWindowUI目前,您只使用了官方文档中的PrintPreferences示例:
writer.AddViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
writer.AddViewerPreference(PdfName.NUMCOPIES, new PdfNumber(3));
writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE);
Run Code Online (Sandbox Code Playgroud)
但在某些情况下,它更容易使用:
writer.ViewerPreferences = viewerpreference;
Run Code Online (Sandbox Code Playgroud)
请注意,官方文档是"iText in Action - Second Edition"一书.这些示例是用Java编写的,但您可以在这里找到C#版本.有一本名为"PDF的ABC"的新书,但到目前为止只写了4章.您可以在这里找到更多信息:http://itextpdf.com/learn
关于创建a的不同选项的部分PdfDestination已经出现在"PDF的ABC"中.
至于设置语言,这样做:
stamper.Writer.ExtraCatalog.Put(PdfName.LANG, new PdfString("EN"));
Run Code Online (Sandbox Code Playgroud)
结果显示在以下屏幕截图中:

如您所见,现在有一个Lang条目EN添加到目录中.
显示=书签面板和页面以及页面布局=连续两个项目从ViewerPreferences文档中的一层向上控制/Catalog.你可以通过以下方式获得:
stamper.Writer.ExtraCatalog
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您正在寻找:
// Acrobat's Single Page
stamper.Writer.ExtraCatalog.Put(PdfName.PAGELAYOUT, PdfName.ONECOLUMN);
// Show bookmarks
stamper.Writer.ExtraCatalog.Put(PdfName.PAGEMODE, PdfName.USEOUTLINES);
Run Code Online (Sandbox Code Playgroud)
项目Magnification = Fit Width和Open to Page number = 1也是一部分,/Catalog但在一个名为的特殊键中/OpenAction.您可以使用以下方式设置:
stamper.Writer.SetOpenAction();
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您正在寻找:
//Create a destination that fit's width (fit horizontal)
var D = new PdfDestination(PdfDestination.FITH);
//Create an open action that points to a specific page using this destination
var OA = PdfAction.GotoLocalPage(1, D, stamper.Writer);
//Set the open action on the writer
stamper.Writer.SetOpenAction(OA);
Run Code Online (Sandbox Code Playgroud)