2013-07-25 32 views
7

Tôi đang cố xoay 180 độ pdf và tôi đang sử dụng thư viện ITextSharp để làm như vậy. Mã dưới đây được lấy từ ví dụ của trang web của họ. Tuy nhiên, tôi dường như không thể tìm thấy không gian tên thích hợp để nhập để có được "FileOutputStream" hoạt động.FileOutputStream tương đương

Đây là ứng dụng giao diện điều khiển, vì vậy, không chắc liệu "FileOutpuStream" của Java có hoạt động hay không.

Các PDFStamper() được cấu trúc như thế này:

PdfStamper (PDFReader đọc, Suối 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

thử File.Create (* outputFile *) để bắt đầu một file mới, hoặc File.OpenWrite (* Inputfile *) để ghi đè lên các file PDF gốc. –

Trả lời

8

Hãy thử sử dụng một FileStream. Đó là trong System.IO

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

Điều này có vẻ như nó sẽ làm việc ... tuy nhiên, một khi nó được vào dòng này tôi nhận được một "Quá trình không thể truy cập các tập tin _____ pdf vì nó đang được sử dụng bởi một quá trình khác." lỗi. Bất kỳ giúp đỡ với điều đó? – MaylorTaylor

+2

Thay đổi 'PdfReader mới (inputFile)' thành 'PdfReader mới (tệp FileStream mới (inputFile, FileMode.Open)) ' – bebraham

+0

Tôi thường khuyên bạn nên chỉ khóa tệp cho quyền truy cập ghi chỉ ngay cả:' new FileStream (inputFile, FileMode.Create, FileAccess.Write, FileShare.None) ' –