Setting Viewer Preferences for a PDF
The code below shows you how to set viewer preferences for a PDF
This sample requires a Tools license.
C#
using System; using SolidFramework.Plumbing; using SolidFramework.Pdf; using SolidFramework.Pdf.Plumbing; namespace PDFViewPref { class Program { [STAThread] static void Main(string[] args) { // Call your Solid Documents License SolidFramework.License.Import(@"C:\MyFolder\license.xml"); // Set the location of your the file you want to convert String pdfPath = @"C:\YourFolder\yourpdf.pdf"; //*PDF Viewer Preferences*// // Create a new PdfDocument Object called document and assign the selected PDF file to it using (PdfDocument document = new PdfDocument(pdfPath)) { // Open the file document.Open(); // Get the catelogue object which contains viewer preferences options SolidFramework.Pdf.Catalog catalogue = (SolidFramework.Pdf.Catalog)document.Catalog; // Assign or read any of the ViewerPreferences values if (catalogue.ViewerPreferences == null) { PdfDictionary viewerPreferences = new PdfDictionary(document); document.CatalogDictionary["ViewerPreferences"] = viewerPreferences; } catalogue.ViewerPreferences.HideMenuBar = true; catalogue.ViewerPreferences.HideToolBar = true; // If the document has been modified, save it if (document.IsModified) { document.Save(OverwriteMode.ForceOverwrite); } } } } }
C++
#include "stdafx.h" #include "SolidFramework.h" using namespace std; int main() { // Call your Solid Documents License SolidFramework::License::Import(L"c:\\MyFolder\\license.xml"); // Add the PDF file to convert wstring pdfPath(L"c:\\yourfolder\\yourpdf.pdf"); //*PDF Viewer Preferences*// // Create a new PdfDocument Object called document and assign the selected PDF file to it SolidFramework::Pdf::PdfDocumentPtr document(new SolidFramework::Pdf::PdfDocument(pdfPath)); // Open the file document->Open(); // Get the catelogue object which contains viewer preferences options SolidFramework::Pdf::CatalogPtr catalogue = SolidFramework::Pdf::Catalog::DynamicCast(document->getCatalog()); // Assign or read any of the ViewerPreferences values if (catalogue->getViewerPreferences() == NULL) { SolidFramework::Pdf::ViewerPreferencesPtr viewerPreferences(new SolidFramework::Pdf::ViewerPreferences()); catalogue->setViewerPreferences(viewerPreferences); } SolidFramework::Pdf::ViewerPreferencesPtr viewerPreferences = catalogue->getViewerPreferences(); viewerPreferences->setHideMenuBar(true); viewerPreferences->setHideToolBar(true); catalogue->setViewerPreferences(viewerPreferences); // If the document has been modified, save it if (document->getIsModified()) { document->Save(SolidFramework::Plumbing::OverwriteMode::ForceOverwrite, SolidFramework::PageRange::Parse(L"All")); } return 0; }
VB.Net
Module PDFViewPref Sub Main() 'Define a variable for your source file Dim sPdfPath As String Dim sPdfCopy As String ' Define a PDF Document object Dim myDocument As SolidFramework.Pdf.PdfDocument ' Define a viewer preferences catelog Dim myCatelog As SolidFramework.Pdf.Catalog Dim myPreferences As SolidFramework.Pdf.Plumbing.PdfDictionary ' Set up the file paths sPdfPath = "C:\YourFolder\filepdf.pdf" sPdfCopy = "C:\YourFolder\filepdf-copy.pdf" ' Copy the original over to a copy FileCopy(sPdfPath, sPdfCopy) ' Call your Solid Documents License SolidFramework.License.Import("C:\MyFolder\license.xml") ' Open the copied pdf file for modification myDocument = New SolidFramework.Pdf.PdfDocument(sPdfCopy) myDocument.Open(sPdfCopy) ' Get the document's Catalog myCatelog = myDocument.Catalog() ' If Viewer Preferences dictionary does not exists, create one If IsNothing(myCatelog.ViewerPreferences) Then myPreferences = New SolidFramework.Pdf.Plumbing.PdfDictionary(myDocument) myDocument.CatalogDictionary("ViewerPreferences") = myPreferences End If ' Assign or read any of the ViewerPreferences values myCatelog.ViewerPreferences.HideMenuBar = True myCatelog.ViewerPreferences.HideToolBar = True ' Only save the document if we have modified the preferences. If myDocument.IsModified Then myDocument.Save(SolidFramework.Plumbing.OverwriteMode.ForceOverwrite) End If ' Close the document and clean up myDocument.Close() myDocument.Dispose() End Sub End Module