2014-11-19 20 views
6

Sto cercando di utilizzare un PDF per la stampa e ho bisogno di ruotarlo di 90 gradi per appoggiarlo correttamente? Qualcuno sa come fare questo? Non riesco a trovarlo onlineRotazione PDF a 90 gradi utilizzando iTextSharp in C#

+1

si associa un 'PdfStamper' a' PdfReader' ma prima di fai ciò sei libero di manipolare il PDF usando qualsiasi metodo disponibile dall'oggetto 'PdfReader'. Vedi il [campione ufficiale qui] (http://itextpdf.com/examples/iia.php?id=232) in Java o una domanda molto simile ma non esattamente la stessa (http://stackoverflow.com/a/5349641/231316) in C#. –

risposta

10

L'esempio Rotate90Degrees utilizza PdfReader per ottenere un'istanza del documento, quindi modifica il valore /Rotate in ogni dizionario di pagine. Se non c'è tale entrata, viene aggiunta una voce di /Rotate con valore 90:

final PdfReader reader = new PdfReader(source); 
final int pagesCount = reader.getNumberOfPages(); 

for (int n = 1; n <= pagesCount; n++) { 
    final PdfDictionary page = reader.getPageN(n); 
    final PdfNumber rotate = page.getAsNumber(PdfName.ROTATE); 
    final int rotation = 
      rotate == null ? 90 : (rotate.intValue() + 90) % 360; 

    page.put(PdfName.ROTATE, new PdfNumber(rotation)); 
} 

Una volta fatto questo, si usa una PdfStamper a persistere il cambiamento:

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); 
stamper.close(); 
reader.close(); 

Questo è per iText Java. Per iTextSharp, il porting di Java su C# è facile in quanto la terminologia è identica. Modificare alcuni casi inferiori in lettere maiuscole come questo:

PdfDictionary page = reader.GetPageN(1); 
page.Put(PdfName.ROTATE, new PdfNumber(90)); 

C'è un frammento di codice più o meno identico nella parte questione di questo post: How to rotate PDF page with iTextSharp without causing error in ghostscript?

Problemi correlati