2013-07-25 8 views
7

Ich versuche, eine pdf 180 Grad zu drehen, und ich verwende die ITextSharp-Bibliothek, um dies zu tun. Der folgende Code stammt aus den Beispielen ihrer Site. Ich kann jedoch nicht den richtigen Namespace zum Importieren finden, um den "FileOutputStream" zu verwenden.FileOutputStream Äquivalent

Dies ist eine Konsole App, also nicht sicher, ob Java "FileOutpuStream" funktioniert.

PdfStamper (PdfReader Leser, 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

versuchen File.Create (* output *) eine neue Datei zu starten, oder File.OpenWrite (* Eingabedatei *), um das Original-PDF zu überschreiben. –

Antwort

8

Versuchen eine FileStream Verwendung:

Die PDFStamper() ist wie folgt strukturiert. Es ist in System.IO

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

Dies scheint wie es funktioniert ... aber sobald es zu dieser Zeile kommt, bekomme ich eine "Der Prozess kann nicht auf die Datei zugreifen _____. Pdf, weil es von einem anderen Prozess verwendet wird." Error. Irgendwelche Hilfe dabei? – MaylorTaylor

+2

Ändern Sie 'new PdfReader (inputFile)' in 'new PdfReader (new FileStream (inputFile, FileMode.Open))' – bebraham

+0

Ich empfehle generell, die Datei nur für schreibgeschützten Zugriff zu sperren: 'new FileStream (inputFile, FileMode.Create, FileAccess.Write, FileShare.None) ' –

Verwandte Themen