How to set initial view properties?
Legacy notice!
iText 5 is the previous major version of iText’s leading PDF SDK. iText 5 is EOL, and is no longer developed, although we still provide support and security fixes. Switch your project to iText 8, our latest version which supports the latest PDF standards and technologies.
Check related iText 8 content!
Document Options:
- Show = Bookmarks Panel and Page
- Page Layout = Continuous
- Magnification = Fit Width
- Open to Page number = 1
Window Options:
- Show = Document Title
I tried to achieve this using the following code:
PdfStamper stamper = new PdfStamper(reader, new FileStream(dPDFFile, FileMode.Create)); stamper.AddViewerPreference(PdfName.DISPLAYDOCTITLE, new PdfBoolean(true));
// For page layout stamper.AddViewerPreference(PdfName.PAGELAYOUT, new PdfName("OneColumn")); // For Bookmarks Panel and Page: stamper.AddViewerPreference(PdfName. PageMode, new PdfName("UseOutlines"));
[ {Catalog} > /PUT pdfmark
. How is it done in PDF?
Posted on StackOverflow on Jun 23, 2014 by Thirusanguraja Venkatesan
When you have a PdfWriter
instance named writer
, you can set the Viewer preferences like this:
writer.ViewerPreferences = viewerpreference;
In this case, the viewerpreference
is a value that can have one of the following values:
-
PdfWriter.PageLayoutSinglePage
-
PdfWriter.PageLayoutOneColumn
-
PdfWriter.PageLayoutTwoColumnLeft
-
PdfWriter.PageLayoutTwoColumnRight
-
PdfWriter.PageLayoutTwoPageLeft
-
PdfWriter.PageLayoutTwoPageRight
See the PageLayoutExample for more info.
You can also change the page mode as is shown in the ViewerPreferencesExample. In which case the different values are "OR"-ed:
-
PdfWriter.PageModeFullScreen
-
PdfWriter.PageModeUseThumbs
-
PdfWriter.PageLayoutTwoColumnRight | PdfWriter.PageModeUseThumbs
-
PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseOutlines
-
PdfWriter.FitWindow | PdfWriter.HideToolbar
-
PdfWriter.HideWindowUI
Currently, you've only used the PrintPreferences example from the official documentation:
writer.AddViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
writer.AddViewerPreference(PdfName.NUMCOPIES, new PdfNumber(3));
writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE);
But in some cases, it's just easier to use:
writer.ViewerPreferences = viewerpreference;
As for setting the language, this is done like this:
stamper.Writer.ExtraCatalog.Put(PdfName.LANG, new PdfString("EN"));
The result is shown in the following screen shot:
RUPS: looking at the internal structure of a PDF
As you can see, there is now a Lang
entry with value EN
added to the catalog.
Taken from the additional answer by Chris Haas:
The items Magnification = Fit Width and Open to Page number = 1 are also part of the /Catalog
but in a special key called /OpenAction
. You can set this using Writer.SetOpenAction()
.
In your case you're looking for:
//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);