2013-07-25 13 views
7

Sto provando a ruotare un pdf di 180 gradi e sto usando la libreria ITextSharp per farlo. Il codice sotto è preso dagli esempi del loro sito. Tuttavia, non riesco a trovare il giusto spazio dei nomi da importare per far funzionare "FileOutputStream".Equivalente FileOutputStream

Questa è un'app per console, quindi non è sicuro se "FileOutpuStream" di Java funzionerà.

Il PDFStamper() è strutturato in questo modo:

PdfStamper (lettore PdfReader, Stream os)

public void rotatePDF(string inputFile) 
     { 
      // get input document 

     PdfReader reader = new PdfReader(inputFile);   
     PdfName pdfName = new PdfName(inputFile); 
     int n = reader.NumberOfPages; 
     int rot; 
     PdfDictionary pageDict; 
     for (int i = 1; i <= n; i++) 
     { 
      rot = reader.GetPageRotation(i); 
      pageDict = reader.GetPageN(i); 
      pageDict.Put(PdfName.ROTATE, new PdfNumber(rot + 180)); 
     } 

     PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(inputFile)); 
     stamper.closer(); 
     reader.Close(); 


     } 
+0

provare File.Create (* fileOutput *) per avviare un nuovo file, o File.OpenWrite (* fileInput *) per sovrascrivere il PDF originale. –

risposta

8

Provare a usare un FileStream. E 'in System.IO

PdfStamper stamper = new PdfStamper(reader, new FileStream(inputFile, FileMode.Create);); 
+0

Sembra che funzionerà ... tuttavia, una volta raggiunta questa riga, ricevo un messaggio "Il processo non può accedere al file _____. Pdf perché è utilizzato da un altro processo". errore. Qualche aiuto con quello? – MaylorTaylor

+2

Cambia 'new PdfReader (inputFile)' a 'new PdfReader (nuovo FileStream (inputFile, FileMode.Open))' – bebraham

+0

In genere raccomando di bloccare esclusivamente il file per l'accesso in sola scrittura anche: 'nuovo FileStream (inputFile, FileMode.Create, FileAccess.Write, FileShare.None) ' –

Problemi correlati