2014-06-23 10 views
9

Qui desidero impostare le proprietà del documento PDF già esistenti nella scheda Vista iniziale in Acrobat.Come impostare le proprietà della vista iniziale?

Opzioni documento:

  • Show = Preferiti Panel e Pagina
  • pagina layout = Continuo
  • Ingrandimento = Adatta larghezza
  • Aperto a pagina n = 1

Opzioni finestra:

  • Show = Titolo del documento

Come esposizione al di sotto screen shot:

sto provato seguente codice:

PdfStamper stamper = new PdfStamper(reader, new FileStream(dPDFFile, FileMode.Create)); 
stamper.AddViewerPreference(PdfName.DISPLAYDOCTITLE, new PdfBoolean(true)); 

il codice precedente viene utilizzato per impostare la titolo del titolo spettacolo.

Ma seguente codice sono Non funziona

Per Layout di pagina:

stamper.AddViewerPreference(PdfName.PAGELAYOUT, new PdfName("OneColumn")); 

per i segnalibri del pannello e Pagina:

stamper.AddViewerPreference(PdfName. PageMode, new PdfName("UseOutlines")); 

Quindi, per favore dare guidarmi qual è il modo corretto per soddisfare il mio requisito.

risposta

9

Sto aggiungendo una risposta in più in risposta alla domanda in più nei commenti della risposta precedente:

Quando si dispone di un'istanza denominata PdfWriterwriter, è possibile impostare le preferenze del visualizzatore in questo modo:

writer.ViewerPreferences = viewerpreference; 

In questo caso, il viewerpreference è un valore che può avere uno dei seguenti valori:

  • PdfWriter.PageLayoutSinglePage
  • PdfWriter.PageLayoutOneColumn
  • PdfWriter.PageLayoutTwoColumnLeft
  • PdfWriter.PageLayoutTwoColumnRight
  • PdfWriter.PageLayoutTwoPageLeft
  • PdfWriter.PageLayoutTwoPageRight

Vedere PageLayoutExample per ulteriori informazioni.

È inoltre possibile modificare la modalità pagina come mostrato nell'ViewerPreferencesExample. Nel qual caso i diversi valori sono "OR" -ed:

  • PdfWriter.PageModeFullScreen
  • PdfWriter.PageModeUseThumbs
  • PdfWriter.PageLayoutTwoColumnRight | PdfWriter.PageModeUseThumbs
  • PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseOutlines
  • PdfWriter.FitWindow | PdfWriter.HideToolbar
  • PdfWriter.HideWindowUI

Attualmente, hai usato solo l'esempio PrintPreferences dalla documentazione ufficiale:

writer.AddViewerPreference(PdfName.PRINTSCALING, PdfName.NONE); 
writer.AddViewerPreference(PdfName.NUMCOPIES, new PdfNumber(3)); 
writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE); 

Ma in alcuni casi, è solo più facile da usare:

writer.ViewerPreferences = viewerpreference; 

Si noti che la documentazione ufficiale è il libro "iText in Action - Second Edition." Gli esempi sono scritti in Java, ma è possibile trovare la versione C# here. C'è un nuovo libro nei lavori intitolato "The ABC of PDF", ma finora sono stati scritti solo 4 capitoli. Troverai maggiori informazioni qui: http://itextpdf.com/learn

La parte relativa alle diverse opzioni per creare un PdfDestination è già presente in "L'ABC del PDF".

Per quanto riguarda l'impostazione della lingua, questo è fatto in questo modo:

stamper.Writer.ExtraCatalog.Put(PdfName.LANG, new PdfString("EN")); 

Il risultato è mostrato nella seguente schermata:

enter image description here

Come si può vedere, c'è ora una voce aggiunta al valore EN aggiunta al catalogo.

+0

Ho ancora una domanda su come impostare l'opzione Reading _Language = English_ PS Script per set _Language = English_ è '[{Catalogo} <>/PUT pdfmark' –

+0

ho provato' stamper.Writer.SetLanguage ("EN"); ' ma non funziona –

+0

Questo è un caso in cui è necessario 'stamper.Writer.ExtraCatalog.Put (PdfName.LANG, new PdfString (" EN "));' –

7

Le due voci Show = Preferiti Panel e pagina e Layout di pagina = Continuo sono controllati uno strato su dal ViewerPreferences nel documento del /Catalog. È possibile arrivare a questo tramite:

stamper.Writer.ExtraCatalog 

Nel tuo caso siete alla ricerca di:

// Acrobat's Single Page 
stamper.Writer.ExtraCatalog.Put(PdfName.PAGELAYOUT, PdfName.ONECOLUMN); 
// Show bookmarks 
stamper.Writer.ExtraCatalog.Put(PdfName.PAGEMODE, PdfName.USEOUTLINES); 

Le voci Ingrandimento = Adatta larghezza e aperto al numero di pagina = 1 sono anche parte di /Catalog ma in una chiave speciale denominata /OpenAction.È possibile impostare questo utilizzando:

stamper.Writer.SetOpenAction(); 

Nel tuo caso siete alla ricerca di:

//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); 
+0

Nel codice _open alla pagina Numero_ lavorando solo altri poi non tutti sono di lavoro e anche 'impostazione PdfDestination.FITH' il _Magnification = Fit _pagina non _Fit Width_ –

+0

Questo è il mio PS codice di script utilizzato per impostare quelle che stabiliscono in PDF '[/ PageMode/UseOutlines/View [/ FitH -32768]/Pagina 1/DOCVIEW pdfmark' ' [{Catalogo} <>/PageLayout/OneColumn >>/PUT pdfmark' ma ora voglio farlo con iTextSharp con C# in PDF già esistente –

+0

Si tratta semplicemente di creare un oggetto 'PdfDestination' usando altri parametri. Ad esempio 'new PdfDestination (PdfDestination.FITH, -32768)' come descritto nella documentazione. –