【问题标题】:FileOutputStream equivalentFileOutputStream 等效
【发布时间】:2013-07-25 20:13:46
【问题描述】:

我正在尝试将 pdf 旋转 180 度,并且我正在使用 ITextSharp 库来执行此操作。下面的代码取自他们网站的示例。但是,我似乎找不到要导入的正确命名空间以使“FileOutputStream”正常工作。

这是一个控制台应用程序,所以不确定 Java 的“FileOutpuStream”是否可以工作。

PDFStamper() 的结构如下:

PdfStamper(PDFReader reader, 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();


        }

【问题讨论】:

  • 尝试 File.Create(outputFile) 开始一个新文件,或 File.OpenWrite(inputFile) 覆盖原始 PDF。跨度>

标签: c# pdf itextsharp fileoutputstream


【解决方案1】:

尝试使用FileStream。在System.IO

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

【讨论】:

  • 这似乎可以工作......但是,一旦到达这一行,我就会收到“该进程无法访问文件_____.pdf,因为它正在被另一个进程使用。”错误。有什么帮助吗?
  • new PdfReader(inputFile) 更改为 new PdfReader(new FileStream(inputFile, FileMode.Open))
  • 我通常建议专门锁定文件以进行只写访问:new FileStream(inputFile, FileMode.Create, FileAccess.Write, FileShare.None)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2016-04-05
  • 2016-06-01
  • 2011-06-02
  • 2019-09-06
  • 2020-01-28
  • 2015-03-06
相关资源
最近更新 更多