加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用iTextSharp在C#中旋转PDF

发布时间:2020-12-15 06:14:49 所属栏目:百科 来源:网络整理
导读:我正在使用下面的功能把pdf分解成两个. 虽然它是分割的pdf,内容正在颠倒.如何将其旋转180度. 请帮忙.下面是代码相同 private static void ExtractPages(string inputFile,string outputFile,int start,int end) { // get input document PdfReader inputPdf
我正在使用下面的功能把pdf分解成两个.

虽然它是分割的pdf,内容正在颠倒.如何将其旋转180度.

请帮忙.下面是代码相同

private static void ExtractPages(string inputFile,string outputFile,int start,int end)
     {
         // get input document
         PdfReader inputPdf = new PdfReader(inputFile);

         // retrieve the total number of pages
         int pageCount = inputPdf.NumberOfPages;

         if (end < start || end > pageCount)
         {
             end = pageCount;
         }

         // load the input document
         Document inputDoc =
             new Document(inputPdf.GetPageSizeWithRotation(1));

         // create the filestream
         using (FileStream fs = new FileStream(outputFile,FileMode.Create))
         {
             // create the output writer
             PdfWriter outputWriter = PdfWriter.GetInstance(inputDoc,fs);
             inputDoc.Open();

             PdfContentByte cb1 = outputWriter.DirectContent;

             // copy pages from input to output document
             for (int i = start; i <= end; i++)
             {
                 inputDoc.SetPageSize(inputPdf.GetPageSizeWithRotation(1));
                 inputDoc.NewPage();

                 PdfImportedPage page =
                     outputWriter.GetImportedPage(inputPdf,i);
                 int rotation = inputPdf.GetPageRotation(i);


                 if (rotation == 90 || rotation == 270)
                 {
                     cb1.AddTemplate(page,-1f,1f,inputPdf.GetPageSizeWithRotation(i).Height);

                 }
                 else
                 {
                     cb1.AddTemplate(page,0);
                 }

             }

             inputDoc.Close();
         }
     }

解决方法

我试过你的代码,它对我来说很好分页保持原来的方向.

解决方法可能是将页面显式旋转180度.

更换:

cb1.AddTemplate(page,0);

附:

cb1.AddTemplate(page,inputPdf.GetPageSizeWithRotation(i).Width,inputPdf.GetPageSizeWithRotation(i).Height);

如果你对inputPdf.GetPageRotation(i)的调用返回180,那么你可以在下面的if语句中处理这个(使用我建议的旋转代码== 180).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读